前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >重生之我是赏金猎人(一)-某SRC储存XSS多次BypassWAF挖掘

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

作者头像
用户1789928
发布2021-11-02 15:14:28
1K0
发布2021-11-02 15:14:28
举报

温馨提示

本文章仅供学习交流使用,文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!

0x00 前言

M78sec近日决定新开专栏-重生之我是赏金猎人系列,主发一些在SRC,渗透测试,bugbounty中比较有意思的案例,欢迎大家多多关注,学习一些bugbounty的手法与姿势~

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

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

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

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

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

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

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

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

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

所以这里就需要关闭掉

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

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

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

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

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

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

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

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

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

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

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

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

添加网络资源:

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

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

代码语言:javascript
复制
x"><marquee loop=1 width=0 onfinish=alert(document.cookie)>

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

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

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

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

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

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

代码语言:javascript
复制
x"><marquee loop=1 width=0 onfinish=prompt(document.cookie)>ffj</marquee>

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

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

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

0x05 分享一些xss小tips

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

代码语言:javascript
复制
<script>
var a=`Hello${alert(1)}`
</script>

2.SVG中的测试XSS

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
onload="window.location='https://www.baidu.com'"
xmlns="http://www.w3.org/2000/svg">
</svg>

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

代码语言:javascript
复制
<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:

代码语言:javascript
复制
<svg onload\r\n=$.globalEval("al"+"ert()");>
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-10-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 M78安全团队 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
网站渗透测试
网站渗透测试(Website Penetration Test,WPT)是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。渗透测试和黑客入侵最大区别在于渗透测试是经过客户授权,采用可控制、非破坏性质的方法和手段发现目标和网络设备中存在弱点,帮助管理者知道自己网络所面临的问题,同时提供安全加固意见帮助客户提升系统的安全性。腾讯云网站渗透测试由腾讯安全实验室安全专家进行,我们提供黑盒、白盒、灰盒多种测试方案,更全面更深入的发现客户的潜在风险。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档