Nginx解析漏洞复现

admin 2023年5月12日08:53:58评论72 views字数 1700阅读5分40秒阅读模式

该漏洞与Nginx、php版本无关,属于用户配置不当造成的解析漏洞。

漏洞原理

Fastcgi、Nginx和PHP解析器这三个角色

当您在访问abc.png/.php这个路径时,Nginx会将.php作为FastCGI处理请求的路径信息传递给PHP解释器,而abc.png被视为请求的脚本文件。PHP解释器会按照正常的PHP解析流程来解析并执行abc.png里的代码,并将执行结果返回给Nginx,最终返回给请求客户端。

这个过程与直接访问 abc.php 文件的过程类似,只不过在这种情况下,Nginx通过FastCGI传递了请求到PHP解释器,而不是直接解析并执行PHP文件。

漏洞成因

nginx/default.conf的配置文件中.php后缀名的路径会交由fastcgi协议的php解析器处理。

环境:Centos7+vulhub

~直接执行

docker-compose up -d

启动容器,无需编译

Nginx解析漏洞复现

~

docker-compose ps

命令用于列出当前正在运行的Docker Compose服务的容器状态可以看到正常启动

Nginx解析漏洞复现

~:访问环境地址(可以看到访问成功,可以上传文件)

Nginx解析漏洞复现

~:访问

http://192.168.44.175/uploadfiles/nginx.png

(此路径为靶场实例图片,内含执行phpinfo()代码,可以看到仅仅是个图片)

Nginx解析漏洞复现

~:访问

http://192.168.44.175/uploadfiles/nginx.png/1321.php

即可查看执行效果。(可以看到执行了php代码,与上面路径相比,我们只加了/1321.php,实测中随便加类似/xxx.php即可使得php代码执行,让我们继续看如何getshell)

Nginx解析漏洞复现

如何getshell

在上面的效果展示当中,我们得知了如何通过fastcgi规则利用php解释器执行一个png图片里面的php代码,据此,我们就可以尝试getshell了

生成一个冰蝎php马

Nginx解析漏洞复现

在来一张正常的png图片文件:abc.png

Nginx解析漏洞复现


上传abc.png

Nginx解析漏洞复现

Burp抓包添加生成的php木马代码

Nginx解析漏洞复现

上传成功得到返回路径

Nginx解析漏洞复现

Nginx解析漏洞复现

冰蝎尝试连接

Nginx解析漏洞复现

连接成功

Nginx解析漏洞复现

漏洞防范

可以在Nginx配置文件中添加以下指令

location ~ .php$ {fastcgi_split_path_info ^(.+.php)(/.+)$;fastcgi_param PATH_INFO $fastcgi_path_info;fastcgi_pass unix:/var/run/php-fpm.sock;fastcgi_index index.php;include fastcgi_params;}

确保只有以 .php 结尾的请求才会被传递到PHP解释器中,并且防止将请求路径中的其他字符串(如 .png)作为路径信息传递给PHP解释器。此外,通过添加

fastcgi_param PATH_INFO $fastcgi_path_info;

指令,将确保将实际请求的路径信息传递给PHP解释器,从而避免将未经授权的路径信息传递给PHP解释器。

Nginx解析漏洞复现

本文版权归作者和微信公众号平台共有,重在学习交流,不以任何盈利为目的,欢迎转载。


由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。公众号内容中部分攻防技巧等只允许在目标授权的情况下进行使用,大部分文章来自各大安全社区,个人博客,如有侵权请立即联系公众号进行删除。若不同意以上警告信息请立即退出浏览!!!


敲敲小黑板:《刑法》第二百八十五条 【非法侵入计算机信息系统罪;非法获取计算机信息系统数据、非法控制计算机信息系统罪】违反国家规定,侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统的,处三年以下有期徒刑或者拘役。违反国家规定,侵入前款规定以外的计算机信息系统或者采用其他技术手段,获取该计算机信息系统中存储、处理或者传输的数据,或者对该计算机信息系统实施非法控制,情节严重的,处三年以下有期徒刑或者拘役,并处或者单处罚金;情节特别严重的,处三年以上七年以下有期徒刑,并处罚金。

原文始发于微信公众号(巢安实验室):Nginx解析漏洞复现

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年5月12日08:53:58
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Nginx解析漏洞复现https://cn-sec.com/archives/1728350.html

发表评论

匿名网友 填写信息