接口越权测试方法
常见的接口越权场景和相应测试方法
测试场景 | 场景描述 | 排查/测试方法 |
---|---|---|
向上提权测试 | 一个低权限用户越权执行高权限用户的操作或者访问高权限用户的信息和资源 | 1、高权限用户登录到应用系统 2、使用拦截请求工具录制只有高权限用户才能访问的相关请求 将这些请求的会话信息分别更换为低权限用户会话信息,提交请求 4、检查返回结果为403或者类似响应 |
向下提权测试 | 一个高级别的用户,应可以访问低级别用户所属的资源或者信息。但是实际应用中,特别是对数据隐私保护比较严格的今天,却不可以,因为每个人都有自己的隐私敏感信息,如年龄、信用卡、密码、人脸、手机号等,这些信息用户通常仅希望只有他一个人知道,即使是管理员也不应该知道 | 1、高权限用户登录到系统 2、使用拦截请求工具录制所有用户都能访问的相关请求 3、将这些请求的会话信息分别更换为低权限用户的会话信息,提交请求 4、检查返回信息,高权限用户不能访问低权限用户的个人隐私信息 |
横向越权测试 | 应用程序通常会检查用户是否合法,且是否具有指定操作的权限,但是可能没有检查是否被允许访问他们所访问的资源权限 | 1、用户登录到系统 2、使用拦截请求工具录制所有用户都能访问的相关请求 3、将这些请求的会话信息分别更换为用户B的会话信息;或者将用户A访问的资源标识信息更换为用户B的资源标识信息,提交请求 4、检查返回结果 |
直接URL越权 | 应用系统通常会使用统一的方法验证重要功能访问控制,但是由于开发人员业务水平的参差不齐,后续阶段陆续加入的功能URL未能在权限验证范围内,从而被绕过,导致直接URL越权访问 | 1、不登陆系统,直接访问应用系统入口URL 2、使用安全工具爬取URL 3、针对爬取的URL,检查响应状态码为200的请求是否为重要功能或者敏感功能,并验证是否可以直接访问 |
界面元素越权 | 某些系统通过界面元素灰化、隐藏等方式控制用户访问的功能差异,这种控制方法很容易被安全工具篡改请求参数方式绕过 | 1、定位到可能由界面方式控制访问的页面 2、单击鼠标右键,选择“查看源文件” 3、在网页“源文件”中查找禁用、隐藏、灰化的管理菜单/按钮 4、删除禁用、隐藏、灰化等标识,提交页面请求 5、检查篡改的请求是否成功 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 酒浅一生!