SuperAPI AI 工具集

nosql-injection

数据与分析

查看项目

更新于 10-16 08:08

技能介绍

用途:针对 MongoDB、CouchDB 等 NoSQL 数据库的注入检测与利用,重点在认证绕过与数据提取。

主要能力:

  1. 识别:JSON 登录请求、Node.js/Express 技术栈、MongoError/CastError/BSONTypeError 报错、mongodb:// 连接串、参数接受对象或数组、CouchDB /_all_docs 与 /_find 端点。
  2. 认证绕过:将密码改为 {"$ne": ""}、{"$gt": ""} 等操作符;URL 编码形式如 password[$ne]=;用 $regex 枚举用户名。
  3. 盲注提取:用 $regex 逐字符猜测字段值;$where JavaScript 注入做条件判断与时间盲注;聚合管道 $lookup 跨集合读取。
  4. 高级利用:ObjectId 时间戳推断、MongoDB Shell 注入、CouchDB Mango 查询注入与 design document 篡改。
  5. 绕过:Unicode 编码 $、深层嵌套 $not、切换 Content-Type、操作符变体($ne/$gt/$gte/$exists/$in/$nin)。

使用方式:先发正常登录请求记录失败响应,再替换 password 为 {"$ne": ""} 对比差异;JSON 不行则换 URL 编码。工具可用 NoSQLMap:python nosqlmap.py -u http://TARGET/login -p username,password;mongosh mongodb://TARGET:27017;Burp Intruder 做操作符 fuzz。

适用场景:登录表单 JSON 提交、参数出现 $gt/$ne/$regex 等操作符、疑似 MongoDB/CouchDB 后端的目标。

限制:$where 依赖服务端 JavaScript 是否启用,可通过 --noscripting 或 security.javascriptEnabled: false 禁用;MongoDB 8.0 起服务端 JavaScript(含 $where)被 deprecated,但 5.x/6.x/7.x 不应默认视为不可用。CouchDB 篡改 design document 需要 admin 权限。仅限授权测试使用。