Nginx中间件渗透总结

简介

image.png

Nginx(engine x)是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务器Nginx是由伊戈尔开发,因为它的稳定性、丰富的功能集、实例配置文件和低系统资源的消耗而闻名。

Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like协议下发行,其特点是占用内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好

中国大陆使用 nginx 的网站用户有:百度、京东、新浪、网易、腾讯、淘宝

Nginx适用于高并发、可以做负载均衡服务器和HTTP服务器、具有代码特点、可以作为代理服务器

image.png

【一>所有资源获取<一】
1、200份很多已经买不到的绝版电子书
2、30G安全大厂内部的视频资料
3、100份src文档
4、常见安全面试题
5、ctf大赛经典题目解析
6、全套工具包

Nginx可以用作以下

  1. 静态服务器

首先,Nginx是一个HTTP服务器,可以将服务器上的静态文件(HTML、图片等)通过HTTP协议展现给客户端

Nginx是一款轻量级的Webserver/反向代理server以及电子邮件代理server。并在一个BSD-like协议下发行,特点是占用内存小,并发能力强,Nginx相较于Apache/lighttpd具有占用内存少,稳定性高等优势,并且依靠并发能力强,丰富的模块库以及友好灵活的配置而闻名

Nginx本身也是一个静态资源的服务器当只有静态资源的时候,就可以使用Nginx来做服务器,同时现在也很流行动静分离,可以通过Nginx来实现动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来动静资源做好了拆分以后,我们可以根据静态资源的特点将其作为缓存操作,这就是网站静态化处理的核心思路

  1. 反向代理服务器

客户端本来可以直接通过HTTP协议访问某网站应用服务器,网站管理员可以在中间加上一个Nginx,客户端请求Nginx,Nginx请求应用服务器,然后将结果返回客户端,此时Nginx就是反向代理服务器

用户A向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将推断向何处(原始server)转交请求,并将获得的内容返回给client。而用户A始终认为他访问的是原始server而不是nginx。因为防火墙作用,仅仅同意nginx进出,防火墙和反向代理的共同作用保护了院子内的资源—原始server

image.png

如果服务器可以直接HTTP访问,为什么要在中间加一个反向代理,下面的负载均衡、虚拟主机等都基于反向代理实现,当然反向代理的功能也不仅仅是这些

  1. 负载均衡

当网站访问量非常大,网站站长开心赚钱的同时,也摊上事了。因为网站越来越慢,一台服务器已经不够用了。于是将同一个应用部署在多台服务器上,将大量用户的请求分配给多台机器处理。同时带来的好处是,其中一台服务器万一挂了,只要还有其他服务器正常运行,就不会影响用户使用Nginx可以通过反向代理来实现负载均衡

负载均衡的意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等等,从而共同完成工作任务,简单而言就是当有2台或以上服务器时,根据规则随机的将请求分发到指定的服务器上处理,负载均衡一般都需要同时配置反向代理,通过反向代理跳转到负载均衡,而Nginx目前支持自带3种负载均衡策略,还有2种常用的第三方策略

  1. 虚拟主机

有的网站访问量大,需要负载均衡。然而不是所有的网站都如此出色,有的网站由于访问量太小,需要节省成本,将多个网站部署在同一台服务器上

例如将www.aaa.com和www.bbb.com两个网站部署在同一台服务器上,两个域名解析到同一个IP地址,但是用户通过两个域名却可以打开两个完全不同的网站,互不影响,就像访问两个服务器一样,所以叫两个虚拟主机

  1. 正向代理

正向代理是一个位于用户A和原始server之间的代理server ,为了从原始server取得内容,用户A向代理server发送一个请求并指定目标(原始server)。然后代理server向原始server转交请求并将获得的内容返回给用户,用户必须进行一些特别的设置才能使用正向代理

用途:在防火墙内的局域网用户提供访问Internet的途径。还能够使用缓冲特性降低网络使用率

从安全角度讲:

正向代理同意用户通过它访问任意站点而且隐藏用户自身,因此你必须采取安全措施以确保仅为经过授权的用户提供服务。

正反向代理对外都是透明的。访问者并不知道自己访问的是一个代理。

  1. Nginx vs Apache

image.png

image.png

Nginx环境

image.png

image.png

Nginx渗透

文件解析漏洞

漏洞简介:

