首先了解下updatexml()函数 UPDATEXML (XML_document, XPath_string, new_value); 第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc 第二个参数:XPath_string (Xpath格式的字符串) ,如果不
首先了解下updatexml()函数
UPDATEXML (XML_document, XPath_string, new_value);
第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc
第二个参数:XPath_string (Xpath格式的字符串) ,如果不了解Xpath语法,可以在网上查找教程。
第三个参数:new_value,String格式,替换查找到的符合条件的数据
作用:改变文档中符合条件的节点的值
改变XML_document中符合XPATH_string的值
而我们的注入语句为:
updatexml(1,concat(0x7e,(SELECT @@version),0x7e),1)
其中的concat()函数是将其连成一个字符串,因此不会符合XPATH_string的格式,从而出现格式错误,爆出
ERROR 1105 (HY000): XPATH syntax error: ':root@localhost'
xpath语法格式总结:https://www.jb51.net/article/125607.htm
总结
以上就是本文关于MYSQL updatexml()函数报错注入解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以参阅:MySQL prepare原理详解、几个比较重要的MySQL变量、MySQL删除表数据的方法等,有什么问题可以随时留言,欢迎大家交流讨论。在此也非常感谢朋友们对本站的支持。