Skip to content
Kurisu
Go back

WAF 绕过与免杀笔记:从规则原理到雷池实战

我的云服务器上挂着雷池(SafeLine)WAF 和 HFish 蜜罐,这让我有个独特的便利:同一个 payload,我能同时看到攻击侧的样子和防守侧的拦截日志。这篇从 WAF 原理讲起,到绕过手法、木马免杀,最后是我自己的攻防滑一体观察。

WAF 在干什么

主流 WAF 的核心是规则匹配 + 语义分析

常见绕过手法(按我的实测有效性排序)

1. 编码与混淆(对规则型有效)

大小写混合:    UnIoN SeLeCt
双重编码:      %2527(%27 再编一次)
内联注释:      /*!union*/ /*!select*/
等价替换:      && → %26%26,空格 → /**/、%a0、括号

2. 协议层与解析差异

3. 语义级的对抗(对雷池这类)

语义 WAF 不吃变形,但有别的口子:

我的实测结论:雷池对常见变形拦截率很高,但解析差异类仍有口子——攻永远是”找两边解析不一样的地方”。

木马免杀思路

免杀的核心是破坏特征匹配,分层做:

手法
语法层变量拆分、异或加密、字符串变形($a = 'ev'.'al'
结构层函数回调执行(call_user_func)、匿名类、断言
流量层冰蝎/哥斯拉加密通信(流量无特征)
落地层内存马(不落盘,见 Java 反序列化那篇)

检测与反检测是螺旋:特征码杀软吃语法层,行为分析吃结构层,所以真到实战要多层组合。

防守侧的观察(自己当蓝队)

挂蜜罐和 WAF 几个月,几个印象深刻的观察:

这给我做攻击侧时的启发:流量卫生和速率控制比 payload 花活更重要

小结

WAF 绕过的本质是解析差异,免杀的本质是特征对抗。两边都玩过的最大收获是:看防守日志能反过来校准攻击手法,自己的服务器就是最好的实验室。


Share this post:

Previous Post
Java 反序列化入门到 CC6:Shiro 550 与冰蝎内存马
Next Post
SRC 信息收集自动化工具:从 2 小时到 30 分钟