用途:面向授权安全测试与教学,检测 REST API 在接受 JSON 创建/更新资源时是否存在批量赋值漏洞(ORM 自动绑定未限制字段)。适用于注册、资料更新、账户管理、订单与订阅等 CRUD 端点,以及基于 Rails、Django、Laravel、Spring 等框架的应用。
主要能力:1) 通过响应字段差异、API 文档(/api/docs、swagger.json、openapi.yaml)与 Arjun 等工具发现隐藏参数;2) 注入 role、isAdmin、is_admin、user_type、privilege_level 等测试权限提升;3) 篡改 price、balance、discount_percent、plan 等测试业务逻辑;4) 注入 email_verified、verified、active、banned 等绕过验证与状态控制;5) 修改 owner_id、organization_id、team_id、created_at 等测试关系与外键操纵;6) 借助 Burp Intruder、mass_assignment_tester.py、Nuclei 模板批量测试。
必要用法:需准备 Burp Suite 或 Postman、Arjun/param-miner、API 文档与多级权限账户。先以 curl 拉取 /api/users/me 等响应识别字段,再用 PUT/PATCH/POST 注入候选字段,例如 curl -X PATCH http://target.com/api/users/me -H "Authorization: Bearer USER_TOKEN" -H "Content-Type: application/json" -d '{"isAdmin":true}',并核对响应与服务端实际状态。
关键概念:批量赋值、autobinding、允许列表(strong_parameters)、拒绝列表、隐藏字段、DTO、参数污染。常见场景包括管理员权限提升、价格操纵、邮箱验证绕过、账户接管、订阅升级。
限制:仅限对自有或获书面授权的系统进行测试,未授权使用违法。资料未提供具体框架版本差异、修复代码示例或收费信息;实际效果取决于目标实现。
输出格式:可整理为漏洞报告,列目标、方法、框架、注入字段前后值与影响,并给出允许列表、DTO、字段级授权、日志告警等修复建议。