0

我遇到了一个基于布尔值的盲 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我没有响应并且页面不断加载(因为它需要这么多时间执行查询)

换句话说,它总是显示错误,但查询执行时间表明查询是否已成功执行。

4

1 回答 1

0

我想出了如何自动化它。我可以通过添加 OR 1=SLEEP(5) LIMIT 1 之类的条件来简单地使其基于时间的 sql 注入。在这种情况下,它仍然会打印错误,但网站需要 5 秒才能响应。[更新]我设法使用以下命令在 sqlmap 中应用攻击向量

python sqlmap.py -u " http://testingzone.com/page.php?id=1 *" --suffix "LIMIT 1 --" --dbms "mysql" --cookies "网站cookies"

并且 sqlmap 设法识别出它是基于时间的 sql 注入易受攻击的 url

于 2015-11-16T00:00:44.447 回答