深入浅出带你学习Nginx中间件常见漏洞

本文介绍了Nginx中间件的常见安全漏洞,包括配置错误导致的解析漏洞,如通过文件名后添加/xxx.php来执行PHP代码,以及空字节任意代码执行漏洞,利用%00截断实现。还提到了CVE-2013-4547文件名逻辑漏洞,以及配置错误可能导致的目录遍历问题。文章强调了理解和防范这些漏洞的重要性。

前言

上篇文章总结了APACHE中间件的常见漏洞,本文介绍一个同样很常用的中间件——nginx,本文会讲解关于nginx中间件的常见漏洞利用方式与危害,下面展开来给大家讲解。

Nginx是什么?

在讲漏洞之前我们需要先知道什么是nginx,简单来说Nginx是一款轻量的WEB 服务器/反向代理服务器及邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,而且nginx的并发能力在同类型的网页服务器中表现较好。根据其特点经常被用于轻量级网站开发,故而有很多关于它的漏洞。

Nginx配置文件错误导致的解析漏洞

关于由于配置文件错误导致的解析漏洞前文已经给大家讲过了,但Nginx也存在解析漏洞,其利用方法与之前中间件漏洞的方法大体一致,具体为对于任意文件名,在后面添加/xxx.php,即可将文件作为php解析,比如我们建立下面一个文件:

xino.jpg/xxx.php 

当我们上传后,服务器会将xino.jpg以php解析从而达到执行php命令的目的。

下面通过实例给大家验证,假如现在有一个存在该漏洞的网站,存在一个图片的上传点,但不能上传php文件,我们在其上传点上传符合漏洞利用特征的文件:

xino.png/a.php 

文件内容为查看php配置信息,上传成功后访问上传文件的路径,发现文件被解析成为了php语言,成功回显了php配置信息

Nginx 空字节任意代码执行漏洞

空字节顾名思义就是为空的字节,经常以%00来表示空字节,该漏洞就是我们可以在图片中嵌入PHP代码然后通过访问xxx.jpg%00.php来执行其中的代码,大致影响范围为:

nginx 0.5.*

nginx 0.6.*

nginx 0.7 <= 0.7.65

nginx 0.8 <= 0.8.37

我们还是用实例来讲解,首先建立一个1.jpg文件,同时在jpg里面添加内容:

<?php phpinfo(); ?> 

上传文件后我们进行抓包,修改上传文件名为:

1.jpg%00.php 

发包后发现图片文件被解析成为了php文件,成功利用漏洞:

CVE-2013-4547

该漏洞可以简述为文件名逻辑漏洞,影响版本如下:

Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7

具体解释就是假如我们上传了一个图片文件,但我们想让它作为php解析,于是抓包1.png.php,用在.php前用空格和零截断,需要我们注意的是需要从hex出编码处修改,20代表空格 00代表 \0,漏洞利用成功。

发包后图片就会以php文件来解析了,我们的漏洞也就成功复现了。

Nginx 配置错误导致的安全问题

由于配置问题导致的安全问题就太多了,不同地方配置时均可能产生安全问题,比如路径配置不好可能会造成目录遍历,下面举一些简单的例子:

server {
listen 80 default_server;
server_name _;
location /static {
alias /usr/share/nginx/static/;
}
location /api {
proxy_pass http://apiserver/v1/;
}
} 

上面的代码就有可能造成目录遍历,简单分析一下,可以发现在拼接时alias前面缺少一个反斜杠,这个就会导致访问上层目录,这一个小点就会导致存在目录遍历漏洞,可以看到nginx中配置东西还是需要严谨的,一点小差错就会导致漏洞。

结语

本文总结了一下中间件nginx在中间件常见的漏洞,当然只是一小部分,总结一下NGINX主要还是围绕解析漏洞来展开,对于NGINX存在的漏洞我们也可以带入到别的中间件去分析,如果喜欢本文,希望可以一键三连支持一下。

学习计划安排


我一共划分了六个阶段,但并不是说你得学完全部才能上手工作,对于一些初级岗位,学到第三四个阶段就足矣~

这里我整合并且整理成了一份【282G】的网络安全从零基础入门到进阶资料包,需要的小伙伴可以扫描下方优快云官方合作二维码免费领取哦,无偿分享!!!

①网络安全学习路线
②上百份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥HW护网行动经验总结
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值