极客大挑战 2019 HardSQL
August 30, 2021
1671
0x00知识点:
updatexml()
sql注入中的updatexml()函数
1 |
|
第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc
第二个参数:XPath_string (Xpath格式的字符串) ,如果不了解Xpath语法,可以在网上查找教程。
第三个参数:new_value,String格式,替换查找到的符合条件的数据
作用:改变文档中符合条件的节点的值
改变XML_document中符合XPATH_string的值
例子:
1 |
|
其中的concat()函数是将其连成一个字符串,因此不会符合XPATH_string的格式,从而出现格式错误,爆出
1 |
|
xpath语法总结:https://www.jb51.net/article/125607.htm
extractvalue()
1 |
|
ExtractValue()接受两个字符串参数,一个XML标记片段 xml_frag和一个XPath表达式 xpath_expr(也称为 定位器); 它返回CDATA第一个文本节点的text(),该节点是XPath表达式匹配的元素的子元素。
第一个参数可以传入目标xml文档
第二个参数是用Xpath路径法表示的查找路径
例子:
例如:SELECT ExtractValue(‘‘, ‘/a/b’); 就是寻找前一段xml文档内容中的a节点下的b节点,这里如果Xpath格式语法书写错误的话,就会报错。这里就是利用这个特性来获得我们想要知道的内容。
利用concat函数将想要获得的数据库内容拼接到第二个参数中,报错时作为内容输出。
0x00解题
1 |
|
爆出库
1 |
|
爆出表名
1 |
|
爆出列名
构造payload:
1 |
|
右边的flag
1 |
|
1 |
|
参考博客:
- 本文作者:4v1d
- 本文链接:http://daweitech.github.io/2021/08/30/2021/ctf/16/index.html
- 版权声明:本博客所有文章均采用 BY-NC-SA 许可协议,转载请注明出处!