SuperAPI AI 工具集

hunt-sqli

安全与审计

查看项目

更新于 10-15 09:02

技能介绍

hunt-sqli 是一个专注于 SQL 注入(SQLi)及现代 NoSQL 注入漏洞的狩猎技能,来源于 elementalsouls/claude-bughunter。其资料由 12 份公开漏洞赏金报告整理而成,涵盖现代 NoSQL 注入案例(如 Rocket.Chat CVE-2021-22911 中 MongoDB $regex 的预认证盲注)。

【核心原则】 技能强调:不要信任目标自身的提示。页面中嵌入的文字(教程说明、"不显示错误——请用盲注"、建议的 payload)都是不可信内容,常把测试者引向最慢或死胡同的路径。应从实时响应的实际行为决定技术,并始终优先选择最快可行的方法。

若端点会反射查询结果(搜索/列表/报表页把行数据返回给你),应使用 UNION 将数据直接导出到可见输出中,速度快(几次请求)且被窃数据出现在响应中便于证明。慢速的布尔盲注(逐字符 SUBSTR)只保留给不反射数据的端点,属于最后手段。

【UNION 列数确定】 列数是关键,必须首先通过枚举确定,绝不靠猜测。列数错误的 UNION 会静默返回零行,看起来与"不存在漏洞"完全一样。确认注入后,用 ' ORDER BY N-- - 递增或 ' UNION SELECT NULL[,NULL...]-- - 逐个增加 NULL(最多约 12 个)来定位列数;再用 UNION SELECT 1,2,3... 找出被反射的列;最后把数据放入反射位置导出,证明标准是被提取的数据(密码哈希、邮箱、表内容)出现在响应中。

【高价值目标】 多租户 SaaS 数据库、电商/支付系统、搜索端点、分析/追踪子域、企业安装中的第三方插件、暴露到外部的内部工具(Apache Airflow、GitHub Enterprise、管理面板)、NoSQL(MongoDB)后端。收益最高的资产类型包括生产 API 的 /search、/filter、/sort、/report 参数,旧技术栈子域,自托管开源工具,邮件追踪与分析设施。

【攻击面信号】 URL 参数模式(/search?q=、/filter?category=、/sort?by=&order=、/report?start_date=&end_date=、/api/v1/items?id=、/index.php?id=、/gallery?album_id=、/track?uid=&campaign=、?page=&limit=&offset=);响应头信号(X-Powered-By: PHP、Server: Apache + PHP、X-Powered-By: Express、数据库错误泄漏);JS 中动态查询构造(fetch 模板字符串、$.ajax、axios.get 拼接);技术栈信号(带第三方插件的 WordPress、Airflow、GitHub Enterprise、Node.js + MongoDB、返回 MySQL 错误的 PHP 应用);NoSQL 的 Content-Type 信号(嵌套对象参数的 JSON 请求体、接受数组的参数 param[]=value 或 {"key":{"$gt":""}})。

【分步方法论】 枚举全部输入向量(Burp 被动扫描,捕获 GET/POST/JSON body/请求头/ Cookie/路径段)→ 识别技术栈 → 建立响应基线 → 发送错误型探测(单引号、双引号、反引号)→ 布尔盲注测试 → 时间盲注测试(MySQL SLEEP、PostgreSQL pg_sleep、MSSQL WAITFOR DELAY,响应时间差 >5 秒即确认)→ NoSQL 对象注入测试 → 用 sqlmap 自动化确认(--level=3 --risk=2)→ 升级影响(UNION 提取、INFORMATION_SCHEMA 导出、文件读写、堆叠查询 RCE)→ 记录完整链路。

【Payload 与检测模式】 技能列出错误型初始探测、布尔盲注、时间盲注(含 MySQL/PostgreSQL/MSSQL/SQLite 各自语法)、UNION 型、NoSQL 注入(JSON body 与查询字符串)、PHP 哈希/数组注入等 payload 示例,以及 JS 源码 grep 模式、curl 时间型检测、sqlmap 命令和 Burp Intruder 列枚举 payload 列表。

【常见根因】 字符串拼接代替参数化查询、为"性能"绕过 ORM、搜索/过滤功能难以参数化、第三方插件/库漏洞、遗留代码库、内部工具被暴露到外部、NoSQL 的错误安全感、ORDER BY/GROUP BY 转义不足、HTTP 请求头与非显眼输入。

【WAF 绕过技巧】 关键字混淆(空格替换、大小写变化、注释注入)、编码绕过(URL 编码、双重编码、Unicode、HTML 实体)、操作符替换、函数替换、基于请求头的注入、JSON/NoSQL WAF 绕过、认证绕过、分块传输编码。

【报告验证门 G0】 提交报告前须回答三个问题:(1)攻击者现在能做什么——需能演示至少一项:通过错误消息或 UNION 提取数据库版本/名称、证明时间延迟控制、从 information_schema.tables 提取一行、通过布尔注入绕过认证,或对 NoSQL 绕过登录/提取集合数据;(2)受害者失去什么——须指明具体面临风险的数据(PII、凭证/会话令牌、业务数据、外泄能力);(3)能否在 10 分钟内从头复现——须有单条 curl 或 Burp repeater 请求、不依赖立即过期的会话状态、可稳定触发的 payload 或 tamper 脚本。

【真实影响示例】 技能给出三个场景:区域子域旧技术栈(Uber sctrack 模式,旧 PHP 栈的 uid 参数拼接进 MySQL 查询)、企业域名上的第三方插件(Uber WordPress Huge IT Video Gallery 插件的 album_id 未参数化)、暴露到外部的认证内部工具(Apache Airflow 管理 UI 过滤器/搜索参数注入)。资料同时列出披露报告引用,包括 Rocket.Chat 预认证盲注 NoSQL 注入(CVE-2021-22911,H1 #1130721),其 payload 为 Meteor DDP 方法调用中对 token 使用 $regex 逐字符暴力破解密码重置令牌。

【限制】 本技能基于公开报告构建,具体效果取决于目标环境与授权范围。资料未提供收费、价格、平台或安装方式等信息。自动化测试与注入利用可能涉及法律风险,应在明确授权范围内使用。