nginx解析漏洞简单复现及修复
Nginx简介
Nginx是一款轻量级的web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,其特点是占内存小、并发能力强;国内使用Nginx的有百度、京东、新浪、网易、腾讯、淘宝等
优势
1、作为Web服务器,Nginx处理静态文件、索引文件、自动索引的效率非常高
2、作为代理服务器,Nginx可以实现无缓存的反向代理加速,提高网站运行速度
3、作为负载均衡服务器,Nginx既可以在内部直接支持rails和PHP,也可以支持HTTP代理服务器对外进行服务,同时还支持简单的容错和利用算法进行负载均衡
4、性能方面:Nginx是专门为性能优化而开发的,非常注重效率;它采用内核poll模型,可以支持更多的并发连接,最大可以支持对五万个并发连接数的响应,且只占用很低的内存资源
5、稳定性方面:Nginx采取了分阶段资源分配技术,使得CPU与内存的占用率非常低,类似DOS这样的攻击对Nginx来说基本上是没有任何作用的
6、高可用性方面:Nginx支持热部署,启动速度特别迅速,可以在不间断服务的情况下,对软件版本或配置进行升级,即使运行数月也无需重新启动,几乎可以做到7x24小时不间断地运行
通过yum安装Nginx
#service firewalld stop #关闭防火墙
#setenforce 0#yum install -y nginx
提示no package Nginx available:
需要先安装epel:
yum install epel-release
安装epel后就可以安装Nginx了
启动Nginx:
[root@localhost ~]#service nginx start
Redirecting to /bin/systemctl start nginx.service
[root@localhost ~]#service nginx status
Redirecting to /bin/systemctl status nginx.service
● nginx.service - The nginx HTTP and reverse proxy serverLoaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disa>Active: active (running) since Tue 2020-08-18 15:01:02 CST; 6s agoProcess: 20686 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)Process: 20684 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)Process: 20683 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCC>Main PID: 20688 (nginx)Tasks: 2 (limit: 5892)Memory: 4.1MCGroup: /system.slice/nginx.service├─20688 nginx: master process /usr/sbin/nginx└─20689 nginx: worker processAug 18 15:01:02 localhost.localdomain systemd[1]: Starting The nginx HTTP and reverse p>
Aug 18 15:01:02 localhost.localdomain nginx[20684]: nginx: the configuration file /etc/>
Aug 18 15:01:02 localhost.localdomain nginx[20684]: nginx: configuration file /etc/ngin>
Aug 18 15:01:02 localhost.localdomain systemd[1]: nginx.service: Failed to parse PID fr>
Aug 18 15:01:02 localhost.localdomain systemd[1]: Started The nginx HTTP and reverse pr>
Nginx解析漏洞原理
Nginx默认是以CGI的方式支持PHP解析的,普遍的做法是在Nginx配置文件中通过正则匹配设置SCRIPT_FILENAME。
当访问www.xxx.com/phpinfo.jpg/1.php这个URL时,$fastcgi_script_name会被设置为“phpinfo.jpg/1.php”,然后构造成SCRIPT_FILENAME传递给PHP CGI;PHP会认为SCRIPT_FILENAME是phpinfo.jpg,而1.php是PATH_INFO,所以会将phpinfo.jpg作为PHP文件来解析
漏洞形式
www.xxx.com/1.jpg/1.php
www.xxx.com/1.jpg%00.php(Nginx<8.03空字节代码执行漏洞)
www.xxx.com/1.jpg/%20\1.jpg
危害
利用该漏洞,攻击者可以将任意文件类型作为PHP文件解析,从而获取webshell
漏洞简单复现
先找到Nginx的默认web目录:
新建文件1.jpg:
用火狐浏览器访问localhost/1.jpg:显示图片解析错误
访问localhost/1.jpg/1.php:显示页面不存在
原因:Nginx不支持PHP
解决方法:配置Nginx支持PHP
将配置文件改为备份文件:
使用默认的配置文件作为配置文件:
修改Nginx配置文件/etc/nginx/nginx.conf,添加fastcgi支持:
45:增加index.php
65—71:去掉前面的#号
69:修改为网站根目录的绝对路径
重启Nginx
重启成功
测试Nginx
在网站根目录/usr/share/nginx/html里新建test.php
重新访问localhost/1.jpg/1.php:
修改/etc/php-fpm.d/www.conf:
39、41:修改用户、组为Nginx
190:添加一些常用的扩展名
重启PHP服务:
参考链接 :
nginx解析漏洞简单复现及修复 :https://mp.weixin.qq.com/s/86RxwkVNZJAAT4w_uOWvSw
nginx解析漏洞简单复现及修复相关推荐
- php目录遍历漏洞复现,nginx解析漏洞,配置不当,目录遍历漏洞环境搭建、漏洞复现...
nginx解析漏洞,配置不当,目录遍历漏洞复现 1.Ubuntu14.04安装nginx-php5-fpm 安装了nginx,需要安装以下依赖 sudo apt-get install libpcre ...
- nginx php解析漏洞,关于phpStudy nginx解析漏洞的安全公告
大工网安告[2020]022号 一.情况分析 漏洞背景 phpStudy是一个PHP调试环境的程序集成包,兼容Windows和Linux系统,支持Web端管理,可以一键创建网站.FTP.数据库等,实现 ...
- 安鸾渗透实战平台(文件上传)—— Nginx解析漏洞 (100分)
漏洞环境 安鸾渗透实战平台 图片.一句话木马 中国蚁剑(webshell管理工具) 题目 情况分析 根据提示,是nginx解析漏洞,查一下漏洞的对应信息,发现只要在源文件后缀后加上.php即可把图片文 ...
- PHP小皮使用,Phpstudy(小皮面板) nginx 解析漏洞
一.Phpstudy(小皮面板)简介: PhpStudy国内12年老牌公益软件,集安全,高效,功能与一体,已获得全球用户认可安装,运维也高效.支持一键LAMP,LNMP,集群,监控,网站,FTP,数据 ...
- IIS6.0文件解析漏洞原理/复现
IIS文件解析漏洞原理 IIS6.0存在文件解析漏洞 , 文件名中分号( ; )后面的内容不会被解析 比如 a.asp;jpg 文件 会被IIS解析成 a.asp 这个漏洞是逻辑上的问题,IIS6.0 ...
- IIS6.0目录解析漏洞原理/复现
目录解析漏洞原理 IIS6.0版本存在目录解析漏洞 , ,asp格式命名的文件夹,其目录下的所有文件都会被IIS当做asp文件来解析 漏洞复现 环境准备 Windows 2003系统 , IIS 6. ...
- log4j2漏洞简单复现
文章目录 0x1 log4j2漏洞简介 0x2 log4j2漏洞验证判断 0x3log4j2漏洞复现利用 0x04 log4j2漏洞修复方式 0x1 log4j2漏洞简介 log4j2原理: log4 ...
- Nginx SSL漏洞(SWEET32)扫描和修复 —— 筑梦之路
1.扫描nmap -sV --script ssl-enum-ciphers -p 443 www.baidu.comnmap --script="ssl-enum-ciphers" ...
- nginx解析漏洞 只要可以上传文件就会被黑
80sec发现的大漏洞 ,之前听阿里巴巴的同学也说到过 .说明这个漏洞地下知道的人已经很多了 只是今天公开了... 漏洞介绍:nginx是一款高性能的web服务器,使用非常广泛,其不仅经常被用作反向代 ...
最新文章
- IOS开发学习笔记(1)
- boost::range模块transformed相关的测试程序
- 8、奇怪的表达式求值--2017网易春招
- 49 MM配置-库存管理和实际库存-设置容差限制
- python语法学习之对象与参考,局部与全局变量
- Metabase在linux二次开发编译环境搭建(之一---下载文件)
- iOS:菜单控制器和菜单项:UIMenuController和UIMenuItem
- pagerTabStrip例子
- python 日志函数参数_Python之配置日志模块logging
- linux 系统下安装中文输入法
- 公司网站应该外包SEO公司还是自己去做?
- php教学反思,教学反思
- FastJson的JSON.isValid()出现BUG!
- 基于知识图谱构建新一代数据智能基础设施
- 将开发板的usb配置为ncm网口(qnx系统)
- 注塑模具设计时,需要依据哪些设定原则?
- 轻触开源(三)-Gson项目源码解析_贰
- 计算机视觉——DoG和LoG算子
- 408数据结构学习笔记——顺序查找、折半查找、分块查找
- 计算机应届博士生的一点求职经验——字节篇
热门文章
- 基于特征融合的图像情感识别
- 【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类...
- troublemaker中文谐音_求Arashi 岚的Troublemaker的中文谐音~~~~ 超感激~
- 如何使用wordnet
- 基于selenium生成Csdn 博客文章简索的excel文件
- ajax如何用编号查询姓名,Ajax js 使用Ajax检测用户名是否存在
- SlickEdit 的宏解析设置方法
- 计算理论101:这可能是讲FSM的最生动的一篇了
- 5Python全站之路系列之MySL连表查询
- C#实现CAD数据转shape或mdb