SuperAPI AI 工具集

hunt-mass-assignment

通用与其它

查看项目

更新于 10-16 03:04

技能介绍

用途:检测 API 端点是否将用户提交的字段直接绑定到内部对象而未做字段允许列表,从而判定批量赋值漏洞。适用于 API 接受 JSON/XML/表单体且字段多于界面暴露字段、用户资料更新/注册/结算/资源创建、默认批量赋值的 ORM 框架(Rails ActiveRecord、Laravel Eloquent、Django ORM、Mongoose、Prisma),以及可能跳过逐字段授权的 PATCH 稀疏更新接口。

主要能力:提供敏感字段字典(如 isAdmin/role 提权、ownerId 接管资源、plan/tier 绕过支付、balance/credits 财务篡改、verified 绕过验证、organizationId/tenantId 跨租户、banned/disabled 账户状态控制);覆盖多种注入形态:点号路径、括号表示法、数组包装、重复键解析差异;框架特定模式(DRF、Laravel forceFill、Mongoose $set、Prisma 嵌套 connect)、JSON Patch / JSON Merge Patch 及批量端点,以及 GraphQL 输入类型注入。

使用方式:以授权目标为例,对资料更新等端点发送携带敏感字段的请求并回读验证。示例: curl --max-time 30 --connect-timeout 10 -sk -X PATCH "https://target.com/api/user/profile" -H "Content-Type: application/json" -d '{"name":"test","isAdmin":true,"role":"admin"}'

注意事项:部分框架会静默忽略未知字段,可尝试 snake_case、camelCase、PascalCase 等命名;PATCH 可能比 PUT 更宽松,需同时测试;GraphQL 输入类型可用内省查找可写字段后测试额外字段;批量端点常跳过逐项授权。验证时需确认字段已持久化并实际带来提权。相关技能:hunt-api-misconfig、hunt-idor、hunt-write-gap。上述测试应仅在获得授权的环境中进行。