首页 > 系统相关 >Nginx 文件名逻辑漏洞(CVE-2013-4547)复现

Nginx 文件名逻辑漏洞(CVE-2013-4547)复现

时间:2024-04-07 20:34:47浏览次数:22  
标签:文件 php 漏洞 Nginx 4547 x00 CVE fastcgi

漏洞原理

  • 影响范围: Nginx 0.8.41 ~ 1.4.3
  • 影响范围: Nginx 1.5.0 ~ 1.5.7

Nginx在解析php文件的时候通常在配置文件中如下配置

location ~ \.php$ {
           root           html;
           include        fastcgi_params;

           fastcgi_pass   php:9000;
           fastcgi_index  index.php;
           fastcgi_param  SCRIPT_FILENAME  /var/www/html$fastcgi_script_name;
           fastcgi_param  DOCUMENT_ROOT /var/www/html;
        }

通过$正则表达式匹配文件是否已.php后缀名结束然后将该文件交给fastcgi执行,该漏洞绕过的原因是正则匹配和Nginx匹配结合起来的漏洞
首先例如我们给一个文件名test.png\x00.php,在上诉配置文件使用正则匹配成功确定是一个php文件,但是Nginx在遇到\x00就会结束,实际交给fastcgi的文件名就是test.png

所以这里我们只需要上传一个test.png\x00.php,\x00代表十六进制数据,可以绕过Nginx解析,但是在实际利用过程中是不行的,通过实验环境上面的思路漏洞利用失败

这里参考了https://blog.csdn.net/Blood_Pupil/article/details/88565176博客,需要再\x00前面加入\x20空格,就可以让Nginx运行不报错正常执行,这是一个逻辑漏洞

漏洞利用

上传一个含有php代码的图片,在文件后缀名后方加入\x20空格,这是就会在Linux机器中就会拥有一个test.png空格的文件

上传后,因为这个文件后缀名含有空格,在url中需要加入%20访问该文件,测试该文件是否上传成功

可以看到这里文件成功上传,接着我们进行漏洞利用,访问test.png在文件后方加入\x20\x00.php

利用成功

标签:文件,php,漏洞,Nginx,4547,x00,CVE,fastcgi
From: https://www.cnblogs.com/Junglezt/p/18119782

相关文章

  • Nginx 解析漏洞复现
    该漏洞与php和nginx版本无关,是配置错误导致的问题漏洞描述通常在nginx.conf的配置文件或者include包含的其他配置文件下有以下信息location~\.php${fastcgi_indexindex.php;includefastcgi_params;fastcgi_paramR......
  • 内网nginx代理高德问题
    A为外网服务器B为内网服务器nginx配置server{listen8081;server_name15.72.185.21; location/webapi/{proxy_passhttp://15.72.191.145:18090/; } location/restapi{ proxy_passhttp://15.72.191.145:18090/restapi/;......
  • Nginx日志重定向到标准输出
    背景静态站点使用`docker`部署时,希望`nginx前台启动`的同时可以将错误日志和访问日志全部重定向到标准输出,便于采集和处理!实现只需要修改`nginx.conf`中`3行`关于日志的配置就OK了daemonoff;error_log/dev/stdoutwarn;access_log/dev/stdoutmain;其它配置项保持不变,效果......
  • PHP imap 远程命令执行漏洞(CVE-2018-19518)漏洞复现
    phpimap扩展用于在PHP中执行邮件收发操作。其imap_open函数会调用rsh来连接远程shell,而debian/ubuntu中默认使用ssh来代替rsh的功能(也就是说,在debian系列系统中,执行rsh命令实际执行的是ssh命令)。因为ssh命令中可以通过设置-oProxyCommand=来调用第三方命令,攻击者通过注入注入这......
  • Nginx 1.25.4 编译安装
    Nginx1.25.4源码编译安装最新长期技术支持版本 nginx-1.25.4,官方下载源码包: https://nginx.org/download/nginx-1.25.4.tar.gz一键安装脚本不啰嗦,脚本简单快速编译安装#!/bin/bash#安装相关包yum-yinstallgccpcre-developenssl-develzlib-develmakewget#......
  • nginx详解
    Nginx安装配置详解Nginx简介Nginx(“enginex”)是一款高性能的Web服务器和反向代理服务器,它采用事件驱动的异步结构,具有内存占用少、稳定性高、能够处理大量的并发请求,具有高效和低资源消耗等特点。Nginx常常被用作Web服务器、负载均衡器、反向代理和缓存服务器等。Nginx安装......
  • nginx怎么设置拦截请求
    Nginx设置拦截请求可以通过多种方式实现,具体取决于您想要拦截的请求类型、条件以及拦截后的处理方式。以下是几种常见的拦截请求场景及其配置方法:1.基于IP地址的拦截可以使用 allow 和 deny 指令来允许或拒绝特定IP地址或IP段的访问。通常放在 http, server,或 l......
  • docker-compose 安装nginx
    docker-compose.yamlversion:'3.3'services:nginx:image:nginxrestart:alwayshostname:nginxcontainer_name:nginxprivileged:trueports:-80:80-443:443volumes:-./nginx/conf/:/etc/nginx/......
  • java中大型医院HIS系统源码 Angular+Nginx+SpringBoot云HIS运维平台源码
    java中大型医院HIS系统源码Angular+Nginx+SpringBoot云HIS运维平台源码云HIS系统是一款满足基层医院各类业务需要的健康云产品。该产品能帮助基层医院完成日常各类业务,提供病患预约挂号支持、病患问诊、电子病历、开药发药、会员管理、统计查询、医生工作站和护士工作站等一......
  • nginx同一端口配置代理不同路径下的文件
    需求如下:CMS系统后台通过freemarker模板生成静态html文件,主站点和子站点的html文件保存在不同文件夹下。根据站点ID分别保存到不同文件夹,结构如下:  其中,75为主站点,111为子站点b。通过nginx配置,在同一域名下根据不同路径访问不同站点html。  实现访问www.xxx.com访问......