Nginx解析漏洞复现

首先这个漏洞不是软件或代码的问题,是认为疏忽造成的。

一、环境搭建

从vulhub上面下载vulhub-master.zip文件,上传到服务器中,或者直接在服务器下载。

unzip vulhub-master.zip

进入漏洞目录

cd /vulhub-master/vulhub-master/nginx/nginx_parsing_vulnerability

在当前目录下执行,拉取镜像

docker compose up -d

二、访问漏洞

虚拟机ip为192.168.87.87

http://192.168.87.87/uploadfiles/nginx.png

Nginx解析漏洞复现_第1张图片

访问:

http://192.168.87.87/uploadfiles/nginx.png/.php

原因就是在第一个url后面增加了.php后缀,导致被解析

正常解析的页面

Nginx解析漏洞复现_第2张图片

三、漏洞利用的源码查看

下载网页的图片查看发现:坏人将图片的最后加入了的结尾,导致后端解析这个图片

Nginx解析漏洞复现_第3张图片

为什么能解析呢?

cd /vulhub-master/vulhub-master/nginx/nginx_parsing_vulnerability/php-fpm
vim www-2.conf 

Nginx解析漏洞复现_第4张图片

查看配置文件发现,security后面的参数是空

security.limit_extensions 是 PHP 配置文件 php.ini 中的一个选项,用于限制在 Web 服务器上执行的 PHP 脚本的文件扩展名。

该选项的值是一个字符串,指定允许执行的文件扩展名列表。默认情况下,它的值为空,表示不限制文件扩展名。

通过设置 security.limit_extensions,可以提高服务器的安全性,限制可执行的 PHP 脚本文件的范围。这可以防止恶意用户上传和执行具有危险扩展名的文件,从而减少潜在的安全风险。

例如,如果您将 security.limit_extensions 设置为 .php,则只有扩展名为 .php 的文件才能被执行,其他扩展名的文件将会被拒绝执行。

这个值默认是有的,只要不要刻意更改,不会出现此漏洞的。

你可能感兴趣的:(web安全,nginx,web安全,安全)