ghauri 跨平台自动检测并利用SQL注入漏洞的工具

最后编辑时间: 2024-02-18

ghauri简介

一个先进的跨平台工具,自动化了检测和利用 SQL 注入安全漏洞的过程。

功能

支持以下类型的注入有效载荷:

基于布尔值的。
基于错误的。
基于时间的。
堆叠查询。

ghauri 跨平台自动检测并利用SQL注入漏洞的工具

支持以下 DBMS 的 SQL 注入。

MySQL
Microsoft SQL Server
Postgres
OracleMicrosoft Access(目前仅支持基于布尔值的盲注中的指纹)

支持以下注入类型。

基于 GET/POST 的注入
基于头部的注入
基于 Cookie 的注入
多部分表单数据注入
基于 JSON 的注入
基于 SOAP/XML 的注入
支持代理选项 –proxy。
支持从 txt 文件解析请求的开关:使用 -r file.txt

支持限制数据提取以用于 dbs/tables/columns/dump:开关 –start 1 –stop 2
增加了支持所有阶段的恢复的功能。
增加了跳过 URL 编码的开关的支持:–skip-urlencode
增加了在基于布尔值/基于时间的注入中验证提取的字符的支持。
增加了根据用户需求处理重定向的支持。
增加了 SQL shell 开关的支持:–sql-shell(实验性)
增加了新查询开关的支持:–fresh-queries
增加了主机名提取开关的支持:–hostname
增加了从 GitHub 更新 ghauri 的开关:–update
注意:必须从 GitHub 克隆/安装 ghauri 才能使用此开关来获取未来的更新,对于旧版本的用户,他们必须运行 git pull(如果使用 git 安装)以获取此更新,并且对于未来的更新,使用 ghauri –update 命令将可以获取 ghauri 的最新版本。

安装环境

Python 3

pip3

安装方法

安装setuptools

pip install setuptools


进入到 ghauri 目录。

cd ghauri

安装依赖项:

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

运行:

python3 setup.py install

python3 -m pip install -e .

通过简单的 ghauri --help 命令即可访问并运行 ghauri。

ghauri --help

下载Ghauri

您可以通过克隆 GitHub 存储库来下载最新版本的 Ghauri。

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

命令参数

用法: ghauri -u URL [选项]

一款基于 Python 的跨平台高级 SQL 注入检测与利用工具。

常规:
  -h, --help          显示帮助信息。
  --version           显示版本信息。
  --update            更新 ghauri。
  -v VERBOSE          详细程度级别:1-5(默认为 1)。
  --batch             从不询问用户输入,使用默认行为。
  --flush-session     清除当前目标的会话文件。
  --fresh-queries     忽略会话文件中存储的查询结果。
  --test-filter       通过标题选择测试有效载荷(实验性)。

目标:
  必须提供以下选项中的至少一个以定义目标(们)。

  -u URL, --url URL   目标 URL(例如 'http://www.site.com/vuln.php?id=1')。
  -r REQUESTFILE      从文件加载 HTTP 请求。

请求:
  这些选项可用于指定如何连接到目标 URL。

  -A , --user-agent   HTTP User-Agent 头的值。
  -H , --header       额外的头部(例如 "X-Forwarded-For: 127.0.0.1")。
  --host              HTTP Host 头的值。
  --data              通过 POST 发送的数据字符串(例如 "id=1")。
  --cookie            HTTP Cookie 头的值(例如 "PHPSESSID=a8d127e..")。
  --referer           HTTP Referer 头的值。
  --headers           额外的头部(例如 "Accept-Language: fr\nETag: 123")。
  --proxy             使用代理连接到目标 URL。
  --delay             每个 HTTP 请求之间的延迟秒数。
  --timeout           连接超时之前等待的秒数(默认为 30)。
  --retries           发生连接相关错误时的重试次数(默认为 3)。
  --confirm           确认注入有效载荷。
  --skip-urlencode    跳过有效载荷数据的 URL 编码。
  --force-ssl         强制使用 SSL/HTTPS。

优化:
  这些选项可用于优化 ghauri 的性能。

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

注入:
  这些选项可用于指定要测试的参数、提供自定义注入有效载荷和可选的篡改脚本。

  -p TESTPARAMETER    可测试的参数(们)。
  --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         仅基于文本内容比较页面。

技术:
  这些选项可用于调整特定 SQL 注入技术的测试。

  --technique TECH    要使用的 SQL 注入技术(默认为 "BEST")。
  --time-sec TIMESEC  延迟 DBMS 响应的秒数(默认为 5)。

枚举:
  这些选项可用于枚举后端数据库管理系统的信息、结构和表中包含的数据。

  -b, --banner        检索 DBMS 标语。
  --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             从偏移处检索 dbs/tables/columns/dump 的条目。
  --stop              直到偏移处检索 dbs/tables/columns/dump 的条目。
  --sql-shell         提示交互式 SQL shell(实验性)。

使用示例:
ghauri -u http://www.site.com/vuln.php?id=1 --dbs

项目地址

GitHub:
https://github.com/r0oth3x49/ghauri

请在下方留下您的评论.加入TG吹水群