【Vulhub靶场】Nginx 漏洞复现

Nginx 漏洞复现

  • 一、Nginx 文件名逻辑漏洞(CVE-2013-4547)
    • 1、影响版本
    • 2、漏洞原理
    • 3、漏洞复现
  • 二、Nginx 解析漏洞
    • 1、版本信息:
    • 2、漏洞详情
    • 3、漏洞复现

一、Nginx 文件名逻辑漏洞(CVE-2013-4547)

1、影响版本

Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7

2、漏洞原理

这个漏洞其实和代码执行没有太大关系,其主要原因是错误地解析了请求的URI,错误地获取到用户请求的文件名,导致出现权限绕过、代码执行的连带影响。

举个例子,比如,Nginx匹配到.php结尾的请求,就发送给fastcgi进行解析,常见的写法如下:

location ~ \.php$ {include        fastcgi_params;fastcgi_pass   127.0.0.1:9000;fastcgi_index  index.php;fastcgi_param  SCRIPT_FILENAME  /var/www/html$fastcgi_script_name;fastcgi_param  DOCUMENT_ROOT /var/www/html;
}

正常情况下(关闭pathinfo的情况下),只有.php后缀的文件才会被发送给fastcgi解析。
而存在CVE-2013-4547的情况下,我们请求1.gif[0x20][0x00].php,这个URI可以匹配上正则.php$,可以进入这个Location块;但进入后,Nginx却错误地认为请求的文件是1.gif[0x20],就设置其为SCRIPT_FILENAME的值发送给fastcgi。

fastcgi根据SCRIPT_FILENAME的值进行解析,最后造成了解析漏洞。

所以,只需要上传一个空格结尾的文件,即可使PHP解析之。

3、漏洞复现

开启vulhub靶机,启动环境

root@Fly:~/vulhub/nginx/CVE-2013-4547# docker-compose build
root@Fly:~/vulhub/nginx/CVE-2013-4547# docker-compose up -d

在这里插入图片描述
访问靶机的IP地址,如下图:

在这里插入图片描述
这个环境是黑名单验证,我们无法上传php后缀的文件,需要利用CVE-2013-4547。我们上传一个“1.gif ”,注意后面的空格:
在这里插入图片描述
上传成功
在这里插入图片描述
访问http://your-ip:8080/uploadfiles/1.gif[0x20][0x00].php,再次抓包修改,即可发现PHP已被解析:
在这里插入图片描述

二、Nginx 解析漏洞

Nginx解析漏洞复现

1、版本信息:

Nginx 1.x 最新版
PHP 7.x最新版

2、漏洞详情

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

3、漏洞复现

开启vulhub靶机,启动环境

root@Fly:~/vulhub/nginx/nginx_parsing_vulnerability# docker-compose up -d

访问http://192.168.111.146/uploadfiles/nginx.png可正常显示
在这里插入图片描述
增加/.php后缀,被解析成PHP文件:http://192.168.111.146/uploadfiles/nginx.png/.php
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1410297.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

HSDB使用教程

HSDB:Hostspot Debugger,JVM内置的工具,用于深入分析JVM运行时的内部状态 启动HSDB java -cp D:/tools/jdk-1.8/lib/sa-jdi.jar sun.jvm.hotspot.HSDB 获取进程id jps 连接到指定进程 查找类 通过查询查找对象 输入查询语句 select d from …

SQL 基础 | AS 的用法介绍

SQL(Structured Query Language)是一种用于管理和操作数据库的标准编程语言。 在SQL中,AS关键字有几种不同的用法,主要用于重命名表、列或者查询结果。 以下是AS的一些常见用法: 重命名列:在SELECT语句中&a…

Python中的Higher库详解

Python的Higher库是一个用于对深度学习模型进行微分和元学习的强大工具。这个库允许用户在不修改底层代码的情况下对任何可微模型进行高阶梯度计算。在本文中,我们将详细介绍Higher库的基本用法,展示一些实际的代码示例,并探讨其在模型训练中…

【RBAC鉴权】node-casbin基础教程

一、RBAC概述 RBAC鉴权,完整的英文描述是:Role-Based Access Control,中文意思是:基于角色(Role)的访问控制。这是一种广泛应用于计算机系统和网络安全领域的访问控制模型。 简单来说,就是通过…

为人处事电影解说,全新升级瀚海跑道一分钟一条视频,全平台可推广,轻轻松松日入1000

自古以来,我国流行的一种现象是,大多数人都会与领导或上司打交道。由于某些话题不宜公开讨论,因此出现了许多含蓄的表达方式。随着年龄的增长,人们的态度也发生了变化,从最初的轻视到现在的重视。 下 载 地 址&#…

38-4 Web应用防火墙 - WAF的使用及规则

准备:38-3 Web应用防火墙 - 安装配置WAF-CSDN博客 WAF的使用 启动 Nginx /usr/local/nginx/sbin/nginx 为了测试未启动 ModSecurity 时的访问效果,我们可以模拟攻击。要查看当前虚拟机的 IP 地址,可以使用命令 ifconfig 浏览器中访问ip,如果要在真实机中访问就需要关闭…

