用途:验证每个对象和每个操作是否在服务端执行“调用者是否被允许”的授权检查。认证回答“你是谁”,授权回答“你能做什么”,本技能只测后者;适用于存在认证、多用户、角色或多租户数据的应用,完全公开无权限区分的应用不适用。
主要能力:按读写、更新、删除、管理操作,分别以其他同级用户(水平)、低权限用户(垂直)、未认证三种身份运行测试矩阵,任一单元格成功即构成发现。覆盖的缺陷类别包括IDOR/BOLA、水平越权、垂直越权、BFLA、多租户隔离破坏(交换org_id/tenant_id)、批量赋值(注入role、isAdmin、userId、price等字段)、强制浏览隐藏路由与枚举。
使用方式:使用自己在已获授权测试的应用上创建的测试账号,推荐两个同级账号A与B加一个管理员或低权限账号。抓取用户A的合法请求,记录其中所有id、uuid、slug、文件名;将对象引用换成B的资源而保留A的会话,检测IDOR/BOLA;在特权端点上移除令牌或换成低权限令牌,检测BFLA与垂直越权;用普通账号直接访问/admin、/api/internal等路由;在请求体中添加界面从不发送的字段;对每个HTTP方法都测,GET受保护不代表PUT/DELETE/PATCH受保护。
输出与衔接:在发现登记中记录哪个账号命中了哪个端点或对象、被替换的具体请求、暴露了什么、属于水平还是垂直,严重级别通常为高及以上。在运行中的应用确认后,可通过主动渗透复现,与其他问题串联,并通过安全加固(默认拒绝、服务端校验)修复。
限制与常见错误:仅以管理员身份测试无法发现该类缺陷,必须用低权限账号;不能假设隐藏或未链接的端点安全;不能只检查GET;UUID会通过响应、日志、Referer泄露,仍可被IDOR利用;还需留意顺序id、base64编码id和可猜测文件名。资料未提供具体命令与代码示例。