背景说明
发现网络中的薄弱环节并不总是那么顺利和容易,尤其是像Adobe这样的大型公司中,国外白帽Naaash与Tirtha因受到《我在两个月内赚了 10 万美元!》视频的鼓舞和‘刺激’,决定携手合作,在2023年6月8日至7月30日期间,通过 Adobe 的VIP Bug Bounty项目,在仅仅几周内便赚取了近50,000美元的赏金!下面他们发现的漏洞清单:
序号 | 标题 | 漏洞级别 | 赏金 |
1 | LFI | 严重 | $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应用程序具有导出数据的正常功能,该实例的管理员可以导出以下任意数据:
- Teams 团队
- Job Roles 工作角色
- Custom Forms 自定义表单
- Companies 公司
- Approval Processes 审批流程
- 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的世界,挖掘出隐藏在平滑界面和强大功能下的不完美之处,并用他们的技能‘铲平’了这些‘缺点’,从而造福整个互联网社区。
他们的故事远未结束,我们的网络安全‘侠客’们会继续在数字世界里寻找下一个冒险。我是骨哥,紧跟网络安全的探索者们,在他们抵达未来的旅途中发现更多的精彩内容。记住,每个人都有在连接全世界中追逐自由和安全的权利。