13.4 接口未授权访问 / 调用测试
13.4.1 测试原理和方法
在正常的业务中,敏感功能的接口需要对访问者的身份进行验证,验证后才允许调用
接口进行操作。如果敏感功能接口没有身份校验,那么攻击者无须登录或者验证即可调用
接口进行操作。在安全测试中,我们可以使用 Burp Suite 作为 HTTP 代理,在登录状态下记
录所有请求和响应信息,筛选出敏感功能、返回敏感数据的请求。在未登录的情况下,使
用浏览器访问对应敏感功能的请求,如果返回的数据与登录状态后的一致,则存在漏洞或
缺陷。
13.4.2 测试过程
如图 13-21 所示,攻击者在测试前,使用 Brup Suite 的爬虫功能对网站进行爬取,通过
MIME
Type 筛选出与接口相关的请求,对筛选后的每一个请求进行判断是否包含敏感信
息。如果包含敏感信息,则复制请求 URL 到未进行登录的浏览器进行访问,如果访问后返
回之前的敏感信息,则存在漏洞。
图 13-21 接口未授权访问测试流程图
步骤一:登录后使用 Burp
Suite 的爬虫功能,从重点关注的目录(一般为网站根目
录)开始爬取,在 HTTP
history 选项卡中选中要开始爬取的项,右键选择“Spider
from
here”。爬取的结果会在 Target→Site
map 中显示。如图 13-20 所示,在爬取完毕后,使用
Burp Suite 的 MIME type 过滤功能,筛选出接口相关的 HTTP 请求,重点关注 json、script、
xml、text MIME type 等。
图 13-22 对 MIME type 进行过滤
步骤二:如图 12-23 所示,对接口相关的请求进行查看,查看响应中是否包含想要的
敏感信息,如个人电话、IP 地址、兴趣爱好、网站历史记录、身份证、手机号、住址等信
息。
图 13-23 查找包含敏感信息的 HTTP 请求
通过查看响应包的具体信息,可以发现返回页面包含敏感信息,如 ip 地址、视频的历
史播放等信息,通过这些信息可以了解其位置及关注点。
步骤三:如图 13-24 所示,将完整的请求 URL 复制到未登录的浏览器中,查看能否访
问对应 URL 的内容。如果能够返回敏感信息,则说明漏洞存在;如果需要登录验证后才能
访问,则不存在该漏洞。
图 13-24 未登录状态下访问 URL
在未进行登录的浏览器上,能够直接返回对应 URL 的页面内容而无须验证其身份,则
该网站存在接口未授权访问的漏洞。
13.4.3 修复建议
(1)采用 Token 校验的方式,在 url 中添加一个 Token 参数,只有 Token 验证通过才返
回接口数据且 Token 使用一次后失效。
(2)在接口被调用时,后端对会话状态进行验证,如果已经登录,便返回接口数
据;如果未登录,则返回自定义的错误信息。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论