如何做分公司网站,wordpress 发布工具,wordpress分类目录没有内容,中国建设银行官方网站诚聘英才频道一、ExtractValue函数
ExtractValue()函数是MySQL数据库中用于提取XML数据中指定路径的值的函数。它基于XPath语法#xff0c;允许用户根据特定的路径表达式从XML格式的数据中获取所需信息。以下是关于MySQL中ExtractValue()函数的详细讲解#xff1a;
1.1语法
EXTRACTVAL…一、ExtractValue函数
ExtractValue()函数是MySQL数据库中用于提取XML数据中指定路径的值的函数。它基于XPath语法允许用户根据特定的路径表达式从XML格式的数据中获取所需信息。以下是关于MySQL中ExtractValue()函数的详细讲解
1.1语法
EXTRACTVALUE(xml_data, xpath_expression)xml_data: 包含XML数据的字段或表达式。xpath_expression: XPath路径表达式用于指定要提取值的位置。
1.2示例
假设有一个包含XML数据的表books其中一列为book_info包含以下内容
booktitleMySQL Cookbook/titleauthorPaul DuBois/authoryear2014/year
/book我们可以使用ExtractValue()函数来提取特定节点下的值。例如要获取书籍标题title
SELECT ExtractValue(book_info, book/title) AS title FROM books;这将返回结果为
-------------------
| title |
-------------------
| MySQL Cookbook |
-------------------二、利用extractvalue()进行报错SQL注入
在使用ExtractValue()函数时无效的XPath表达式xpath_expression可能会导致报错。通过将恶意的SQL语句拼接放在xpath_expression处可以使得该条SQL语句报错并执行我们注入的恶意语句 例如
SELECT * FROM users WHERE username input_username AND password ExtractValue(1, CONCAT(username:, (SELECT database())));其中payloadAND password ExtractValue(1, CONCAT(username:, (SELECT database())));使用了extractvalue函数将xml数据设置为1xpath_expression部分设置为CONCAT(username:, (SELECT database()) 此时的xpath_expression为“username: 数据库名”由于1中并没有“username: 数据库名”因此会产生报错可以从报错结果中看到我们想要的数据库名