关于Ghauri

Ghauri是一款功能强大的SQL注入漏洞自动化检测和利用工具,该工具是一个高级跨平台工具,可以帮助广大研究人员以自动化的形式检测和利用目标应用中的SQL注入漏洞,并以此提升应用程序的安全性。

功能介绍

1、支持下列注入Payload类型:布尔注入、错误注入、时间注入、堆叠注入;

2、支持针对下列DBMS的SQL注入:MySQL、Microsoft SQL Server、Postgres、Oracle、Microsoft Access;

3、支持下列注入类型:基于GET/POST的注入、基于Header的注入、基于Cookie的注入、表单数据注入、基于JSON的注入;

4、支持代理选项:--proxy;

5、支持从txt文件解析请求:-r file.txt;

6、支持针对数据库、表、列和转储数据提取:--start 1 --stop 2;

7、支持操作阶段恢复;

8、支持urlencoding跳过:--skip-urlencode;

9、支持基于布尔值/时间注入的提取字符验证;

10、支持根据用户需求处理重定向;

工具要求

Python 3

pip3

工具下载

由于该工具基于Python 3开发,因此广大研究人员首先需要在本地设备上安装并配置好Python 3环境。接下来,我们可以使用下列命令将该项目源码克隆至本地,并完成安装配置:

git clone https://github.com/r0oth3x49/ghauri.git

工具安装

使用cd命令切换到Ghauri项目目录中,并使用pip命令和该项目提供的requirements.txt文件安装该工具所需的依赖组件:

cd ghauri

python3 -m pip install --upgrade -r requirements.txt

接下来,运行下列命令完成工具的安装

python3 setup.py install

python3 -m pip install -e

此时,我们就可以使用下列命令来访问和运行Ghauri了:

ghauri --help

工具使用

常用选项

-h, --help          显示工具帮助信息

  --version           显示工具版本

  -v VERBOSE        Verbose等级:1-5  (默认1).

  --batch             使用默认配置,无需用户输入

  --flush-session      刷新当前目标的会话文件

目标定义

-u URL, --url URL   目标URL (例如'http://www.site.com/vuln.php?id=1).

  -r REQUESTFILE     从文件加载HTTP请求

请求选项

-A , --user-agent    HTTP User-Agent Header值

  -H , --Header       提取Header(例如. "X-Forwarded-For: 127.0.0.1")

  --host              HTTP主机Header值

  --data              通过POST发送的数据字符串 (例如. "id=1")

  --cookie            HTTP Cookie Header值 (例如. "PHPSESSID=a8d127e..")

  --referer            HTTP Referer Header值

  --headers           提取Headers (例如. "Accept-Language: fr\nETag: 123")

  --proxy             使用代理连接到目标URL

  --delay             每个HTTP请求之间的延迟(秒)

  --timeout           连接超时前等待的秒数 (默认30)

  --retries            发生连接相关错误时重试 (默认3)

  --confirm           确认注入的Payload

  --skip-urlencode    跳过Payload数据URL编码

  --force-ssl          强制使用SSL/HTTPS

性能优化

--threads THREADS   最大并发HTTP请求数 (默认1)

注入参数

-p TESTPARAMETER    Testable参数

  --dbms DBMS          强制提供后端dbms

  --prefix                注入有效负载前缀字符串

  --suffix                注入有效负载后缀字符串

  --safe-chars            跳过指定字符URL编码 (例如:- --safe-chars="[]")

  --fetch-using           使用不同操作符获取数据 (例如: --fetch-using=between/in)

自定义检测

--level LEVEL       要执行的测试级别 (1-3, 默认1)

  --code CODE        当查询值为True时要匹配的HTTP代码

  --string            当查询值为True时要匹配的字符串

  --not-string        当查询值为False时要匹配的字符串

  --text-only         仅基于文本内容比较页面

注入技术

--technique TECH    要使用的SQL注入技术 (默认"BEST")

  --time-sec TIMESEC  DBMS响应延迟秒数 (默认5)

后端数据库枚举

-b, --banner        检索DBMS Banner

  --current-user      检索DBMS当前用户

  --current-db        检索DBMS当前数据库

  --hostname          检索DBMS服务器主机名

  --dbs               枚举DBMS数据库

  --tables            枚举DBMS数据库表

  --columns           枚举DBMS数据库表字段

  --dump              转储DBMS数据库表条目

  -D DB               要枚举的DBMS数据库

  -T TBL               要枚举的DBMS数据库表

  -C COLS             要枚举的DBMS 数据库表字段

  --start                从数据库/表/列/转储中检索数据条目的偏移量起始

  --stop                从数据库/表/列/转储中检索数据条目的偏移量结束

工具使用样例

ghauri http://www.site.com/vuln.php?id=1 --dbs

工具运行截图

许可证协议

本项目的开发与发布遵循MIT开源许可证协议。

项目地址

Ghauri:【GitHub传送门

本文作者:Alpha_h4ck, 转自FreeBuf