[中间件漏洞]nginx漏洞复现

目录

文件解析漏洞

原理分析

复现过程

 防御方法

目录遍历漏洞 

原理分析

复现过程

防御方法

空字节代码执行漏洞

复现过程

防御方法 

整数溢出漏洞(CVE-2017-7529)

复现过程

防御方法

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

复现过程

 防御方法


文件解析漏洞

原理分析

该漏洞是由于Nginx中php配置不当而造成的,与Nginx版本无关,但在高版本的php中,由于 security.limit_extensions的引入,使得该漏洞难以被成功利用。

Nginx的处理程序和FastCGI处理程序不同导致 Nginx拿到URI为/1.jpg/xxx.php后,识别处后缀是.php,认为是php文件,转交给PHP FastCGI处理程序去处理。PHP FastCGI处理程序识别该URI: /1.jpg/xxx.php不存在,按照PHP FastCGI处理程序自己 的规则,删去最后的/xxx.php,又看/1.jpg存在,就将/1.jpg当成要执行的文件,就成功解析。 

复现过程

利用vulhub靶场进行复现

进入靶场路径

[root@server nginx]# cd nginx_parsing_vulnerability/

启动靶场

docker-compose up -d

查看端口

docker-compose ps

 访问靶场环境

 上传一个提前制作好的图片马,图片马内容为phpinfo,上传后返回图片的路径

访问该图片可以成功显示

在路径后增加/test.php 并访问,发现图片已经被解析成为php文件

 防御方法

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

2、 php-fpm.conf中的security.limit_extensions后面的值设置为.php,表示仅支持.php后缀解析


目录遍历漏洞 

原理分析

Nginx的目录遍历与apache一样,属于配置方面的问题,错误的配置可导致目录遍历与源码泄露。

修改nginx.conf,添加autoindex on

autoindex on 开启目录浏览

autoindex off关闭目录浏览 默认是关闭状态

复现过程

利用vulhub靶场复现

进入靶场路径

[root@server nginx]# cd insecure-configuration/

 启动环境并查看端口

docker-compose up -d   #启动靶场
docker-compose  ps     #查看端口

访问靶场环境(8081端口)

访问 http://your-ip:8081/files…/ 

穿越到根目录

防御方法

1.设置 autoindex off 关闭目录浏览

2.删除 autoindex on


空字节代码执行漏洞

在使用PHP-FastCGI执行php的时候,URL里面在遇到%00空字节时与FastCGI处理不一致,导致可在非 php文件中嵌入php代码,通过访问url+%00.php来执行其中的php代码。如: http://local/robots.txt.php会把robots.txt文件当作php来执行。

影响版本:

nginx 0.5.*

nginx 0.6.*

nginx 0.7 <= 0.7.65

nginx 0.8 <= 0.8.37

复现过程

创建一个1.jpg图片马,内容为phpinfo

上传文件后进行抓包,修改上传文件名为1.jpg%00.php

发包后发现图片被解析为php文件

防御方法 

1.在nginx虚拟机配置或者fcgi.conf配置加如下代码:

if ($request_filename ~* (.*)\.php) {
set $php_url $1;
}
if (!-e $php_url.php) {
return 403;
}

2.升级 nginx


整数溢出漏洞(CVE-2017-7529)

在 Nginx 的 range filter 中存在整数溢出漏洞,可以通过带有特殊构造的 range 的 HTTP 头的恶意请求 引发这个整数溢出漏洞,并导致信息泄露。 该漏洞影响所有 0.5.6 - 1.13.2版本内默认配置模块的Nginx只需要开启缓存攻击者即可发送恶意请求进 行远程攻击造成信息泄露。

当Nginx服务器使用代理缓存的情况下攻击者通过利用该漏洞可以拿到服务器的后端真实IP或其他敏感信息。

该漏洞利用难度低可以归属于low-hanging-fruit的漏洞在真实网络攻击中也有一定利用价值。

复现过程

[root@server nginx]# cd CVE-2017-7529/
[root@server CVE-2017-7529]# docker-compose up -d

调用python3 poc.py http://your-ip:8080/,读取返回结果:

 

防御方法

升级版本


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

