XSS!一次成功绕过Akamai WAF的经历
2023-11-1 16:31:3 Author: mp.weixin.qq.com(查看原文) 阅读量:7 收藏

本文将探索绕过Akamai WAF的复杂艺术过程,在本文中,不仅能够深入了解Akamai现有的安全机制,同时还将收获自己制作自定义Payload所需的知识与技能,希望通过阅读本文能让你像专业人士一样思考并增强你的Bypass技能。

在一次渗透测试中,白帽小哥偶然发现了一个端点,其中的“returnUrl”成功的引起了他的注意!

作为渗透人员,每当遇到此类参数时都会顺手输入一个javascript:alert(1)

很遗憾,响应结果为403,显然是被拒绝了,于是白帽小哥开启分析模式,首先他将javascript:之后的所有内容做了删除,以此来检查是否有权访问javascript协议,幸运的是,端点并未对javascript进行屏蔽:

既然alert被阻止了,那么就尝试其它的看看:
javascript:prompt()
javascript:console.log()
javascript:eval()

遗憾的是,这些都被阻止了。看来该Web站点的安全措施还算不错的,当然,白帽小哥并未因此而放弃,他决定探索更为高级的JavaScript函数,以确定是否所有函数都被阻止,随后白帽小哥尝试了javascript:atob()String.fromCharCode(),结果依然被阻止。

经过很长一段时间的测试后,白帽小哥发现decodeURI()函数成功通过,这也为后续漏洞提供了潜在的可能。

来看看Mozilla关于该函数的说明:

decodeURI() 函数会对之前由 encodeURI() 或类似例程创建的统一资源标识符 (URI) 进行解码。

它的工作方式如下:本质上,当我们使用诸如 javascript:decodeURI("<h1>vita</h1>") 之类的函数,然后单击“Try Again”按钮时,我们可以看到解码后的 URI 的结果,该结果将显示如下:

现在是时候深入挖掘在 decodeURI 函数中插入 <img src=x onerror=alert(1)> 这样的Payload来实现 XSS了,但白帽小哥得到的响应却是:

即使没有onerror=alert(1) ,却仍然403,这表明 WAF 有效地过滤了恶意标签。

于是白帽小哥检查了所有标签,除了一个 <button> 标签外,所有标签都被阻止了!

于是白帽小哥尝试 <button>test</button> ,再次被阻止:

为了确定哪个处理程序触发了阻止响应,白帽小哥利用Intruder做了一次‘强力’测试:

只有onbeforetoggle能够bypass,接着白帽小哥利用PortSwigger网站,针对<button>标签和onbeforetoggle生成了Payloads列表,发现仅有两个可供利用:

白帽小哥立刻使用了这两个Payload做测试,但都没有成功,主要是因为 WAF 会阻止 alert(1) 。

如何解决这个问题呢?本质上,在“javascript:”之后,就可以声明变量了,于是白帽小哥发挥了一些创造力,将 alert() 函数划分为三个单独的变量,如下所示:
javascript: var a = 'ale'; var b = 'rt'; var c = '()'

然后,将这些变量连接到 decodeURI 函数内的字符串中,得到最终的Payload,如下所示:

javascript:var a="ale";var b="rt";var c="()";decodeURI("<button popovertarget=x>Click me</button><hvita onbeforetoggle="+a+b+c+" popover id=x>Hvita</hvita>")

generic

157 Bytes

© Guge's Blog

如果你是一个长期主义者,欢迎加入我的知识星球(优先查看这个链接,里面可能还有优惠券),我们一起往前走,每日都会更新,精细化运营,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款


往期回顾

2022年度精选文章

SSRF研究笔记

xss研究笔记

dom-xss精选文章

Nuclei权威指南-如何躺赚

漏洞赏金猎人系列-如何测试设置功能IV

漏洞赏金猎人系列-如何测试注册功能以及相关Tips

福利视频

笔者自己录制的一套php视频教程(适合0基础的),感兴趣的童鞋可以看看,基础视频总共约200多集,目前已经录制完毕,后续还有更多视频出品

https://space.bilibili.com/177546377/channel/seriesdetail?sid=2949374

技术交流

技术交流请加笔者微信:richardo1o1 (暗号:growing)


文章来源: https://mp.weixin.qq.com/s?__biz=MzIzMTIzNTM0MA==&mid=2247492436&idx=1&sn=738cecaf2e18e7f82367397ec032d983&chksm=e8a5e937dfd26021be65b0550eb39e86a9c96160d72336afd802d387dc01a14ff263a94bdf5c&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh