SuperAPI AI 工具集

hunt-nosqli

安全与审计

查看项目

更新于 10-15 09:10

技能介绍

hunt-nosqli 是一个 NoSQL 注入(NoSQLi)狩猎技能,用于在授权安全测试中系统性地发现和验证 NoSQL 注入漏洞。其核心价值在于认证绕过(严重)和用户集合数据泄露(高危)。

【主要能力】 技能覆盖多种 NoSQL 攻击面:MongoDB 操作符注入($gt、$ne、$regex、$in、$where)、CouchDB、Redis 命令注入、Elasticsearch 脚本注入。它给出了从认证绕过、URL 参数注入、$where 盲注、正则数据导出到自动化工具和 SSRF 攻击 Redis 的完整方法论。

【攻击面信号】 技能提示关注接受 JSON 请求体的登录/搜索/查询接口(如 /api/users/login、/api/search?q=、/api/find?filter=、/api/query?where=),以及技术栈信号:响应中的 MongoDB 错误信息、JS 包中的 mongoose/monk、X-Powered-By: Express、暴露的 CouchDB/_utils、经 SSRF 可达的 Redis 6379 端口、开放的 Elasticsearch 9200 端口。

【使用方式】 技能按阶段给出可直接执行的命令:

  1. MongoDB 认证绕过:在 JSON 请求体中注入操作符,如 {"username": {"$gt": ""}, "password": {"$gt": ""}}、$regex 通配、$ne 绕过、$in 数组绕过。
  2. URL 参数注入:使用数组记法,如 username[$gt]=&password[$gt]=、q[$regex]=.*&q[$options]=i,以及 POST 表单数据。
  3. $where 盲注:通过时间延迟检测 $where 是否启用,并用正则匹配进行盲数据导出。
  4. b. 字符串上下文语法注入:当应用将输入拼接进 JS $where 字符串时,先模糊测试(' " ` { ; $),再用 ' || '1'=='1 等突破字符串上下文,用布尔字符导出预言机。
  5. 正则数据导出:逐字符枚举用户名。
  6. 自动化:使用 nosqlmap(pip3 install nosqlmap)进行攻击与数据提取。
  7. 经 SSRF 攻击 Redis:通过 gopher:// 探测内部 Redis,使用 CONFIG SET 写 webshell 或 SLAVEOF 进行带外数据导出。

【绕过与利用链】 技能提供绕过表:JSON.parse 拒绝对象时改用 URL 参数数组;过滤 $ 时使用 Unicode;阻止操作符键时使用更深层嵌套对象。利用链表说明:认证绕过可进入管理面板获得完全控制;正则用户枚举可用于撞库和大规模账户接管;$where 启用可在数据库进程中执行任意 JS;经 SSRF 的 Redis 可写 webshell 或导出数据。

【验证与严重性】 验证标准包括:认证绕过(无有效凭据登录并获得有效会话令牌)、数据导出(返回无权访问的用户/文档)、盲注(通过时间延迟确认,持续超过 4 秒)。严重性分级:以管理员身份认证绕过为严重,用户集合导出为高危,无有效数据导出的盲注为中危。

【适用场景与限制】 适用于已获授权的渗透测试和漏洞赏金场景,针对使用 MongoDB、CouchDB、Redis、Elasticsearch 的应用。技能本身不提供目标授权信息,使用者需自行确保合法授权。部分技术(如 Elasticsearch Groovy 脚本注入)仅适用于 5.0 之前版本。具体平台、收费、价格等信息暂未提供。