前言
该应用程序是一个允许用户创建组织、跟踪其网站并提供多种功能的应用。此外,管理员可以邀请其他用户并为其分配自定义权限。
我不清楚该应用的具体技术栈和开发语言,但我知道它的权限配置可能非常复杂,因为这个漏洞本身就十分奇特。
正文
在研究权限管理的过程中,我尝试像其他安全研究员一样寻找垂直越权漏洞。
然而,经过测试,大部分尝试都被正确地拦截了,直到我发现了一个奇怪的现象。
当管理员撤销攻击者的某项权限(例如查看组织用户的权限)时,我作为攻击者尝试调用该 API 端点,结果发现请求的响应时间比平常长了许多。
具体来说:
1. 在管理员撤销权限之前,API 请求的响应时间大约是 300ms。
2. 在管理员撤销权限之后,第一次请求的响应时间超过 1000ms,但之后又恢复到 300ms。
我对此感到疑惑,因为通常权限变更后,系统应当立即生效并拒绝访问。然而,这个延迟让我怀疑后端可能在做某些额外的处理。
于是,我决定进一步测试。我尝试对受限的 API 端点进行模糊测试。
在管理员撤销权限之前,我使用 ffuf
工具对 API 端点进行模糊测试,其中 FUZZ
代表模糊测试参数,用于测试不同的请求方式。
请求如下:
GET /api/v2/users?limit=10&FUZZ HTTP/1.1 Host: api.target.com ...
我的测试频率很低,每秒仅发送2个请求,以确保不会造成拒绝服务攻击。
最后我发现,攻击者本应被禁止访问,但由于暴力测试请求的持续进行,我仍然可以继续访问受限 API,权限撤销未生效。
换句话说,只要我持续向该 API 发送请求,管理员的权限撤销就不会影响我。
我无法确切解释该漏洞的成因,但可以推测可能涉及以下几种情况:
-
权限变更存在延迟,后端可能需要额外的时间来同步权限数据,而在此期间,已有连接未被立即强制关闭。 -
某些系统在请求过程中不会立即重新验证权限,导致旧权限仍然有效。 -
可能 API 请求的权限校验结果被错误地缓存,使得攻击者能够绕过新权限设置。
无论是哪种情况,这都是一个极其罕见的访问控制漏洞。
原文始发于微信公众号(玲珑安全):大伙儿来看看,这是什么漏洞?
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论