​ 对于任意文件名,在后面添加 /xxx.php(xxx为任意字符)后,即可将文件作为php解析

漏洞范围:

​ 该漏洞是nginx配置所导致,与版本无关。

漏洞复现:

image.png

1.jpg后面加上 /xxx.php ,会将 1.jpg 以PHP解析

注意下图中的访问链接

image.png

image.png

该漏洞是Nginx配置所导致,与Nginx版本无关,下面是常见的漏洞配置:

image.png

server { 
	location ~ \.php$ { 
		root /work/www/test; 
		fastcgi_index index.php; 
		fastcgi_param SCRIPT_FILENAME 
	$document_root$fastcgi_script_name; 
		include fastcgi_params; 
	fastcgi_pass unix:/tmp/php-fpm.sock; 
	} 
}

当攻击者访问 /1.jpg/xxx.php 时,Nginx将查看URL,看到它以 .php 结尾,并将路径传递给 PHP fastcgi 处理程序.Nginx传给php的路径为 C:/phpStrudy/WWW/1.jpg/xxx.php ,在phpinf中可以查看 _SERVER[“ORIG_SCRIPT_FILENAME”] 得到

image.png

PHP根据URL映射,在服务器上寻找xxx.php文件,但是xxx.php不存在,又由于 cgi.fix_pathinfo 默认是开启的,因此PHP会继续检查路径中存在的文件,并将多余的部分当作 PATH_INFO 。接着PHP在文件系统中找到.jpg文件,而后以PHP的形式执行.jpg的内容,并将 /xxx.php 存储在 PATH_INFO 后丢弃,因此我们在phpinfo中的$_SERVER[‘PATH_INFO’] 看到的值为空(no value),如果继续添加后缀则蠢顺势显示后缀

image.png

最后整理一下思路:cgi.fix_pathinfo

php的一个选项:cgi.fix_pathinfo,该选项默认开启,值为1,用于修理路径的

例如:当php遇到文件路径 /yxc.jpg/xxx.php/yxc.sec 时,若 /yxc.jpg/xxx.php/yxc.sec 不存在,则会去掉最后的 /yxc.sec ,然后判断 /yxc.jpg/xxx.php 是否存在,若存在则将 /yxc.jpg/xxx.php 当作文件 /yxc.jpg/xxx.php/yxc.sec ,若 /yxc.jpg/xxx.php 仍不存在,则继续去掉 xxx.php ,以此类推

修复建议:

  1. 配置cgi.fix_pathinfo(php.ini中)为0,并重启php-cgi程序

  2. 如果需要使用到cgi.fix_pathinfo这个特性(例如:wordpress),那么可以禁止上传目录的执行脚本权限或将上传存储的内容与网站分离,即站库分离

  3. 高版本PHP提供了security.limit_extensions 这个配置参数,设置 security.limit_extensions = .php

目录遍历

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

先去www目录下随便新建一个文件夹,然后进行访问

image.png

修改 C:\phpstudy\nginx\conf\nginx.conf,在下面标示位置中添加 autoindex on ;

image.png

重启nginx,再次访问即可

image.png

修复建议:on改为off即可

空字节任意代码执行漏洞

影响版本:

​ nginx 0.5.*

​ nginx 0.6.*

​ nginx 0.7 <- 0.7.65

​ nginx 0.8 <- 0.8.37

Nginx在遇到%00空字节时与后端FastCGI处理不一致,导致可以在图片中嵌入PHP代码然后通过访问 xxx.jpg%00.php 来执行其中的代码

复现环境:

​ nginx 0.7.65+php 5.3.2

在nginx-0.7.65/html/目录下创建 1.jpg,内容为:

<?php phpinfo();?>

访问1.jpg,无法访问,所以在URL中输入 1.jpg…php

然后抓包,hex选项下,.的hex编码为2e,将第一个2e改为00

image.png

image.png

成功绕过

该漏洞不受 cgi.fix_pathinfo 影响,当其为0时,依然解析

高版本不存在该漏洞

CRLF注入漏洞

漏洞产生:

Nginx会将 $uri 进行编码,导致传入 %0a%0d 即可引入换行符,造成CRLF注入漏洞。

错误的配置文件原本的目的是为了让http的请求跳转到https上的,意思就是配置实现了强制跳转的功能,当用户访问nginx服务器时,由于此配置的存在会被强制跳转到以https协议访问之前访问的链接