这一漏洞的原理是非法字符空格和截止符(\0)会导致Nginx解析URI时的有限状态机混乱,此漏洞可导 致目录跨越及代码执行,其影响版本为:nginx 0.8.41 – 1.5.6

复现过程

#启动环境
[root@server nginx]# cd CVE-2013-4547/
[root@server CVE-2013-4547]# docker-compose up -d

创建 abc.jpg 文件,并上传 抓包,在该文件最后添加一个空

 

 

 访问图片地址,抓包

http://ip/uploadfiles/abc.jpg

将请求体中abc.jpg后加入两个空格.php变成

 再次修改HEX,找到20 20,把第二个20修改成00

 

 成功解析

 

 防御方法

升级nginx

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

南京市某高校计算机科学与技术专业性能测试与Loadrunner—考试试卷分析

XXX科技学院试卷 20 /20 学年 第 学期 课程所属部门&#xff1a; 课程名称&#xff1a; 课程编号&#xff1a; 考试方式&#xff1a;&#xff08;A、B、开、闭&#xff09;卷 使用班级&#xff1a; …

Android 12.0仿ios的hotseat效果修改hotseat样式

1.概述 最近在12.0产品项目需求的需要,系统原生Launcher的布局样式很一般,所以需要重新设计ui对布局样式做调整,产品在看到 ios的hotseat效果觉得特别美观,所以要仿ios一样不需要横屏铺满的效果 居中显示就行了,所以就要看hotseat的具体布局显示了 效果图如下: 2.仿io…

Python数据攻略-Pandas常用数据操作

大家好&#xff0c;我是Mr数据杨。今天我将带领各位走进Python的奇妙世界&#xff0c;就像步入三国演义那样热闹且复杂的战争年代。这里&#xff0c;数据就像那些智勇双全的武将和策士&#xff0c;我们要学习如何访问和修改它们&#xff0c;就如同诸葛亮那样掌控战局。 先来理…

springboot+vue医院网上预约挂号系统4n9w0

在线挂号平台已经成为它运营过程中至关重要的因素。医院挂号管理系统&#xff0c;是在计算机与通信设备十分完备的基础上&#xff0c;为医院管理人员、医生、用户提供的系统化的管理平台。 本系统需要实现基础的医院介绍、线上挂号、在线咨询、医生请假等几个主要功能。 管理员…

佛朗斯冲击港交所IPO:叉车租赁的未来是数字化?

佛朗斯“三战”IPO。 图源&#xff1a;佛朗斯 近日&#xff0c;广州佛朗斯股份有限公司&#xff08;下文简称为“佛朗斯”&#xff09;正式向港交所递交招股书&#xff0c;拟于港交所主板挂牌上市。 值得注意的是&#xff0c;这并不是佛朗斯首次冲击IPO。2019年6月和2020年7月…

Pytorch CIFAR10图像分类 ShuffleNet篇

Pytorch CIFAR10图像分类 ShuffleNet篇 文章目录 Pytorch CIFAR10图像分类 ShuffleNet篇4. 定义网络&#xff08;ShuffleNet&#xff09;Channel Shuffle网络单元 Shuffle UnitShuffleNet 网络结构summary查看网络测试和定义网络 5. 定义损失函数和优化器6. 训练及可视化&#…

【鲁棒、状态估计】用于电力系统动态状态估计的鲁棒迭代扩展卡尔曼滤波器研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

矿井水除氟——高矿化度矿井水氟化物深度降解的技术方案

高矿化度矿井水是指含有高浓度溶解性矿物质的废水&#xff0c;通常指的是含有高浓度钠、钙、镁、铁、铝、钾等离子的废水。这些离子通常来自于废水所处的环境、工业或生产过程中使用的原材料和化学品。高矿化度的废水通常具有高盐度、高电导率、高硬度等特征&#xff0c;对环境…

Measurement Studio 2019 f3 Crack

Measurement Studio是Microsoft Visual Studio的扩展软件&#xff0c;提供了用于创建测试和测量应用程序的.NET工具。 了解Measurement Studio的功能 Measurement Studio是​唯一​一​款.NET​工具​套​件&#xff0c;专为在Microsoft Visual Studio中构建工程应用&#xff0…

【redis基础】事务|管道|发布订阅

