0

0

文件上传如何触发php代码执行_文件上传触发php代码执行方法【注意】

雪夜

雪夜

发布时间:2025-12-23 18:11:02

|

430人浏览过

|

来源于php中文网

原创

上传文件被当作php解析可致远程代码执行,常见路径有五:一、绕过后缀检查上传含代码的伪装文件;二、apache下用.htaccess强制解析;三、nginx cve-2013-4547路径解析漏洞;四、phar反序列化利用;五、iis短文件名绕过。

文件上传如何触发php代码执行_文件上传触发php代码执行方法【注意】

如果上传的文件被服务器当作PHP脚本解析并执行,则可能造成远程代码执行风险。以下是实现该行为的常见技术路径:

一、上传含PHP代码的文件并绕过扩展名检查

部分应用仅校验文件后缀名,未验证文件内容或MIME类型,攻击者可将PHP代码保存为看似合法的图片文件(如.jpg),再通过服务端配置缺陷触发解析。

1、使用文本编辑器创建文件,写入<?php phpinfo(); ?>,保存为shell.jpg

2、在上传表单中选择该文件,同时使用抓包工具(如Burp Suite)拦截请求。

立即学习PHP免费学习笔记(深入)”;

3、修改HTTP请求中Content-Disposition字段的filename值,将shell.jpg改为shell.php

4、若服务端仅依赖前端或简单后缀白名单,该请求可能成功上传并生成可访问的PHP文件。

二、利用Apache解析漏洞(.htaccess覆盖)

当目标使用Apache且允许用户上传.htaccess文件时,可通过自定义规则强制特定扩展名按PHP模块解析。

1、构造内容为AddType application/x-httpd-php .jpg.htaccess文件。

2、上传该文件至Web可写目录(如/uploads/)。

3、上传另一张含PHP代码的图片文件,命名为test.jpg

4、访问http://target.com/uploads/test.jpgApache将按PHP方式解析并执行其中代码

三、利用Nginx文件名逻辑解析漏洞(CVE-2013-4547)

Nginx在处理带空格和斜杠的文件路径时存在解析歧义,可使非PHP文件被当作PHP执行。

1、准备含PHP代码的文件,命名为shell.jpg

MVM mall 网上购物系统
MVM mall 网上购物系统

采用 php+mysql 数据库方式运行的强大网上商店系统,执行效率高速度快,支持多语言,模板和代码分离,轻松创建属于自己的个性化用户界面 v3.5更新: 1).进一步静态化了活动商品. 2).提供了一些重要UFT-8转换文件 3).修复了除了网银在线支付其它支付显示错误的问题. 4).修改了LOGO广告管理,增加LOGO链接后主页LOGO路径错误的问题 5).修改了公告无法发布的问题,可能是打压

下载

2、上传后,构造URL访问:http://target.com/uploads/shell.jpg%20/1.php

3、Nginx将忽略%20/1.php部分,但将shell.jpg交由后端PHP-FPM处理。

4、PHP-FPM默认不校验原始请求路径,直接执行shell.jpg中的PHP代码

四、上传用户可控的PHAR文件并触发反序列化

当应用存在未过滤的反序列化点且启用phar://协议时,上传恶意PHAR可间接执行代码。

1、使用PHP构建PHAR文件,在stub中嵌入__HALT_COMPILER();,并在meta-data中注入恶意反序列化对象。

2、设置PHAR文件后缀为.jpg,并禁用签名以绕过校验。

3、上传该文件至服务器,获取其可访问路径(如/uploads/malicious.jpg)。

4、在存在unserialize()调用的功能点中,传入phar://./uploads/malicious.jpg作为参数。

5、PHP将解析PHAR并触发反序列化链中的__destruct()等魔术方法

五、利用IIS短文件名特性结合解析顺序

IIS在启用短文件名功能时,会为长文件名生成8.3格式别名,配合特定解析顺序可导致PHP文件被误识别为静态资源后仍被解析。

1、上传shell.php,确认其短文件名为shell~1.php

2、尝试访问http://target.com/uploads/shell~1.php,观察是否返回PHP执行结果。

3、若IIS配置将.php映射至PHP-CGI且未禁用短名,该请求将直接交由PHP引擎处理。

4、即使上传目录无直接执行权限,短文件名仍可能绕过路径级限制

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

246

2023.07.27

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

522

2023.08.04

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

610

2023.08.04

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

244

2024.02.23

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

693

2024.07.09

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

3618

2024.08.07

nginx部署php项目教程汇总
nginx部署php项目教程汇总

本专题整合了nginx部署php项目教程汇总,阅读专题下面的文章了解更多详细内容。

54

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

71

2026.01.13

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

3

2026.03.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 13.3万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.3万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 1.0万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号