image.png

  1. 配置中的 $url 是我们可以控制的,这样我们就可以在 $url 处填入CRLF ,然后对服务器进行访问实现头部注入

  2. 服务器会返回一个302跳转给用户

漏洞危害:

​ 劫持合法用户会话,利用管理员身份进行恶意操作,篡改页面内容、进一步渗透网站

​ 利用CRLF injection设置一个 SESSION ,造成一个 “会话固定漏洞”

原理:

​ CRLF是“回车 + 换行”(\r\n)的简称。在HTTP协议中,HTTP Header与HTTP Body是用两个CRLF分隔的,浏览器就是根据这两个CRLF(使用payload %0a%0d%0a%0d进行测试)来取出HTTP内容并显示出来。所以,一旦我们能够控制HTTP消息头中的字符,注入一些恶意的换行,这样我们就能注入一些会话Cookie( http://www.xx.com%0a%0d%0a%0dSet-cookie:JSPSESSID%3Dxxx)或者HTML代码(http://www.xx.com/?url=%0a%0d%0a%0d<img src=1 οnerrοr=alert(“xss”)>),所以CRLF Injection又叫HTTP Response Splitting,简称HRS

Nginx会将$uri进行解码,导致传入%0a%0d即科引入换行符,造成CRLF注入漏洞

u r i 跳 转 H T T P S , uri跳转HTTPS, uriHTTPSuri就会产生%0a%0d换行符,换行符就一定存在CRLF注入漏洞

漏洞复现:

​ cd vulhub/nginx/insecure-configuration

​ docker-compose up -d

​ [http://127.0.0.1/%0ASet-cookie:JSPSESSID%3D36](http://127.0.0.1/ Set-cookie:JSPSESSID%3D36)

image.png

CRLF + XSS 配合:

%0D%0A%0D%0A%3Cimg%20src=1%20onerror=alert(/xss/)%3E

image.png

使用旧版浏览器即可弹窗

CRLF深入:

攻击者操作:

  1. 攻击者打开一个网站,然后服务器会回复他一个session id。比如SID=abcdefg。Attack把这个id记下了

  2. Attack给被攻击者发送一个电子邮件,他假装抽奖或者推销,诱导攻击者点击链接:http://unsafe/?SID=abcdefg,SID后面是Attack自己的session id

  3. 被攻击者被吸引后,点击了http://unsafe/?SID=abcdefg,像往常一样,输入了自己的账号和口令从而登录到银行网站

  4. 因为服务器的session id不改变,现在被攻击者点击后,他就拥有了被攻击者的身份,就可以为所欲为了

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

影响版本:

​ nginx 0.8.41 - 1.4.3 / 1.5.0 - 1.5.7

​ 复现时需要文件名的后面存在空格,而windows是不允许存在此类文件的,因此复现采用vulhub

漏洞复现:

image.png

cd vulhub/nginx/CVE-2013-4547

docker-compose build

docker-compose up -d

docker ps

image.png

上传1.jpg

内容为:

<?php phpinfo();?>

image.png

抓包在后缀名后面加个空格,成功绕过

修改名称为 2.jpg…php ,在hex编码下将jpg后面的两个2e改为20,00,

image.png

成功绕过

原理:

image.png

修复建议:

​ 升级版本

整数溢出 CVE-2017-7529

漏洞描述:

​ 在nginx的range filter 中存在整数溢出漏洞,可以通过带有特殊构造的range的HTTP头的恶意请求引发这个整数溢出漏洞,并导致信息泄露。

影响版本:

​ Nginx 0.5.6 - 1.13.2

危害程度:

​ 低

kali_Ma
关注 关注
  • 4
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
公司中间件公司中间件 nginx
12-19
公司中间件 nginx
Nginx是一个流行的Web服务器和反向代理服务器,它提供了多种安全功能来保护网站和用户数据的安全
BLOG域名:programb.blog.csdn.net
03-04 442
注意替换your_domain.com为你的域名,/path/to/your_certificate.crt和/path/to/your_private_key.key为你上传的证书和私钥文件的路径。常见的SSL/TLS证书类型包括域名验证证书、组织验证证书和扩展验证证书。提供必要的信息:根据所选证书类型和CA的要求,您需要提供一些必要的信息,如域名、组织名称、联系信息等。获取SSL/TLS证书:你可以从证书颁发机构(CA)购买证书,或者使用免费的证书颁发机构(如Let’s Encrypt)获取证书。
编码技巧——HTTP接口安全之CORS
娜娜米的博客
04-17 2912
日常开发中,对于一些新项目的api工程,会有专门的安全工程师对齐进行安全漏洞扫描,扫描出来的漏洞会被要求限期修复;本篇讲解CORS漏洞的基本概念、原理、示例,以及修复漏洞的代码示例;......
网站架构】Nginx 4层、7层代理配置,正向代理、反向代理详解
池鱼 - YiiGaa
05-04 1708
本期详细讨论网站系统的代理配置,以Nginx为例 1、反向代理,外网请求进来 2、正向代理,请求外网服务,包含4层,7层代理讲解
Nginx反向代理负载均衡虚拟主机动静分离UrlRewrite防盗链
qq_44300280的博客
08-27 1952
Nginx反向代理负载均衡
内网渗透代理转发详解及工具介绍
博客地址 www.sec0nd.top
08-16 3311
在进行渗透测试时,getshell打点之后就要进行内网渗透了,那么为了更方便的进行横向移动,需要做代理转发。今天来了解下代理转发以及相关的工具。代理有两种形式,映射和转发,最终的表现形式均为代理端口映射:外网主机A想访问内网主机B上的服务端口转发:外网主机A已经可以访问内网主机B里的任意端口,但是无法访问内网主机C上的端口,此时可以将C主机的端口转发到主机B端口,那么外网主机A访问了内网主机B就等于访问了内网主机C。就简单介绍几种工具,都是比较常用的。......
奇怪的知识,黑客如何用nginx攻击一个网站
不定时分享最优质的网络技术与教程,满满的干货。
03-15 576
这两天在写一个小程序,计划做成程序员资源、求助、内推、课程、学习路线图之类的综合类小程序,所以更新有点慢了,见谅见谅。对于今天所述的文章,真正有不良居心的人,总是会有更sao的攻击方法。我也不敢说得太多,而且这些攻击的行为都是违法的,建议大家学会以后手下留情。今天的目的实际上是教大家学会nginx
Nginx系列之反向代理过程
qiaotl的博客
09-28 2569
通过例子以及概念介绍的方式介绍Nginx作为反向代理处理过程、容错处理机制
http://www.xxx.com/ skipped. Content of size 67099 was truncated to 59363
aa346359669的博客
01-07 125万+
如果提示http://www.xxx.com/ skipped. Content of size 67099 was truncated to 59363 在nutch-site.xml中添加: [code="java"] parser.skip.truncated false [/code] 这是因为网站的页面内容采用truncate的方式分段返回,而nutch...
Fatal error: require(): Failed opening required ‘/www/wwwroot/xxxxxx/public/../thinkphp/start.php
热门推荐
WYXXXXXXXXX的博客
10-13 300万+
项目场景: 在CentOS8中安装了宝塔,配置thinkphp5.1版本环境时出了问题,在此之前网站虚拟域名成功配置,能够访问站点创建成功的页面 问题描述: 在访问tp5默认页面时报错 Warning: require(): open_basedir restriction in effect. File(/home/wwwroot/xxxxxx/thinkphp/start.php) is not within the allowed path(s): (/home/wwwroot/xxxxxx/pub
常见中间件漏洞总结PPT
01-25
常见中间件漏洞总结PPT,内含tomcat、weblogic、Nginx、iis、jboss等的常见漏洞和介绍,培训学习均可用。
Nginx入门到实践 Nginx 中间件
11-12
Nginx入门到实践 Nginx 中间件Nginx入门到实践 Nginx 中间件
nginx cache 学习总结 1
08-03
This directive appeared in version 1.1.12.当指令被指定时,根据 proxy_cache_key指令确定的若个或得出相同
Nginx入门到实践-Nginx中间件 web服务、代理,应用层负载均衡、应用层安全防护、 Nginx+Lua,动静分离,全面系统的Nginx课程
05-23
Nginx中间件,不局限于业务逻辑,有效 独立于后台开发框架(不论后端是Java开 发、PHP开发、或者其他语言框架) 都能做到平台通用 3.原理性 不仅重实践、也会结合原理(如:Http协 议、操作系统),让你理解背后的...
从内部防护汽车网络安全——硬件安全模块(HSM)保护ECU主处理器内部
最新发布
dianqicyuyan的博客
04-23 321
HSM是一种硬件,它以物理方式封装了安全功能。其集成芯片专为IT安全应用而设计,通常具有自己的处理器核心、各种内存(RAM、ROM、闪存等)和硬件密码加速器。此外,HSM必须满足用于车辆应用的特定标准,并且极其有效的集成对于降低成本至关重要。其主要要求包括ECU应用程序和HSM之间的安全接口,以及用于分析故障的调试/测试接口。HSM必须能够以尽可能短的等待时间处理加密信息,并能够承受汽车环境中的标准温度。从根本上说,HSM通过其自己的处理器核心来执行汽车应用场景所需的所有IT安全功能。
网络安全(黑客)—2024自学
dexi1113的博客
04-16 1716
我在这里可以很肯定地告诉你:"网络安全有很好的发展前景,前沿网络安全技术即将崛起,或者说已经崛起"。
网络安全(黑客技术)—2024自学
TDJYGC的博客
04-17 1485
网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。走安全行业的工程方向的,技术上面其实有很大的重叠性,抛开甲乙方、岗位名称、岗位职责等因素来看,作为学技术的,也根据以往我们给学员推荐就业和入职情况来看,只要好好掌握以下几种技术(网络协议与安全设备、Linux操作系统、Web服务部署/开发、主流渗透测试/安全工具、一门及以上的编程语言)中的2到3个,都可以较好的胜任工作需求。
网络安全】常见的网路安全设备及功能作用总结
白帽黑客八哥的博客
04-22 338
一种整合多种安全功能(如防火墙、防病毒、内容过滤等)于一体的网络安全设备。
网络安全之SQL注入及防御(下篇)
weixin_70911257的博客
04-23 1237
sql注入waf绕过
nginx中间件解析漏洞的影响
06-10
Nginx 中间件解析漏洞是指攻击者利用 Nginx 中间件解析漏洞,通过构造恶意请求,从而绕过服务器的安全措施并执行任意代码。这种漏洞可以允许攻击者在服务器上执行任意的系统命令、读取、修改或删除服务器上的敏感...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 自学网络安全的三个必经阶段(含路线图) 41701
  • 渗透实战:内网域渗透 35414
  • 网络安全之渗透实战学习 28357
  • 都2021年了,还在问网络安全怎么入门,气得我当场脑血栓发作 27319
  • 记录渗透靶场实战【网络安全】 27246

分类专栏

  • 渗透测试 2篇
  • 安全 2篇
  • 笔记 2篇

最新评论

  • 网络安全(黑客技术)—2024自学手册

    征途黯然.: 表情包The explanation of 网络安全黑客技术2024自学手册 is very detailed and easy to understand.

  • 网络安全(黑客技术)—2024自学手册

    谈泊: 已关注,求分享

  • 网络安全(黑客技术)—2024自学手册

    九九归二: 已关注,求分享

  • 网络安全(黑客技术)—2024自学手册

    网安溦寀: 已关注,求分享

  • 网络安全(黑客技术)—2024自学手册

    喜羊羊渗透: 已关注,求分享

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • 网络安全(黑客技术)—2024自学手册
  • 网络安全(黑客)—2024自学手册
  • 网络安全(黑客技术)—2024自学手册
2024
04月 21篇
03月 21篇
2023年22篇
2022年84篇
2021年170篇

目录

目录

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

深圳SEO优化公司苏州外贸网站建设台州英文网站建设哪家好襄阳百姓网标王推广价格大庆百度关键词包年推广价格昌吉seo排名报价西宁网站推广系统报价许昌阿里店铺托管多少钱资阳关键词按天计费多少钱邵阳网站设计模板推荐廊坊设计网站报价白银营销型网站建设飞来峡百搜标王报价大丰品牌网站设计报价桂林建网站多少钱广元百搜标王多少钱崇左网页制作多少钱阜阳网站设计模板文山网站定制大鹏网站优化排名推荐承德阿里店铺运营忻州网络推广北京网络营销公司青岛网站推广报价南山网站推广工具多少钱甘南网站改版鹰潭百度爱采购报价大运建设网站玉树网站建设那曲网站优化推广公司来宾seo排名报价歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化