改后缀无法使rar执行php代码,因文件内容仍是二进制压缩数据;正确做法是用文本编辑器新建并保存真实php源码,上传前需验证语法、权限及服务器php解析配置。

直接改后缀不能让RAR变成PHP文件
把 .rar 文件重命名为 .php,只是骗过了文件系统显示,实际内容仍是 RAR 压缩数据 —— PHP 解释器读到这种二进制乱码会直接报错(比如 Parse error: syntax error 或直接空白页),根本不会执行。
想让服务器执行PHP代码,必须保证文件真实是PHP源码
常见误操作是:用 WinRAR 打开一个 shell.php,再“另存为”成 shell.rar,最后改后缀上传。这导致文件本质仍是压缩包,不是 PHP 文本。
- 正确做法:用记事本、VS Code 等纯文本编辑器新建文件,写入 PHP 代码(如
<?php phpinfo(); ?>),保存为info.php - 如果需隐藏真实文件名或绕过上传检测,应考虑服务端解析漏洞(如
.php3、.phtml、.php.jpg+ Apache MIME 配置缺陷),而非硬改后缀 - 某些 CMS 或 WebShell 管理器支持“PHP 文件打包为 ZIP/RAR”用于分发,但解压后仍需手动部署为真实 PHP 文件
RAR 文件里嵌了PHP脚本?那得先解压再用
如果你手里是个 payload.rar,里面包含 backdoor.php,那它只是个压缩包里的普通文件,不能直接当 Web 脚本访问。
- 用
unrar x payload.rar或 7-Zip 解压出backdoor.php - 确认该 PHP 文件无语法错误:
php -l backdoor.php - 上传的是解压后的
backdoor.php,不是原payload.rar - 注意权限:Web 服务器用户(如 www-data)需有读取权限,且目录允许执行 PHP
上传后访问提示下载或显示源码?检查服务器配置
即使文件是真实 .php 后缀,也可能因环境问题不解析:
立即学习“PHP免费学习笔记(深入)”;
- Apache 缺少
AddType application/x-httpd-php .php或未启用mod_php - Nginx 没配
fastcgi_pass,或location ~ \.php$规则被注释/覆盖 - 文件编码含 BOM(尤其 Windows 记事本保存时),会导致
Cannot modify header information - PHP-FPM 进程未运行,或 sock 文件路径不匹配
最简单的验证方式:在同目录放一个 test.php,内容为 <?php echo 'ok'; ?>,看能否输出 ok —— 不行就不是后缀问题,是环境没搭好。











