我遇到了一个基于布尔的Blind SQL注入漏洞,但是从服务器获得的响应是基于时间的。换句话说,如果条件为“假”,则网站将返回“错误”语句。.如果条件为“真”,则不会加载该页面。
例如
http://testingzone.com/id=123+OR+1=2
返回“错误的无效ID”
http://testingzone.com/id=123+OR+1=1
不返回任何内容,并且该页面永远永久加载(我对其进行了60秒钟的测试,没有任何响应,而且我也没有从浏览器收到超时错误)
我能够手动执行攻击,但是我想知道如何在sqlmap中执行这种攻击。
sqlmap无法识别它是可注射的,但是显示了几个“请求超时错误”。我怎样才能告诉sqlmap,当请求超时意味着条件为真?
[更新]
我有点开始形成一个图像,说明为什么需要这么长的时间才能响应...当我添加LIMIT 1
进行查询时,虽然我正在使用OR 1=1
,但还是收到了错误,但是当我将其设置为LIMIT 1000000
时,却没有响应和页面不断加载(因为执行查询需要花费大量时间)
换句话说,它始终显示错误,但查询执行时间指示查询是否已成功执行。
最佳答案
我想出了如何使其自动化。我可以简单地通过添加如下条件使其成为基于时间的sql注入
或1 = SLEEP(5)LIMIT 1
在这种情况下,它仍然会打印错误,但是网站将需要5秒钟做出响应。
[UPDATE]我使用以下命令设法在sqlmap中应用了攻击媒介
python sqlmap.py -u“ http://testingzone.com/page.php?id=1 *”-后缀“ LIMIT 1-” –dbms“ mysql” --cookies“网站cookie”
sqlmap设法确定它是基于时间的sql注入易受攻击的url
关于mysql - 在sqlmap中结合基于 bool 和时间相关的SQL注入(inject),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33708851/