近期,在 ExHub(一个基于 hulia 的云开发平台)中发现了一个严重的不安全直接对象引用(IDOR)漏洞。该漏洞使得攻击者能够在未经适当授权的情况下修改任意项目的网站托管配置,给受影响的系统带来重大风险。配置错误可能导致服务中断或无法使用。此外,由于配置被篡改,攻击者或许能够提升权限,或者串联其他攻击手段以进行进一步的利用。
对漏洞的理解
ExHub 提供云托管、项目协作和部署功能。其功能之一是允许用户为自己的项目配置网站托管设置。这些配置决定了项目的部署和访问方式。理想情况下,只有经过授权的用户才能修改这些设置。然而,由于访问控制的不当实施,未经授权的用户只需知道项目的唯一标识符,就能够对系统进行攻击。
该漏洞存在于 ExHub 用于项目部署配置的 API 中。具体来说,该 API 缺乏强大的授权检查机制,使得任何用户(无论其角色或认证状态如何)都能够发送精心构造的请求并更改托管设置。
发现此问题的研究人员Abhi Sharma获得了 1500 美元的赏金,因其提交的详细报告还额外获得了 200 美元的奖金。
漏洞利用
漏洞利用过程在技术上的复杂性较低:
(1)获取项目 ID:攻击者需要获取有效的项目 ID。这可以通过枚举或其他间接方式获得。
(2)构造未经授权的 API 请求:通过向易受攻击的端点 /api/v1/projects/deployment_configuration/<projectid>发送 POST 请求,攻击者可以修改关键的托管参数。
(3)执行请求:像 Burp Suite 或 Postman 这样的工具足以执行攻击并实时观察更改。
(4)验证更改:攻击者可以通过 ExHub 的用户界面确认修改。
这个漏洞实际上允许未经授权的用户执行管理操作,例如更改机器类型、端口和 DNS 配置,而这些操作本应仅限于高权限角色。
漏洞的影响
这个 IDOR 漏洞的后果非常严重,攻击者可以操纵部署配置,从而可能获得对敏感资源的未经授权访问。配置错误可能导致停机或服务无法访问。此外,被利用的配置可能使攻击者能够提升权限,或者串联其他攻击手段以进行进一步的利用。该漏洞最初被评为严重(通用漏洞评分系统(CVSS)评分为 9.8),但后来由于考虑到获取项目 ID 的难度,被降级为高危(评分 8.8)。
为了解决这个漏洞:
(1)ExHub 在所有 API 端点引入了严格的授权检查。
(2)通过实施随机化技术,使项目 ID 更难被预测。
(3)重新构建用户角色以执行最小权限原则。
这一事件为开发者和组织提供了几个重要教训:
(1)授权检查至关重要:每个 API 端点都必须严格验证用户权限。
(2)避免使用可预测的标识符:使用容易被猜到的 ID 会增加被攻击的风险。
(3)最小权限原则:根据用户角色限制用户操作,以最大程度减少因配置错误可能造成的损害。
(4)全面测试:安全测试应包括后端 API,以发现像 IDOR 这样隐藏的漏洞。
通过实施严格的访问控制并采用安全设计原则,公司可以保护其平台免受攻击,并建立用户信任。
发表评论
您还未登录,请先登录。
登录