大家好~这里是redis系列文章之《【redis基础】事务|管道|发布订阅》上一篇文章&#xff1a;redis持久化【RDBAOF】持久化双雄_努力努力再努力mlx的博客-CSDN博客 目录 事务 概念 作用 数据库事务vs redis事务 常用指令 情况1&#xff1a;正常执行 情况2&#xff1a;放弃…

18- 弹幕系统设计

1、弹幕系统设计 场景分析&#xff1a;客户端针对某一视频创建了弹幕&#xff0c;发送后端进行处理&#xff0c;后端需要对所有正在观看该视频的用户推送该弹幕。 1.1、实现方式 使用短连接进行通信或使用长连接进行通信。 1.1.1、短连接实现方案 所有观看视频的客户端不断…

设计模式之~命令模式

定义&#xff1a; 命令模式&#xff08;Command&#xff09;&#xff0c;将一个请求封装为一个对象&#xff0c;从而使你可用不同的请求对客户进行参数化&#xff1b;对请求排队或记录请求日志&#xff0c;以及支持可撤销的操作。 为什么需要命令模式? 在我们的软件开发系统中…

长沙市直机关工委常务副书记梁敏一行莅临麒麟信安调研

5月25日&#xff0c;长沙市直机关工委专职副书记梁敏&#xff0c;市工信局党组成员、副局长、机关党委书记唐宁等一行莅临麒麟信安开展“党建引领数字经济发展工作”调研&#xff0c;麒麟信安党委书记王忠锋热情接待。 长沙市直机关工委专职副书记梁敏来到麒麟信安展厅&#…

SpringMVC第九阶段:Restful风格实现的CRUD

Restful风格实现的CRUD图书 把前面的传统请求方式的图书的CRUD换成刚刚讲的Restful风格的图书模块的CRUD。只需要修改页面端的请求方式和地址&#xff0c;以及服务器端Controller的接收。 1、列表功能实现 Controller中的修改: RequestMapping(value "/book",me…

数据表示(二进制、进制转换、补码计算)

目录 1.进制2.进制转换2.1 R进制转十进制2.2 十进制转R进制2.3 m进制转n进制方法1&#xff1a;十进制中转方法2&#xff1a;直接转化 3.进制计算3.1 机器数3.2 编码方式&#xff08;原码、反码、补码、移码&#xff09;3.3 表示范围定点整数定点小数 3.4 定点表示法 4.浮点数4.…

Python之网络编程

一、操作系统基础 操作系统&#xff1a;&#xff08;Operating System&#xff0c;简称OS&#xff09;是管理和控制计算机硬件与软件资源的计算机程序&#xff0c;是直接运行在“裸机”上的最基本的系统软件&#xff0c;任何其他软件都必须在操作系统的支持下才能运行。 注&a…

代码随想录算法训练营day53 | 1143.最长公共子序列,1035.不相交的线,53. 最大子序和 动态规划

代码随想录算法训练营day53 | 1143.最长公共子序列&#xff0c;1035.不相交的线&#xff0c;53. 最大子序和 动态规划 1143.最长公共子序列解法一&#xff1a;动态规划 1035.不相交的线解法一&#xff1a;动态规划 53. 最大子序和 动态规划解法一&#xff1a;动态规划解法二&am…

机智云的离线语音识别模组,让家电变得更加智能和便捷

随着人们对智能化生活的需求不断增加&#xff0c;离线语音模组越来越受到欢迎。它可以为家庭、工作和娱乐提供更加智能和便捷的服务&#xff0c;例如通过语音指令控制家居设备、查询天气信息、播放音乐等。 “小智同学&#xff0c;打开灯光” “调到最亮” “正转一档” 人工智…

websocket在分布式场景的应用方案

websocket简介 WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。它可以在客户端和服务器之间建立持久连接&#xff0c;使得服务器可以主动向客户端推送数据&#xff0c;而不需要客户端不断地向服务器发送请求。 WebSocket 协议的优点包括&#xff1a; 实时性&#x…

MySql MVCC 详解

注意以下操作都是以InnoDB引擎为操作基准。 一&#xff0c;前置知识准备 1&#xff0c;MVCC简介 MVCC 是多版本并发控制&#xff08;Multiversion Concurrency Control&#xff09;的缩写。它是一种数据库事务管理技术&#xff0c;用于解决并发访问数据库的问题。MVCC 通过创…