在研究webshell查杀的时候,学习别人怎么绕waf的思路,今天发现一个很6的函数(至少之前我是没见过),然后结合之前写访问日志记录文件时用到的方法,very perfect!
Once step
普通一句话木马:
|
|
Second step
首先大家看下这个东西:
不知道大家看到这个字符串会有啥想法,反正说实话,之前我肯定不会太在意。看下源码:
Third step
那么重点来了!
我要说的就是gzcompress
这个函数。然后我又查了查相关资料,找到了PHP中具有相同功能的函数还有两个:gzdeflate
,gzencode
。
科普下:
Fourth step
写个生成密文的文件。
考虑到可能字符显示不全,无法识别等原因,再套一层base64。
|
|
Fifth step
结合访问日志记录用到的getallheaders
函数,最终的webshell如下:
|
|
用D盾查一下
虽然级别是小于3,但是说明里面显示可能eval后门,所以要去掉这个,在变形下:
看下webshell可用性
这里注意下,使用eval的话会报错,具体的原因请查看错误详情
在安利下命令执行的一些函数:
Sixth step
再用D盾检测下
还是可疑啊,那行再伪造伪造下
再检测下:
360 5引擎检测下
very perfect!
如果觉得自己添加头麻烦可疑使用自带的请求头字段: