一个xss-waf绕过

admin 2023年12月23日01:44:28评论28 views字数 887阅读2分57秒阅读模式

01

漏洞探测

本篇文章为彦语师傅实战案例分享


看到信息信息框就想试试xss,首先测试

<u>123</u>

看看能不能正常出现下划线

一个xss-waf绕过

虎躯一震

尖括号没有被转义

一个xss-waf绕过

"><u>123</u>

看看能不能闭合

一个xss-waf绕过


02

waf绕过

果然

说明这里大概率存在xss

原神启动!

一般payload都失败了,开始将payload拆分开

看看到底是哪里被过滤alert() confirm() prompt() 

直接用均被转成其他字段【xss】说明这里是有WAF的


经过测试

猜测waf拦截的形式为长时间载入无应答

谷歌 edge  火狐均如此

输入过长的字符也会如此

一个xss-waf绕过

经过一系列的测试发现

单引号会被清理

alert(1) confirm(1)  prompt(1)经过html编码后可以正常使用

<img src=&#39;x&#39; onerror>

测试至这里发现加上“=”号后也会被拦截

最后的payload为这样

<img src=&#39;x&#39; onerror&#61;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;>

经过总结和测试,不管怎么编码,把alert(1)  confirm(1)  prompt(1)加入payload后都会被拦截

最后突然想到还有console.log,而且它直接原文写上去是不被拦截的,哈哈哈

"><body onload=console.log(11)>

尝试

一个xss-waf绕过

结果payload跑到上边去了,我这js基础根本看不懂为啥

最后还是经过师傅指点

此waf检验=两边的东西,这也解释了为什么之前加入=后会被拦截

绕waf前代码    "><body onload=console.log(1212121212)>

在onload后加上一个空格即可

绕waf后代码    "><body onload =console.log(1212121212)>

一个xss-waf绕过

哈哈哈哈成功啦

记录人生中的第一个xss-waf绕过

绕了一个下午,想要放弃的时候发现柳暗花明又一村



本篇文章为彦语师傅实战案例分享

学习安全五年+,三分之二的白帽子,三分之一的科研er,适合致力于挖掘漏洞的师傅,具体详情扫描了解

一个xss-waf绕过

原文始发于微信公众号(梅苑安全学术):记录人生中的第一个xss-waf绕过

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月23日01:44:28
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   一个xss-waf绕过http://cn-sec.com/archives/2236319.html

发表评论

匿名网友 填写信息