xml数据库

报错注入:extractvalue、updatexml报错原理

南楼画角 提交于 2019-11-25 23:34:16
MySQL 5.1.5版本中添加了对XML文档进行查询和修改的两个函数:extractvalue、updatexml 名称 描述 ExtractValue() 使用XPath表示法从XML字符串中提取值 UpdateXML() 返回替换的XML片段 通过这两个函数可以完成报错注入 一、extractvalue函数 ExtractValue(xml_frag, xpath_expr) ExtractValue() 接受两个字符串参数,一个XML标记片段 xml_frag 和一个XPath表达式 xpath_expr (也称为 定位器); 它返回 CDATA 第一个文本节点的text(),该节点是XPath表达式匹配的元素的子元素。 第一个参数可以传入目标xml文档,第二个参数是用Xpath路径法表示的查找路径 例如: SELECT ExtractValue('<a><b><b/></a>', '/a/b'); 就是寻找前一段xml文档内容中的a节点下的b节点,这里如果Xpath格式语法书写错误的话,就会报错。这里就是利用这个特性来获得我们想要知道的内容。 (这里我们是为了学习报错注入,所以不需要太详细的知道该函数具体原理) 利用concat函数将想要获得的数据库内容拼接到第二个参数中,报错时作为内容输出。 二、updatexml函数 UpdateXML(xml_target,