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

admin 百科 14
上传文件被当作PHP解析可致远程代码执行,常见路径有五:一、绕过后缀检查上传含代码的伪装文件;二、Apache下用.htaccess强制解析;三、Nginx CVE-2013-4547路径解析漏洞;四、PHAR反序列化利用;五、IIS短文件名绕过。

文件上传如何触发php代码执行_文件上传触发php代码执行方法【注意】-第1张图片-佛山资讯网

如果上传的文件被服务器当作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

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

标签: php 前端 apache nginx app access 工具 iis 后端 php解析 php脚本

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~