BBQSQL:SQL注入利用工具

项目主页

https://github.com/Neohapsis/bbqsql

简介

SQL盲注利用是一个痛苦的过程,当有可用的工具并且正常工作时,一切都是没问题的;但当需要写一些自定义的东西时,就会非常费时和繁琐。以上这些问题,bbqsql都可以帮你解决。

BBQSQL是一个用Python写的SQL盲注框架。对于棘手的SQL注入漏洞攻击非常有用。bbqsql也是一个半自动的工具,对于那些难以触发SQL注入有比较多的定制。该工具与数据库类型无关并且非常灵活。它也有一个直观的用户界面,使攻击设置更容易。Python Gevent也被实现,使bbqsql速度非常快。

概述

我们试图以这样的方式来写这个工具,即用户在界面上设置开始一个攻击时,它将是非常简单明了的。但为了更加人性化,我们提供了一个详细的说明,你应该对每个配置选项的细节特别了解。值得注意的一点是,用户界面中的每一个配置选项都有与之相关的描述。

使用

类似于其他的SQL注入工具你需要提供一定的请求信息。

必须提供下面的信息:

  • URL
  • HTTP Method
  • Headers
  • Cookies
  • Encoding methods
  • Redirect behavior
  • Files
  • HTTP Auth
  • Proxies

然后指定注入的位置以及我们正在注入的语法,详情阅读细节。

安装

这应该是直截了当的,但究竟是什么呢。运行下面的命令:

sudo pip install bbqsql

如果不能正常工作,你需要安装依赖:gevent、requests。

BBQSQL选项

在菜单中你会看到一个bbqsql选项的地方。在这里,您指定以下选项:

query

这是更详细的描述如下: query syntax overview

csv_output_file

输出结果的文件的名称。如果你不想输出到一个文件,可以让这个选项空白。

technique

BBQSQL利用两技术进行SQL盲注攻击。第一,默认使用的技术是binary_search。查看维基百科获取更多的信息。

第二技术你可以使用frequency_search。搜索是基于对英语的分析,确定一个字母会发生的频率。这种搜索方式对非熵数据非常快速,但对非英语或混淆数据非常慢。

你可以指定binary_search或frequency_search作为此参数的值。

comparison_attr

这里指定你所发现SQL注入类型。在这里你可以设置bbqsql怎么确定HTTP响应的属性的真假。

可以指定:status_code, url, time, size, text, content, encoding, cookies, headers, history。

如果你已经确定了SQL注入会有不同的服务状态码,在这里设置status_code”。如果cookie不同则设置cookie,如果响应大小不同则设置size。

concurrency

concurrency基于Python的Gevent库。在功能上,它看起来像线程但具体如何工作中我们在这里可以看到[insert link here],此设置控制并发的数量来运行攻击。这是有用的用于节流的请求,并加快攻击时间。真正高性能的Web服务器如nginx的,我们已经可以设置并发为75。默认情况下,这是设置为“30”。

查询语法概要

如果你遇到了一个SQL注入漏洞有一些奇怪的情况(如某些字符不能包含或类似ASCII /CHAR不工作),您可以自己编写了一些脚本或自定义注入语法。BBQSQL拿出脚本的一部分,为用户提供了粘贴自定义查询语法和利用的轻松方式。

查询输入是构建查询语句用于从数据库读取信息。假设你已经确定了SQL注入的一个脆弱的参数,并测试了一个成功的查询。

下面是一个示例查询,可以使用来参考构建你的查询:

vulnerable_parameter'; if(ASCII(SUBSTRING((SELECT @@version LIMIT 1 OFFSET ${row_index}) , ${char_index} ,1))) ${comparator:>}ASCII(${char_val}) WAITFOR DELAY '0\:0\:0${sleep}'; --

查询语法是基于占位符,告诉bbqsql如何执行攻击。

你需要为攻击工作提供以下信息作为占位符。一旦你把这些放在你的查询,bbqsql将做休息:

  • ${row_index}:这里告诉bbqsql迭代列在这里。由于我们使用LIMIT,我们可以根据${row_index}的值查看n行数。
  • ${char_index}:这告诉bbqsql字符从select查询。
  • ${char_val}:这告诉bbqsql比较select结果
  • ${comparator}:这是你告诉bbqsql比较响应确定结果是不是真的。默认情况下使用>符号。
  • ${sleep}:这是可选的,但告诉bbqsql插入睡眠时间,执行基于时间的SQL注入。

并不是所有这些地方都是必需的。例如,如果你发现了基于布尔SQL注入可以省略$ {sleep}参数。

HTTP参数

BBQSQLl有许多HTTP参数配置。至少,您必须提供的网址,在那里输入你希望运行的注入查询和方法。可以设置以下选项:

  • files
  • headers
  • cookies
  • url
  • allow_redirects
  • proxies
  • data
  • method
  • auth

您指定要使用模板${injection}来插入注入查询。如果没有注入模板,工具将不知道在哪里插入查询。

files

提供要发送的文件请求。设定路径的值和bbqsql需要打开和包括的文件。

headers

与requests一起发送的HTTP headers。这可以是一个字符串或一个字典。例如:{“User-Agent”:”bbqsql”} 或者”User-Agent: bbqsql”

cookies

将要和请求一起发送字典或cookies字符串。例如:{“PHPSESSIONID”:”123123″} or PHPSESSIONID=123123;JSESSIONID=foobar

url

请指定要发送到的请求的地址。

allow_redirects

这是一个布尔值,决定是否将采用HTTP重定向请求。

proxies

指定一个HTTP代理用来作为字典的要求。例如:{“http”: “10.10.1.10:3128″,”https”: “10.10.1.10:1080”}

data

指定要随请求发送的数据。这可以是一个字符串或一个字典。例如:{“input_field”:”value”} or input_field=value

method

指定的HTTP请求的方法。有效的方法:’get’,’options’,’head’,’post’,’put’,’patch’,’delete’

auth

指定一组用户名和密码用于HTTP基本认证。例如:(“myusername”,”mypassword”)

Found a Bug?

提交任何错误修复或功能要求: https://github.com/Neohapsis/bbqsql/

帮助

拜托!我们看到这是一个伟大的起点,能够建立一个充分的SQL注入框架。随时fork代码,如果他们是有用的,我们可以合并你的提交。

原创文章,作者:Sam,如若转载,请注明出处:http://www.mottoin.com/tools/90324.html

发表评论

登录后才能评论

联系我们

021-62666911

在线咨询:点击这里给我发消息

邮件:root@mottoin.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code