用途:在授权测试中排查 FastAPI 特有攻击面,包括基于 Depends 的依赖注入授权缺口、Pydantic 模型强制转换与额外字段、OpenAPI 架构挖掘隐藏端点、ASGI 中间件与代理信任问题、WebSocket 与挂载 GraphQL 的鉴权差异。
适用条件:目标出现 /docs、/redoc、/openapi.json 或 uvicorn 特征;OpenAPI 架构可公开访问;API 使用依赖注入做授权;存在 WebSocket;使用 Pydantic v1 或 v2。
主要步骤:一、OpenAPI 挖掘,如下载架构、筛选 security 为空的路由、用 ffuf 做路径参数模糊测试;二、依赖注入授权检查,用无效或缺失令牌请求受保护端点,枚举各 HTTP 方法,检查背景任务是否跳过鉴权;三、Pydantic 利用,测试布尔/整数字段字符串强制转换、额外字段注入、切换 Content-Type;四、ASGI 中间件与代理信任,测试 X-Forwarded-For、X-Real-IP、Host 头与 CORS 预检;五、WebSocket 鉴权一致性,尝试无令牌或低权限令牌连接;六、挂载 GraphQL 的鉴权缺口,测试 schema 内省与未授权变更。
限制与注意:Pydantic v2 的 extra='ignore' 会静默丢弃未知字段;/openapi.json 返回 403 时 /docs 与 /redoc 可能仍可访问;Depends 与 Security 并不等同;IP 伪造需服务端启用 uvicorn --proxy-headers;仅在合法授权范围内使用。相关技能:hunt-api-misconfig、hunt-idor、web-enumeration。