由于缓存配置错误而绕过授权

admin 2024年12月2日11:36:01评论9 views字数 1754阅读5分50秒阅读模式

这篇文章是关于我最喜欢的发现之一,因为这是一个非常出乎意料的问题。

我正在测试一个电子商务网站。
它有 2 个资产。
target.comadmin.target.com

target.com是面向用户的门户,用户可以在其中购买物品。
基本上是卖家的管理门户,他们可以在其中列出他们的商品、跟踪订单、客户信息等。admin.target.com

我正在测试 idor 和访问控制。我通常使用 Autorize 来做这件事。

如果较低权限的用户能够点击管理端点,Autorize 会将其标记为 “bypassed” 。

由于缓存配置错误而绕过授权由于缓存配置错误而绕过授权

普通用户 cookie 放入 Autorize 后,我正在使用 来检查普通用户是否可以访问管理端点。target.comadmin.target.com

在我测试期间发生了一些不寻常的事情。

每次访问终端节点时:

https://admin.target.com/orders,则正在发出 GraphQL 请求。

POST /graphql
Host: admin.target.com

{"operationName":"GetOrders","variables":{"shop_id":"X"},"query":"query X"}

响应包含我商店的所有订单信息。
这是预期行为。

然而,奇怪的是,Autorize 将端点标记为“已绕过”,这意味着即使是普通用户也能够发出此请求并访问我商店的订单信息。

但是当我将该请求发送到 repeater 并尝试使用用户 cookie 发出请求时,它给出了一个错误。

由于缓存配置错误而绕过授权由于缓存配置错误而绕过授权

嗯🤔

autorize 表示 bypassed ,repeater 表示 forbidden。

我以为这是 autorize 内部的一个小故障,然后继续前进。

在我测试程序的整个星期里,它一直在发生。

Autorize 一直将端点显示为“已绕过”,但是当我过去将请求发送到 repeater 和 test 时,它给了我错误。GetOrders403 forbidden

在这一点上,我确定这不是 Autorize 的问题,我只是遗漏了一些东西。

然后它咔嚓一声。

Autorize 和 Repeater 之间的唯一区别是时间间隔。

虽然他们都有相同的 cookie/token。

Autorize 正在立即调用管理终端节点。
而我向 repeater 发出请求需要一些时间。

为了检验我的理论:

我使用管理员令牌向终端节点发出了请求。GetOrders

POST /graphql
Host: admin.target.com
Auth: Bearer admin

{"operationName":"GetOrders","variables":{"shop_id":"X"},"query":"query X"}

然后立即使用 User Token 发出相同的请求。

POST /graphql
Host: admin.target.com
Auth: Bearer user

{"operationName":"GetOrders","variables":{"shop_id":"X"},"query":"query X"}

令我惊讶的是,我能够获得该商店的所有订单信息,包括客户详细信息。

问题

所以发生的事情是:
服务器将响应缓存了 3/4 秒的非常短暂的时间。GetOrders

因此,如果攻击者在普通商店管理员使用其管理员门户的同时发出请求,则攻击者能够仅使用 获取属于任何商店的所有订单/客户信息。shop_id

这是一个可公开访问的 ID。shop_id

利用

创建一个简单的 bash 脚本,该脚本将全天向终端节点发出持续请求GetOrders

每当管理员访问他们的门户时,订单/客户信息会被缓存 3/4 秒,允许攻击者获取它们并绕过所有访问控制限制。

概念验证

我使用用户令牌向 endpoint 运行入侵者请求。GetOrders

它最初给出的回应是由于访问控制到位。403 forbidden

由于缓存配置错误而绕过授权由于缓存配置错误而绕过授权

同时,我以 adminUser 身份登录并正常访问admin.target.comadmin.target.com/orders

graphql 请求是代表 admin 在后台发出的,可以缓存 3/4 秒。GetOrders

缓存的响应最终由一分钟前给出 403 错误的同一 intruder 选项卡获取。

由于缓存配置错误而绕过授权由于缓存配置错误而绕过授权

该问题被分类为严重问题,并在数小时内立即得到解决。

由于缓存配置错误而绕过授权由于缓存配置错误而绕过授权
由于缓存配置错误而绕过授权由于缓存配置错误而绕过授权

 

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年12月2日11:36:01
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   由于缓存配置错误而绕过授权https://cn-sec.com/archives/3456506.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息