【vulhub】nginx解析漏洞(nginx_parsing_vulnerability)

1. nginx解析漏洞原理

fastcgi 在处理'.php'文件时发现文件并不存在,这时 php.ini 配置文件中cgi.fix_pathinfo=1 发挥作用,这项配置用于修复路径,如果当前路径不存在则采用上层路径

(1)由于 nginx.conf的配置导致 nginx把以'.php"结尾的文件交给 fastcgi 处理,为此可以构造http://ip/uploadfiles/test.png/.php(ur! 结尾不一定是'.php",任何服务器端不存在的 php 文件均可,比如'a.php"),其中 test.png,是我们上传的包含 PHP 代码的照片文件。

(2)但是fastcgi在处理'.php'文件时发现文件并不存在,这时 php.ini 配置文件中cgi.fix_pathinfo=1 发挥作用,这项配置用于修复路径,如果当前路径不存在则采用上层路径。为此这里交由 fastcgi 处理的文件就变成了'/test.png

(3)最重要的一点是 php-fpm.conf中的security.limit extensions 配置项限制了 fastcgi 解析文件的类型(即指定什么类型的文件当做代码解析),此项设置为空的时候才允许 fastcgi 将'.png"等文件当做代码解析。

2.复现过程

首先进入该目录文件夹中

使用docker开启靶场环境

查看靶场端口开放情况

访问靶场:192.168.187.135:80

上传一个图片

点击提交,并使用Burp抓取数据包,在图片内容的最后加上php代码

点击发送

使用上传的路径进行访问

在url后面再加上/.php,进行访问,图片被解析为php代码

相关推荐
玉笥寻珍33 分钟前
医疗信息系统安全防护体系的深度构建与理论实践融合
安全·web安全·安全威胁分析·健康医疗
ikkkkkkkl1 小时前
P2P架构
网络协议·计算机网络·p2p
Think Spatial 空间思维2 小时前
【SSL部署与优化】HTTP/2与HTTPS的协同效应
安全·http·https·部署·ssl·优化
vortex52 小时前
Bash fork 炸弹 —— :(){ :|:& };:
运维·服务器·开发语言·网络安全·bash
xmweisi022 小时前
【Linux】ssh命令 – 安全的远程连接服务
linux·安全·ssh
AORO_BEIDOU4 小时前
遨游科普:三防平板是什么?有什么功能?
网络·5g·安全·智能手机·电脑·信息与通信
胡耀超5 小时前
探讨零知识证明的数学原理与应用
python·web安全·区块链·密码学·数据安全·零知识证明
Johny_Zhao6 小时前
Vmware workstation安装部署微软WSUS服务应用系统
网络·人工智能·网络安全·信息安全·云计算·系统运维·wsus
DjangoJason7 小时前
计算机网络 : Socket编程
linux·服务器·开发语言·笔记·计算机网络
伤不起bb11 小时前
MySQL 高可用
linux·运维·数据库·mysql·安全·高可用