daniyalnasir-root/paramsneak
GitHub: daniyalnasir-root/paramsneak
一款基于捕获的 curl 自动探测并复现批量赋值漏洞的 PoC 生成工具。
Stars: 0 | Forks: 0
# paramsneak
针对卡住字段的批量赋值探测工具,为每个卡住的字段提供可工作的 PoC curl 命令。
你从 Burp 捕获了 `POST /api/users` 请求,怀疑 API 静默接受了不应存在的额外键。`paramsneak` 会逐一为每个额外字段重新发送创建请求,观察响应(或 GET 回查)是否回显该字段,并打印出每个被服务器愉快接受的字段对应的可复制粘贴的 curl 命令。输出即是证明,而非关于证明的报告。
[](https://www.python.org/)
[](LICENSE)
[](#)
## 概述
**Mass assignment** 是一种漏洞:创建端点接收 JSON 或表单体,并将请求中的每个键绑定到模型,而不管该键是否在请求模式中声明。`role`、`is_admin`、`balance`、`tenant_id`、`verified` 等字段。大多数 API 表现正常;但有问题的 API 会静默地授予任何发送这些字段的人以管理员权限。
手动操作是:针对每个额外字段重复发送相同的创建请求、刮取响应查看是否保留、并整理成清晰报告。`paramsneak` 自动化全部三步。它解析捕获的 curl,遍历内置的常见权限/状态键列表(或你自定义的列表),发送每个变体,检查创建响应中是否回显该键,并可选地重新获取资源以确认字段是否真正保留在服务端,最后输出编号的可复制粘贴的 PoC curl 列表。
输出包含两部分堆叠的内容:每次探测的逐条日志(`▷` 表示探测,`└─` 表示保留的位置与方式)以及末尾的 `>>` 块,其中是可直接粘贴的 curl 命令。将这些 curl 直接注入你的报告即可。
## 功能特性
- 解析带 `-H`、`-X`、`-d/--data-raw`、`--json` 的捕获 curl,支持表单与 JSON 体
- 内置 16 个高信号量赋值键的字典(如 `role=admin`、`is_staff=true`、`balance=99999`、`tenant_id=1` 等);可通过 `--fields k1=v1,k2=v2` 覆盖
- 使用可配置的正则表达式自动提取新资源 ID,并通过可选的 `--get-back` 模板在服务端验证字段是否保留
- 为每个保留字段生成一条可复制粘贴的 curl,根据 JSON 或表单编码正确合并请求体
- 保守的保留检测:要求键与值同时在邻近位置出现,避免仅因值碰巧出现在其他字段中而产生误报
## 安装
```
git clone https://github.com/daniyalnasir-root/paramsneak.git
cd paramsneak
python3 cli.py -h
```
无需 pip 安装。仅依赖标准库。
## 用法
```
# JSON 主体,默认字段字典
python3 cli.py \
--curl "curl -X POST https://app.example.com/api/users \
-H 'Content-Type: application/json' \
-H 'Cookie: sess=xyz' \
--data-raw '{\"name\":\"alice\",\"email\":\"alice@example.com\"}'"
# 表单主体,自定义字段列表,GET 返回确认角色在服务器端卡住
python3 cli.py \
--curl @./create.curl \
--fields "role=admin,plan=enterprise,quota=999999" \
--get-back "https://app.example.com/api/users/{id}" \
--id-pattern '"user_id"\s*:\s*"?([^",}\s]+)'
```
## 命令行选项
| 标志 | 是否必需 | 描述 |
|------|----------|------|
| `--curl` | 是 | curl 命令字符串,或 `@路径/到/文件` |
| `--fields` | 否 | 逗号分隔的 `键=值` 列表(默认:内置的权限/状态集合) |
| `--get-back` | 否 | 包含 `{id}` 的 URL 模板,用于服务端保留验证 |
| `--id-pattern` | 否 | 含单个捕获组的正则表达式,应用于创建响应(默认 `"id":"..."`) |
| `--timeout` | 否 | 每个请求的超时秒数(默认 10) |
## 输出示例
```
$ python3 cli.py --curl "curl -X POST https://httpbin.org/anything \
-H 'Content-Type: application/json' \
--data-raw '{\"name\":\"alice\"}'" \
--fields "role=admin,is_admin=true,balance=99999"
target: POST https://httpbin.org/anything
body kind: json
fields under test: 3
► sending baseline create...
└─ 200 540B 464ms
└─ no id extracted
▷ role=admin → 200 581B 362ms
└─ echoed in CREATE response
▷ is_admin=true → 200 581B 356ms
└─ echoed in CREATE response
▷ balance=99999 → 200 581B 401ms
└─ echoed in CREATE response
>> PoC curls for 3 stuck field(s)
............................................................
>> role=admin (create)
curl -X POST https://httpbin.org/anything ... -d '{"name":"alice","role":"admin"}'
```
两次运行的完整未裁剪输出位于 [`examples/`](examples/)。
## 法律声明
本工具仅供授权的安全测试与教育用途。
请仅针对你拥有或已获得明确书面许可的系统运行。
作者不承担任何滥用责任。未经授权的使用可能违反
当地、州或联邦法律。
## 作者
**Daniyal Nasir** | 网络安全顾问 | 渗透测试工程师 | VAPT 顾问 | 赏金猎人
拥有 10 年以上经验的**进攻型安全**专业人士,专注于为财富 500 强企业及全球 SaaS 公司提供**Web 应用渗透测试**、**API 安全测试**、**移动应用渗透测试**与**云安全评估**。项目覆盖**中东、亚洲、欧洲与北美**。活跃的**道德黑客**,已在主流赏金计划中披露多个漏洞,并提供**安全代码审查**、**威胁建模**与**DevSecOps**集成咨询。持有 **OSCP**、**LPT**、**CPENT**、**CEH**、**CISA**、**CISM** 与 **CASP+** 认证。
LinkedIn: https://www.linkedin.com/in/daniyalnasir
网站: https://www.daniyalnasir.com
## 许可证
MIT,详见 [LICENSE](LICENSE)。
标签:API安全, Burp, Curl生成, JSON输出, Mass Assignment, PoC生成, SEO: API安全漏洞, SEO: Burp插件, SEO: Mass Assignment, SEO: 参数篡改工具, SEO: 权限提升, SEO: 越权漏洞, SQL注入替代方案, 协议分析, 参数篡改, 参数覆盖, 垂直越权, 字段回显检测, 安全测试, 密钥枚举, 开发安全, 抓包重放, 攻击性安全, 敏感字段注入, 数据污染, 服务器端验证, 权限提升, 权限绕过, 水平越权, 越权漏洞, 身份伪造, 逆向工具