前言
本次绕过waf是因为之前拿了某个厂商的源码,发现了新的洞洞,所以对之前没有拿下来的一个系统的再次日日日(某985大学waf)…………….
基本情况是可以写入aspx文件 需要绕过waf
困难重重
自己尝试的时候 找了很多免杀小马 统统不得劲 这个waf 检测了很多关键字 什么 request creatobject write(…) 等等 经过一个晚上和上午的战斗 还是拿不下来, 于是找了位大哥帮忙,大哥果然是大哥,发现了http参数污染
这种参数污染我实践中还没遇到过,实属第一次 我以前以为参数污染 要么 服务端会取前一个 要么会取后一个 ,竟然还可以把前后拼接 ,可以,很吊!
那么这个dog waf 基本上已经是完了 利用多个code 把关键词拆分就好
上面说到了 产生的文件中code参数之间会有, 这个简单 直接用注释就好
好了 让我们来实践一下
因为服务端会自动解码url一次所以我们来urlencode一下
把我的双重base64小马分成两截
然后发包 发现过不鸟 经过测试发现是 <% %> 这两个东西的问题
我去掉payload 开头的 <% 就可以过 eval 在 <% %> 之间就不行 也就是 <% eval(xxx) %> 是不行滴 这就不好搞了
经过大哥的指点我找到 https://www.cnblogs.com/xiaozi/p/7566795.html 这里面的
1 | <%@ Page Language = Jscript %> |
我尝试过程中发现 直接用下面这个payload也可以 所以就没利用参数污染了
payload:
1 | <%@ Page Language="Jscript"%> |
有点搞笑的是:
…………. 搞了半天 白搞了一些… 我没有在对应上传的包里测试code参数 我是 直接随便post一个地址 在post内容里尝试…..
结果效果不一样…. 同样的payload 在上传中 作为code参数是可以过 但是 我刚才测试是直接post ip 然后加payload 这样是过不鸟的……尴尬…. 是我想当然了…….
最终:
写入一个 双重base64小马即可 配合蚁剑 成功拿下
payload:
1 | <%@ Page Language="Jscript"%> |