当前位置: 首页 > article >正文

Ghauri -跨平台自动检测和SQL注入

文章目录

    • 一、关于 Ghauri
      • 特点
    • 二、安装
    • 三、高级用法
    • 四、其它
      • 法律免责声明
      • 待办工作
      • 为什么选择 Ghauri


一、关于 Ghauri

Ghauri 是一种先进的跨平台工具,可自动检测和利用SQL注入安全漏洞。

ghauri-banner


特点

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

    • 基于布尔值。
    • 基于错误
    • 基于时间的
    • 堆叠查询
  • 支持以下DBMS的SQL注入:

    • MySQL
    • 微软SQL服务器
    • 研究生
    • 甲骨文
    • Microsoft Access(目前仅在基于布尔的盲的情况下支持指纹)
  • 支持以下注入内容:

    • 基于GET/POST的注入
    • 基于标头的注入
    • 基于Cookie的注入
    • 多部分表格数据注入
    • 基于JSON的注入
    • 基于SOAP/XML的注入
  • 支持代理选项--proxy.

  • 支持解析来自txt文件的请求:切换-r file.txt

  • 支持限制dbs/表/列/转储的数据提取:switch--start 1 --stop 2

  • 添加了对恢复所有阶段的支持。

  • 添加了对skip urlencode开关的支持:--skip-urlencode

  • 添加了对在基于布尔/时间的注入情况下验证提取字符的支持。

  • 添加了对根据用户需求处理重定向的支持。

  • 增加了对sql-shell开关的支持:--sql-shell(实验)

  • 添加了对新鲜查询开关的支持:--fresh-queries

  • 添加了用于提取主机名的开关:--hostname

  • 添加了从github更新ghauri的开关:--update s

    • 注意:ghauri必须从github克隆/安装,这个开关才能用于未来更新,对于旧版本的用户,他们必须运行git拉(如果使用git安装)来获取这个更新,对于未来更新,更新将可能与ghauri --update命令来获取最新版本的ghauri。
  • 添加了用于忽略有问题的HTTP代码的开关。(例如401):--ignore-code

  • 添加了用于检索表条目计数的开关。:--count

  • 增加了扫描文本文件中给出的多个目标的开关。-m(实验)

  • 添加了对base64可反序列化GET参数的自动检测和利用。(实验)

  • 增加了对随机HTTP用户代理的支持:--random-agent, --mobile


二、安装

要求:Python 3

1、下载

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

2、安装依赖:

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

运行:

python3 setup.py install

python3 -m pip install -e .

您将能够使用简单的ghauri --help命令访问和运行ghauri。

ghauri --help

如果遇到安装问题,请遵循此安装指南。


三、高级用法

Author: Nasir khan (r0ot h3x49)

usage: ghauri -u URL [OPTIONS]

A cross-platform python based advanced sql injections detection & exploitation tool.

General:
  -h, --help          Shows the help.
  --version           Shows the version.
  --update            update ghauri
  -v VERBOSE          Verbosity level: 1-5 (default 1).
  --batch             Never ask for user input, use the default behavior
  --flush-session     Flush session files for current target
  --fresh-queries     Ignore query results stored in session file
  --test-filter       Select test payloads by titles (experimental)

