每日一题 —— [SWPUCTF 2021 新生赛]error¶
首先,题目要求我们传入一个 id
参数。根据测试,这是一个 sql 注入,我们传入 1
或者 -1' or 1=1 --+
都会得到“没有提示……”的提示。另外,传入 -1
或者 1' and 2=1 --+
就没有这个提示。说明可能是盲注。
但是根据这道题会出现语法错误的提示,并且题目标题为“error”,说明可以使用报错注入,这样就不用盲注了。
报错注入的原理是使用 updatexml()
函数或者 extractvalue()
函数,将需要查询的内容拼接上 ~
符号,也就是 0x7e
,这样就不符合 xpath 语法,从而报错泄漏信息。
以 updatexml()
函数为例,我们传入这样的 payload:
基本上,这 updatexml
函数的用法就是 updatexml(1, concat(0x7e, 查询语句), 1)
。
同理,extractvalue()
函数也是 extractvalue(1, concat(0x7e, 查询语句))
,就少了第三个参数。
那么最终我们的 payload 如下:
注意调整 substr()
的后两个参数,来保证所有的信息都能被查询出来。因为我们的报错注入只能显示 32 位信息。
文章热度:0次阅读