SQl盲注。基于时间(based time)

这篇博客介绍了SQL盲注中的基于时间方法,作者通过示例展示了如何在没有错误提示的情况下,通过观察查询响应时间差异来判断是否存在注入漏洞。在渗透测试平台上,作者构造payload并利用sleep()函数,证明了即使没有明显的错误反馈,也能识别出注入点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在开始之前我想先在这里提醒选择阅读这篇博客的读者。因为本人初涉安全领域知识。关于sql盲注尚处于学习和摸索状态。此博客亦是只起到对现所学知识的一个记录。所以只起到一个借鉴的作用,并不建议读者用作专业知识学习。
此次练习为渗透练习平台上的操作结果。
首先介绍什么是基于时间的盲注在这里插入图片描述
相信学习到基于时间的盲注的读者对盲注应该不再陌生(最起码知道大概的情况),正如上面所说,基于boolean的盲注在报错页面上会提示正确(1)或错误(0)提示。而基于时间的盲注是建立在无任何报错提示前提上的注入方法。
具体演示
先在登陆界面,于用户名处输入 “ ’ ” 用于查看具体报错信息在这里插入图片描述
在这里插入图片描述
可以返回没有任何可用的信息
构造payload查看返回在这里插入图片描述
在这里插入图片描述
一样的返回结果
那即是是这样也不一定就保证这个登陆界面是不存在sql注入漏洞的,而有的漏洞就是这里要讲的基于时间的注入漏洞。通过判断时间的长短来判断是否存在漏洞。
首先打开开发者选项选择控制平台>>netwok>>All,在这里可以看见所有请求发送到后台并进行相应数据查找所用的时间
然后再构造一次payload在这里插入图片描述
可以看见上面使用到了sleep(5) ,
sleep()函数:是相应的sql查询语句延迟。
具体用法:sleeo(duration)
查看所用时间为6.05(s)在这里插入图片描述
当我们单纯的输入用户名时,是可以看见时间是明显不同的(少很多)在这里插入图片描述
也就是说,and sleep(5) 被拼接到了后台的sql查询当中,这显然就是一个注入漏洞。
总结:虽然后台并没有给出相应的错误提示,但通过查询时间的不同,依然能够判断出是否存在 注入漏洞(后台不加以限制的照搬前台查询请求)。
现在展示一个payload以及它的查询结果在这里插入图片描述
database()取数据库名称。
substr(database(),1,1)取数据库中的1字符(也许就是表,但博主这里任然存在疑惑)
整句的意思就是,如果数据库的字符1=p,sleep 5 (s),如果不等,则不执行sleep(5).
如果有后台有执行上述payload,则会延迟返回5(s),则可以确定存在注入漏洞。

那到这里,sql注入(based time)已经演示完。再次声明这仅是本人在观看和学习安全视频后的练习结果,如果有需要改进和补充的地方,希望各位可以给我留言使加以更改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值