Target:
  At least one of these options has to be provided to define the
  target(s)

  -u URL, --url URL   Target URL (e.g. 'http://www.site.com/vuln.php?id=1).
  -m BULKFILE         Scan multiple targets given in a textual file
  -r REQUESTFILE      Load HTTP request from a file

Request:
  These options can be used to specify how to connect to the target URL

  -A , --user-agent   HTTP User-Agent header value
  -H , --header       Extra header (e.g. "X-Forwarded-For: 127.0.0.1")
  --mobile            Imitate smartphone through HTTP User-Agent header
  --random-agent      Use randomly selected HTTP User-Agent header value
  --host              HTTP Host header value
  --data              Data string to be sent through POST (e.g. "id=1")
  --cookie            HTTP Cookie header value (e.g. "PHPSESSID=a8d127e..")
  --referer           HTTP Referer header value
  --headers           Extra headers (e.g. "Accept-Language: fr\nETag: 123")
  --proxy             Use a proxy to connect to the target URL
  --delay             Delay in seconds between each HTTP request
  --timeout           Seconds to wait before timeout connection (default 30)
  --retries           Retries when the connection related error occurs (default 3)
  --confirm           Confirm the injected payloads.
  --ignore-code       Ignore (problematic) HTTP error code(s) (e.g. 401)
  --skip-urlencode    Skip URL encoding of payload data
  --force-ssl         Force usage of SSL/HTTPS

Optimization:
  These options can be used to optimize the performance of ghauri

  --threads THREADS   Max number of concurrent HTTP(s) requests (default 1)

Injection:
  These options can be used to specify which parameters to test for,
  provide custom injection payloads and optional tampering scripts

  -p TESTPARAMETER    Testable parameter(s)
  --dbms DBMS         Force back-end DBMS to provided value
  --prefix            Injection payload prefix string
  --suffix            Injection payload suffix string
  --safe-chars        Skip URL encoding of specific character(s): (e.g:- --safe-chars="[]")
  --fetch-using       Fetch data using different operator(s): (e.g: --fetch-using=between/in)

Detection:
  These options can be used to customize the detection phase

  --level LEVEL       Level of tests to perform (1-3, default 1)
  --code CODE         HTTP code to match when query is evaluated to True
  --string            String to match when query is evaluated to True
  --not-string        String to match when query is evaluated to False
  --text-only         Compare pages based only on the textual content

Techniques:
  These options can be used to tweak testing of specific SQL injection
  techniques

  --technique TECH    SQL injection techniques to use (default "BEST")
  --time-sec TIMESEC  Seconds to delay the DBMS response (default 5)

Enumeration:
  These options can be used to enumerate the back-end database
  management system information, structure and data contained in the
  tables.

  -b, --banner        Retrieve DBMS banner
  --current-user      Retrieve DBMS current user
  --current-db        Retrieve DBMS current database
  --hostname          Retrieve DBMS server hostname
  --dbs               Enumerate DBMS databases
  --tables            Enumerate DBMS database tables
  --columns           Enumerate DBMS database table columns
  --count             Retrieve number of entries for table(s)
  --dump              Dump DBMS database table entries
  -D DB               DBMS database to enumerate
  -T TBL              DBMS database tables(s) to enumerate
  -C COLS             DBMS database table column(s) to enumerate
  --start             Retrieve entries from offset for dbs/tables/columns/dump
  --stop              Retrieve entries till offset for dbs/tables/columns/dump
  --sql-shell         Prompt for an interactive SQL shell (experimental)

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

四、其它

法律免责声明

未经双方事先同意,使用Ghauri攻击目标是非法的。
最终用户有责任遵守所有适用的地方、州和联邦法律。
开发者不承担任何责任,也不对本程序造成的任何误用或损坏负责。


待办工作

  • 添加对内联查询的支持。
  • 添加对基于Union的查询的支持

为什么选择 Ghauri

就连 Stamparam 也承认了Ghauri,在推特上将其描述为“内部重写”,强调了其内部机制的重要性。

例如,您可以将易受攻击的HTTP请求保存到文件(身份验证后的SQLi),并使用-r开关将其提供给Ghauri和SQLMap。结果不言自明,无需自定义配置。

Ghauri以类似浏览器的方式运行,并采用自己独特的方法,自动切换到不同的渗透技术和旁路。同样,这不是一个直接的比较,因为Ghauri仍然有许多功能需要实现,而SQLMap已经功能丰富。然而,Ghauri始终如一地执行所需的任务。

自从开发这个工具以来,我很少使用SQLMap,除了少数情况下Ghauri仍在改进。

我鼓励你亲自尝试一下。谢谢你。


2025-01-10(六)


http://www.kler.cn/a/510623.html

相关文章:

  • windows蓝牙驱动开发-蓝牙设备栈
  • 数据结构入门
  • Rust Actix Web 项目实战教程 mysql redis swagger:构建用户管理系统
  • Spring Boot 3.4.x 和 Micrometer 2.0 的结合 案例 以及使用方法
  • 创建 pdf 合同模板
  • docker 基础语法学习,K8s基础语法学习,零基础学习
  • 【JAVA项目】基于ssm的【游戏美术外包管理信息系统】
  • Mixly米思齐1.0 2.0 3.0 软件windows版本MAC苹果电脑系统安装使用常见问题与解决
  • AI使优化服务与提升服务
  • 强网杯RS加密签名伪造及PyramidWeb利用栈帧打内存马
  • Vue进阶之旅:核心技术与页面应用实战(路由进阶)
  • [JavaScript] 运算符详解
  • 数据结构与算法面试专题——引入及归并排序
  • 欧拉计划 Project Euler 52(重排的倍数) 题解
  • golang标准库path/filepath使用示例
  • Java开发提速秘籍:巧用Apache Commons Lang工具库
  • 深度学习中超参数
  • 基于微信小程序的安心陪诊管理系统
  • 基础入门-传输加密数据格式编码算法密文存储代码混淆逆向保护安全影响
  • 自由能最小化与逍遥游:从心理预期到心灵自在的和谐旅程
  • react中,使用antd的Upload组件上传zip压缩包文件
  • [JavaScript] 深入理解流程控制结构
  • 开发笔记4
  • 二叉搜索树(TreeMapTreeSet)
  • fd与FILE---基础文件IO(关注我,教我写博客 -- 今天带了点颜色)
  • webpack 4 升级 webpack 5