一次XSS绕过D盾经历

Admin 2020-03-11 285人围观 ,发现0个评论 XSS绕过D盾xss

waf


这款waf更新的很快,年前有个bypass注入的视频,提到waf对cookie检查不严,过段时间waf就更新。我写这种本地测试bypass文章时,总有感觉就是自嗨,这对实战有没有意义,我还记得搞xss绕过,是因为我在x某个webshell箱子时,D盾拦截了,我就开始研究了一波绕过。实站中xss的点很苛刻的,就很多时候本地测试bypass就像玩靶机一样,真提枪干时,可利用的少,有点好的提升脑洞,锻炼动手能力(ノ*・ω・)ノ 。

一次XSS绕过D盾经历 Web教程 第1张

测试


思路方面,可以先fuzz一波标签看看结果。

一次XSS绕过D盾经历 Web教程 第2张

嗯,就我特意写上的payload 403,其他都200。因为各种waf的之间或多或少的规则特性上差异,例如下图长亭的XSSChop检测为无风险,这个测试语句虽然不会弹框,但是你换其他waf的话,可能瞬间爆炸。所以我们fuzz时,首先得构造有效payload,实在不行简单粗暴直接拿大量payload过去,再研究能过的payload。


一次XSS绕过D盾经历 Web教程 第3张

绕过


绕过的话,我手头已经有一些测试好可以bypass的,这些都要靠自己fuzz结合自己手工测出来的。

不常见标签


<details> <button> <select> <keygen> <textarea>这几个都可以,如何找到这些呢?关注HTML5新特性,出了那些新标签新属性,再自己测试一波。

一次XSS绕过D盾经历 Web教程 第4张

思考


首先一个xss payload基本有以下几部分组成

  • [TAG]填充标签img svg video button...

  • [ATTR]=Something 填充一些非必要的属性 src=1 xmlns="www.yir6.cn/"

  • [EVENT]填充事件属性onerror onload...

  • [SAVE_PAYLOAD]填充JavaScript代码alert(1) top.alert(1)...

  • 一次XSS绕过D盾经历 Web教程 第5张

经过测试,有2个思路:第一就是不常见标签,从上面测试可以看出,这是最轻松的,下面贴几个。

一次XSS绕过D盾经历 Web教程 第6张

(为什么要截图不直接贴代码 因为阿里云拦截w(゚Д゚)w)

第二个思路就是,就是先从[EVENT]入手,为什么这么讲,请看下面的测试。

一次XSS绕过D盾经历 Web教程 第7张

一次XSS绕过D盾经历 Web教程 第8张

当我们把代表[EVENT]onload去掉时,就不拦截了。

构造fuzz字典,从[EVENT]填充事件属性。

一次XSS绕过D盾经历 Web教程 第9张

一次XSS绕过D盾经历 Web教程 第10张

fuzz得到些有效的数据,挑些200事件属性。

一次XSS绕过D盾经历 Web教程 第11张

接下来就是对[SAVE_PAYLOAD]进行fuzz,我这里自己直接给出个bypass的payload

一次XSS绕过D盾经历 Web教程 第12张

大概就是把xss payload分成几块,逐部分的去fuzz。
贴些特殊的payload:

一次XSS绕过D盾经历 Web教程 第13张

后记


本文并没有给什么特别骚的代码,重点在于2个思路,感觉本质是一样的fuzz,第二种思路就是通过这种拆分xss payload,收集构造有效字符集,进行fuzz得到字典,在对waf进行fuzz,难点在于构造有效字符集(๑•̀ㅂ•́)و✧


上一篇:D盾查杀Webshell的工具 下一篇:ecshop漏洞
请发表您的评论
请关注微信公众号
微信二维码
不容错过
Powered By 蚁人博客