重生之我是赏金猎人-漏洞挖掘(十一)-某SRC储存XSS多次BypassWAF挖掘

0x01:利用编辑器的超链接组件导致存储XSS

作者:画风@m78sec

https://github.com/J0o1ey/BountyHunterInChina

欢迎大家点个star

鄙人太菜了,没啥高质量的洞呀,随便水一篇文章吧。

在月黑风高的夜晚,某骇客喊我起床挖洞,偷瞄了一下发现平台正好出活动了,想着小牛试刀吧

图片

首先信息收集了一下,发现一个奇怪了域名引起了我的注意,访问后,发现是一个投稿平台,可以发布文章到后台进行审核。

使用账户登录进系统,就能发现一处文章管理

图片

第一时间就想到发布文章,再观察系统中发现一个不知名的编辑器(知道的大牛可以说一下)存在 超链接 功能,那么就尝试利用一下吧

图片

在超链接中注入伪协议来构造xss

图片

这里有个小细节就是下方的小按钮

  1. 当处于开启状态时:触发超链接按钮后,页面会在新窗口中执行跳转操作
  2. 当处于关闭状态时,触发超链接按钮后,页面会在当前网站中执行javascript操作

所以这里就需要关闭掉

发布文章后,可以看到在正文中成功触发javascript:

图片

因为这里我是直接插入的超链接 ,所以页面中是处于纯白色状态。

0x02:文章正文处的存储XSS绕过

来到新建文章中就是上payload,鄙人很菜,挖XSS都是见框就X

图片

在标题处和正文中输入payload点击提交,开启burpsuite抓包

图片

可以看到运作过程是先进行前端HTML实体编码处理

图片

这边只要重新替换掉payload就可以达到绕过的效果了

图片

访问发布的文章页面后,成功触发XSS

图片

至此,两个存储XSS提交上去,收工睡觉。

图片

0x03:编辑器中的媒体组件导致存储XSS

经过上回的两个存储XSS,我觉得还没完,第二天继续看,果然功夫不负有心人

在测试编辑器的其他功能后,发现媒体功能插入的资源地址可以回显在页面

图片

添加网络资源:

图片

其过滤了很多了标签,事件,但并不妨碍我们通过burp进行FUZZ

图片

选择嵌入式媒体,经过反复测试构造如下payload:

x"><marquee loop=1 width=0 onfinish=alert(document.cookie)>

图片

提交文章后访问url 成功触发

图片

0x04:编辑器中的媒体组件导致存储XSS(Bypass

前面的漏洞均已提交,过了几天就修复了,本来以为这样就结束了。然而事情并不如此

图片

既然修复了,那么真男人就该尝试绕过,根据0x03的操作步骤重新打了一遍,发现其中的种种过滤问题。

图片

  1. 过滤了alert脚本函数
  2. 过滤了不少js事件,但Onfinish事件没有过滤
  3. 标签也没有进行过滤

这个开发估计也是偷懒了,过滤做的拉胯的一批,那我们就对症下药,更换prompt的脚本函数,进行绕过。

x"><marquee loop=1 width=0 onfinish=prompt(document.cookie)>ffj</marquee>

最后也是如愿以偿的执行了:

图片

因为业务线那边的修复状态原因,目前还不方便更新该站的绕过,只能止步于此了

欲知后事如何,请听下回分解

0x05 分享一些xss小tips

1.当某参数输出的值在JS中被反引号包囊,通过${ }可以执行javascript

<script>var a=`Hello${alert(1)}`</script>

2.SVG中的测试XSS

<?xml version="1.0" encoding="UTF-8" standalone="no"?><svgonload="window.location='https://www.baidu.com'"xmlns="http://www.w3.org/2000/svg"></svg>

3.不允许使用函数执行的WAF可尝试如下payload绕过

<svg/onload="[]['\146\151\154\164\145\162']['\143\157\156\163\164\162\165\143\164\157\162']('\141\154\145\162\164\50\61\51')()">

4.在测试中也可以尝试使用编码绕过,多重url编码、HTML实体编码、json中使用Unicode、html编码,或者一些字符拼接。

或者使用回车;换行 绕过 某些WAF \r\n可以实现绕过

payload:

<svg onload\r\n=$.globalEval("al"+"ert()");>
<svg onload\r\n=$.globalEval("al"+"ert()");>
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

J0o1ey

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值