首页 > 系统相关 >nginx解析漏洞

nginx解析漏洞

时间:2023-10-17 16:45:04浏览次数:22  
标签:文件 php 漏洞 nginx 解析 fastcgi

nginx解析漏洞

漏洞原理

1、 由于nginx.conf的如下配置导致nginx把以’.php’结尾的文件交给fastcgi处理,为此可以构造http://ip/uploadfiles/test.png/.php (url结尾不一定是‘.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’等文件当做代码解析。

  

注:限制fpm允许解析的脚本扩展名。此设置可以预防web服务器配置的错误。应当限制fpm仅仅解析.php扩展名,阻止恶意用户使用其他扩展名运行php代码。默认值:.php

 

漏洞利用 

上传图片马 webshell.jpg,页面返回了上传路径。

构造 http://192.168.1.103/uploadfiles/85bb6e49a1be4be02eefb660f9d8cf68.jpg/1.php 去访问它,发现其被当作 PHP 文件解析。

漏洞修复

1、 将 php.ini 文件中的配置项 cgi.fix_pathinfo 的值设置为 0,这样 PHP 解析 webshell.jpg/1.php 这样的目录时,只要 1.php 不存在就会显示404页面。

2、将 php-fpm.conf 中的 security.limit_extensions 后面的值设置为 .php,限制 fastcgi 解析文件的类型仅为 .php,无法解析其他类型。

标签:文件,php,漏洞,nginx,解析,fastcgi
From: https://www.cnblogs.com/lisenMiller/p/17770086.html

相关文章

  • nginx负载均衡
    一问题什么是负载均衡?二解决·字面意思,负载就是压力,均衡就是按规则分摊·把压力按规则分摊 如下图,访问量太大,一个服务器,顶不住 拿多个服务器分摊一下,但访问哪些服务器呢?这就靠nginx了  三玩法......
  • Spring源码分析系列——循环依赖解析(附详尽流程图)
    前言本文分析spring循环依赖,我们知道构造函数填充属性是天然无法解决循环依赖的,而且解决循环依赖必须至少需要一个单例bean提前暴露。用xml标签配置属性bean,和@autowire注解注入属性bean,注入属性过程是不一样的。(1)xml标签配置属性bean是在解析xml过程中直接将属性值填充到be......
  • docker 安装 nginx tomcat mysql
    dockersearchnginxdockerpullnginx//在root目录下创建nginx目录用于储层nginx数据信息mkdir~/nginxcdnginxmkdirconfcdconf把nginx.conf文件拷贝到~/nginx/con目录下cd~/nginxdockerrum-id--namenginx01\-p80:80\-v$PWD/conf/nginx.conf:/etc/nginx/n......
  • springboot启动流程源码解析(带流程图)
    大致流程如下:初始化SpringApplication,从META-INF下的spring.factories读取ApplicationListener/ApplicationContextInitializer运行SpringApplication的run方法读取项目中环境变量、jvm配置信息、配置文件信息等创建Spring容器对象(ApplicationContext)利用ApplicationCon......
  • 禅道V16.5SQL注入漏洞(CNVD-2022-42853)
    禅道V16.5SQL注入漏洞(CNVD-2022-42853)0x01介绍禅道项目管理软件是一款国产的、基于LGPL协议、开源免费的项目管理软件,它集产品管理、项目管理、测试管理于一体,同时还包含了事务管理、组织管理等诸多功能,是中小型企业项目管理的首选,基于自主的PHP开发框架──ZenTaoPHP而成,第三......
  • 畅捷通T+任意文件上传(CNVD-2022-60632 )漏洞复现
    一、漏洞描述022年8月29日和8月30日,畅捷通公司紧急发布安全补丁修复了畅捷通T+软件任意文件上传漏洞。未经身份认证的攻击者利用该漏洞,通过绕过系统鉴权,在特定配置环境下实现任意文件的上传,从而执行任意代码,获得服务器控制权限。目前,已有用户被不法分子利用该漏洞进行勒索病毒攻......
  • uni-app结合PHP实现单用户登陆demo及解析
    这篇文章主要为大家介绍了uni-app结合PHP实现单用户登陆示例过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪单用户登陆uni-appsocket单用户登陆例推送单用户登陆例单用户登陆即在一个应用中,同一个用户只能在线登陆一个,一个用户登陆,在其他设备上会......
  • 解析设计模式与设计原则:构建可维护性和可扩展性代码的重要性
    本文分享自华为云社区《深入解析设计模式与设计原则:构建可维护性和可扩展性代码的重要性》,作者:LionLong。一、为什么需要设计模式?1.1、设计模式的定义设计模式大概有23种。设计模式是指在软件开发中,经过验证的,用于解决在特定环境下,重复出现的,特定问题的解决方案。从定......
  • nodejs和nginx配置
    用的是express模板。下载的是阿里云Nginx证书。配完nginx.conf,可以用nginx-t;检查一下,只要提示isok和successful就行,然后重启用sudoservicenginxreload;如果提示‘Redirectingto/bin/systemctlreloadnginx.service’,没有关系。重点证书不仅要放在Nginx里,项目也是要......
  • Yarn Scheduler调度器解析
    1.背景在Yarn中,资源调度是最核心的功能。在https://blog.51cto.com/u_15327484/7835300文章中,介绍了Yarn调度的核心接口ResourceScheduler通过nodeUpdate方法调度资源,通过allocate方法获取调度结果。ResourceScheduler常用的ResourceScheduler实现就是FairScheduler和CapacitySc......