【C++】vector类的增删改查模拟实现(图例超详细解析!!!)

目录 一、前言 二、源码引入 三、vector的模拟实现 ✨实现框架 ✨前情提要 ✨Member functions —— 成员函数 ⚡构造函数 ⭐无参构造 ⭐迭代器区间构造 ⭐n个值构造 ⚡拷贝构造 ⚡运算符赋值重载 ⚡析构函数 ✨Element access —— 元素访问 ⚡operator[ ] …

C语言 | Leetcode C语言题解之第63题不同路径II

题目: 题解: int uniquePathsWithObstacles(int** obstacleGrid, int obstacleGridSize,int* obstacleGridColSize) {int n obstacleGridSize, m obstacleGridColSize[0];int f[m];memset(f, 0, sizeof(f));f[0] (obstacleGrid[0][0] 0);for (int i…

融创共赢,算网领航 | 移动云智能芯片开放实验室正式发布

4月29日上午,中国移动算力网络大会“融创共赢,算网领航-算网原生技术”分论坛在苏州金鸡湖国际会议中心顺利召开,中国移动云能力中心副总经理吴世俊出席论坛并发表致辞。大会举行了智能芯片开放实验室发布仪式,同时发布移动云最新…

服务器IP选择

可以去https://ip.ping0.cc/查看IP的具体情况 1.IP位置--如果是国内用,国外服务器的话建议选择日本,香港这些比较好,因为它们离这里近,一般延时低(在没有绕一圈的情况下)。 不过GPT的话屏蔽了香港IP 2. 企…

2024年税务师报名照片处理工具使用详细教程✅

第1️⃣步:登陆税务师考试报名入口 第2️⃣步:登陆税务师考试报名入口 第3️⃣步:下载税务师报名照片处理工具 第4️⃣步:双击打开照片检测工具 第5️⃣步:点击“打开照片文件”上传合规照片 第6️⃣步:在对…

JAVA面试题---WEB部分

网络通讯 TCP与UDP TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的、 可靠的、 基于 IP 的传输层协议。 UDP 是 User Datagram Protocol 的简称,中文名是用户数据报协议,是 OSI 参考模 型中的传输层协议,它是…

用WebUI生成一个毛茸茸的图标教程

🚀内容概要 好久没有更新webui的教程了,五一期间刷新liblib,发现更新了几个有趣的lora,正好这段时间看到有朋友发了毛绒图标,所以这里做了一个简单的webui 教程,教你如何一步生成毛绒图标,就像…

Unity SteamVR入门

概述 VR项目现在在当前已经是非常热门的技术,可以给玩家身临其境的感觉,接下来让我们学习这部分的内容吧! SteamVR Input SteamVR绑定流程,在Windows窗口的点击SteamVR-input,图1,在这里可以选择你需要绑定…

『跨端框架』Flutter环境搭建

『跨端框架』Flutter环境搭建 资源网站简介跨平台高性能发展历程跨平台框架的比较成功案例 环境搭建(windows)基础环境搭建Windows下的安卓环境搭建Mac下的安卓环境配置资源镜像JDKAndroid StudioFlutter SDK问题一问题二问题三修改项目中的Flutter版本 …

HANA小知识点记录:SQL JOIN 条件中的条件判断(CASE WHEN )

今天写sql的时候要用到这个,查到其他数据库是这么写的: 在hana里试了下上面那样写不行,试了一下可以这么写,满足需求 LEFT JOIN "SAPHANADB"."/BI0/PCUSTOMER" AS F-- 通过附加客户关联客户主数据 ON CASE W…

探索高级聚类技术:使用LLM进行客户细分

在数据科学领域,客户细分是理解和分析客户群体的重要步骤。最近,我发现了一个名为“Clustering with LLM”的GitHub仓库,它由Damian Gil Gonzalez创建,专门针对这一领域提供了一些先进的聚类技术。在这篇文章中,我将概…

Redis__事务

文章目录 😊 作者:Lion J 💖 主页: https://blog.csdn.net/weixin_69252724 🎉 主题:Redis__事务 ⏱️ 创作时间:2024年05月02日 ———————————————— 这里写目录标题 文章目…

【hackmyvm】vivifytech靶机

渗透思路 信息收集端口扫描端口服务信息目录扫描爆破hydra--sshgit提权 信息收集 ┌──(kali㉿kali)-[~] └─$ fping -ag 192.168.9.0/24 2>/dev/null 192.168.9.119 --主机 192.168.9.164 --靶机个人习惯,也方便后续操作,将IP地址赋值给一个变…

微软如何打造数字零售力航母系列科普07 - Azure PlayFab:你从未想过的世界上最大的开发工具(平台)

Azure PlayFab:你从未想过的世界上最大的开发工具 微软的James Gwertzman告诉GamesIndustry.biz Academy他帮助开发者成功的使命 制作游戏比以往任何时候都更容易上手。现在有无数的游戏引擎可供选择,其中大多数是免费的,PC空间的店面也同样重…