Nginx文件上传绕过之文件扩展名解析漏洞
原创
晨星安全团队
晨星安全团队
晨星安全团队
2026年11月3日 16:47
湖南
去阅读
时, Nginx 可能会根据最后一个扩展名来处理,即使该文件最初是作为图片上传的</p>
<p>这种配置错误通常出现在以下 Nginx 配置中</p>
<p>当请求 file.jpg/.php 时,Nginx 会将其作为 PHP 文件处理并发送给 PHP-FPM 解析,尽管它实际上是一个图片文件</p>
<p>这种行为可以被利用来执行作为图片文件上传的恶意代码</p>
<p>访问http://your-ip/uploadfiles/nginx.png 和http://your-ip/uploadfiles/nginx.png/.php即可</p>
<p>查看效果</p>
<p><img alt=)
访问http://your-ip/index.php可以测试上传功能,上传代码不存在漏洞,但利用解析漏洞即可 GetShell
修复方法
- 修改 php.ini,设置 cgi.fix\_pathinfo = 0 ,然后重启 php-cgi(会影响到 pathinfo 伪静态应用)
- 在Nginx的配置文件添加如下内容后重启 if ( $fastcgi\_script\_name ~ \..\\/.\php ) {return 403;} (会影响 /5.0/test.php 的形式)
- 使用 OSS 存储桶(目前最好的方法)
-END-
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论