白帽故事 · 2024年1月2日 0

从Adobe的VIP赏金计划中获得近50,000美元奖励的故事

背景说明

发现网络中的薄弱环节并不总是那么顺利和容易,尤其是像Adobe这样的大型公司中,国外白帽Naaash与Tirtha因受到《我在两个月内赚了 10 万美元!》视频的鼓舞和‘刺激’,决定携手合作,在2023年6月8日至7月30日期间,通过 Adobe 的VIP Bug Bounty项目,在仅仅几周内便赚取了近50,000美元的赏金!下面他们发现的漏洞清单:

序号标题漏洞级别赏金
1LFI严重$8,000
2通过验证消息的存储XSS$4,580
3通过文件名在证明文件上存储 XSS$2,265
4证明名称上的存储 XSS $4,580
5通过校样的自定义设备对校样设置进行存储 XSS$3,320
6通过“First Name”字段存储的XSS导致完全接管帐户$4,580
其它漏洞大多仍处于 Open 状态,或者是权限提升和绕过存储的XSS,最终每个绕过获得了近3000至4000美元的赏金报酬。

漏洞详情:

LFI:

Web应用程序具有导出数据的正常功能,该实例的管理员可以导出以下任意数据:

  1. Teams 团队
  2. Job Roles 工作角色
  3. Custom Forms 自定义表单
  4. Companies 公司
  5. Approval Processes 审批流程
  6. Audit Logs 审计日志

在大多数情况下,将调用以下API来获取导出的文件:

但是,当尝试导出审核日志时,将进行以下API调用:

这里唯一的“sus”是用于获取导出文件的参数- fileName (因为在大多数情况下,使用的是 fileID 参数),如果将 fileName 参数的值更改为 ../../etc/passwd ,响应中会显示 /etc/passwd 的全部内容。

更糟糕的是,还可以获取Amazon的服务Token:

通过验证消息的存储XSS

在浏览Web应用程序时,遇到了一个仪表盘-ProofHQ。ProofHQ实际上是现在称为Workfront的传统仪表盘,它有一个不同的登录页面,但在很大程度上仍然是范围内资产的一部分。

Web应用程序的某个部分允许任何较低权限的用户设置消息模板。

消息使用富文本编辑器创建/编辑,幸运的是,它使用的是更老版本的富文本编辑器,这容易受到XSS的攻击,我们插入了一个链接,单击“保存”,并将“Value”参数的值更改为“<a+href%3d"https%3a//google.com"++onpointerenter%3dprompt(document.domain)>https%3a//google.com</a%25“,如下图:

成功触发XSS。

漏洞影响:较低权限的用户可窃取管理员的会话Token,一旦较低权限的用户获得Token,他们就可以通过调用ProofHQ API来提升其在组织内的权限。

通过文件名在证明文件上存储 XSS

在主Workfront仪表板上,Web应用程序具有一个功能,任何用户都可以将其文档从WorkFront仪表板推送到ProofHQ仪表板,一开始尝试将文件名设置为XSS Payloads,但并未在Workfront仪表板上触发。

将文档从Workfront仪表板推送到ProofHQ仪表板后,用户可以选择在ProofHQ仪表板上打印其文档摘要,当这样做时,XSS Payloads将被触发,但这仍是一个自存储XSS。

较低权限的用户可以选择与其他团队成员(包括管理员)共享文件摘要,这有助于将其从自存储XSS提升为存储XSS。

证明名称上的存储 XSS

这是一个简单的XSS漏洞,Workfront Web应用程序允许用户以证据的形式上载文件,但如果文件名包含任意的JavaScript代码,则它无法有效地清理Payloads。

通过利用该漏洞,权限较低的用户可能会窃取管理员的会话Token,因为该Token在执行 XSS Payloads的网页 DOM 中公开。

通过校样的自定义设备对校样设置进行存储 XSS

在ProofHQ仪表板上,较低权限的用户可以根据自己的要求添加新的自定义设备,在输入字段的“Name”和“User agent string”中填写了XSS Payloads – “onmouseover=confirm(document.cookie)”:

当管理员用户尝试编辑自定义设备详细信息时,将触发XSS,因为管理员将有权访问由较低权限的用户添加的所有自定义设备。

通过“First Name”字段存储的XSS导致完全接管帐户

ProofHQ仪表板上遇到了一些存储的XSS,而在Workfront仪表板上几乎没有任何XSS,作为一项挑战,白帽子希望在这里也能有一个“弹窗”,其中一个功能是向文档、任务、文件夹、项目等添加更新。

在这里,较低权限的用户可以更改他们的名称,并添加了XSS Payloads – “><img src=x onerror=alert()> ,然后,他们在文档、任务、项目等上进行更新。

当管理员用户访问模块的更新时,XSS将被执行。

为了将其转换为完全帐户接管,需要添加了 bXSS Payloads,并能够窃取管理员用户的会话 Cookie – wf-auth 和 CSRF 令牌 – XSRF-TOKEN,从而导致完全帐户接管。

对于Naaash和Tirtha来说,这不仅仅是找到漏洞那么简单,他们还在安全社区提供了强大的指导,让其他网络安全专业人士能够更好地理解和发现类似的漏洞,他们真正的成就在于,他们走入了Adobe的世界,挖掘出隐藏在平滑界面和强大功能下的不完美之处,并用他们的技能‘铲平’了这些‘缺点’,从而造福整个互联网社区。

他们的故事远未结束,我们的网络安全‘侠客’们会继续在数字世界里寻找下一个冒险。我是骨哥,紧跟网络安全的探索者们,在他们抵达未来的旅途中发现更多的精彩内容。记住,每个人都有在连接全世界中追逐自由和安全的权利。