80sec发现的大漏洞 ,之前听阿里巴巴的同学也说到过 。说明这个漏洞地下知道的人已经很多了

只是今天公开了。。。

漏洞介绍:nginx是一款高性能的web服务器,使用非常广泛,其不仅经常被用作反向代理,也可以非常好的支持PHP的运行。80sec发现其中存在一个较为严重的安全问题,默认情况下可能导致服务器错误的将任何类型的文件以PHP的方式进行解析,这将导致严重的安全问题,使得恶意的***者可能攻陷支持php的nginx服务器。

漏洞分析:nginx默认以cgi的方式支持php的运行,譬如在配置文件当中可以以

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

的方式支持对php的解析,location对请求进行选择的时候会使用URI环境变量进行选择,其中传递到后端Fastcgi的关键变量SCRIPT_FILENAME由nginx生成的$fastcgi_script_name决定,而通过分析可以看到$fastcgi_script_name是直接由URI环境变量控制的,这里就是产生问题的点。而为了较好的支持PATH_INFO的提取,在PHP的配置选项里存在cgi.fix_pathinfo选项,其目的是为了从SCRIPT_FILENAME里取出真正的脚本名。
那么假设存在一个http://www.80sec.com/80sec.jpg,我们以如下的方式去访问

将会得到一个URI

/80sec.jpg/80sec.php

经过location指令,该请求将会交给后端的fastcgi处理,nginx为其设置环境变量SCRIPT_FILENAME,内容为

/scripts/80sec.jpg/80sec.php

而在其他的webserver如lighttpd当中,我们发现其中的SCRIPT_FILENAME被正确的设置为

/scripts/80sec.jpg

所以不存在此问题。
后端的fastcgi在接受到该选项时,会根据fix_pathinfo配置决定是否对SCRIPT_FILENAME进行额外的处理,一般情况下如果不对fix_pathinfo进行设置将影响使用PATH_INFO进行路由选择的应用,所以该选项一般配置开启。Php通过该选项之后将查找其中真正的脚本文件名字,查找的方式也是查看文件是否存在,这个时候将分离出SCRIPT_FILENAME和PATH_INFO分别为

/scripts/80sec.jpg和80sec.php

最后,以/scripts/80sec.jpg作为此次请求需要执行的脚本,***者就可以实现让nginx以php来解析任何类型的文件了。

http://www.80sec.com/80sec.jpg/80sec.php

POC: 访问一个nginx来支持php的站点,在一个任何资源的文件如robots.txt后面加上/80sec.php,这个时候你可以看到如下的区别:

访问http://www.80sec.com/robots.txt

HTTP/1.1 200 OK
Server: nginx/0.6.32
Date: Thu, 20 May 2010 10:05:30 GMT
Content-Type: text/plain
Content-Length: 18
Last-Modified: Thu, 20 May 2010 06:26:34 GMT
Connection: keep-alive
Keep-Alive: timeout=20
Accept-Ranges: bytes

访问访问http://www.80sec.com/robots.txt/80sec.php

HTTP/1.1 200 OK
Server: nginx/0.6.32
Date: Thu, 20 May 2010 10:06:49 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: keep-alive
Keep-Alive: timeout=20
X-Powered-By: PHP/5.2.6

其中的Content-Type的变化说明了后端负责解析的变化,该站点就可能存在漏洞。

漏洞厂商:http://www.nginx.org

解决方案:

我们已经尝试联系官方,但是此前你可以通过以下的方式来减少损失

关闭cgi.fix_pathinfo为0

或者

if ( $fastcgi_script_name ~ \..*\/.*php ) {
return 403;
}

转载于:https://blog.51cto.com/linkboy/318979

nginx解析漏洞 只要可以上传文件就会被黑相关推荐

  1. 文件上传漏洞、WebShell、防御及绕过利用、Web容器解析漏洞、编辑器上传漏洞

    文章目录 文件上传漏洞 漏洞概述 漏洞成因 漏洞危害 WebShell 大马 小马 GetShell 漏洞利用的条件 PUT方法上传文件 漏洞的防御.绕过和利用 黑白名单策略 安装upload-lab ...

  2. i春秋:警惕您站上的“FCK编辑器”解析漏洞突破检测上传后

    实验环境 实验环境 操作机:Windows XP 目标机:Windows 2003 目标网址:www.test.com 实验工具:中国菜刀 实验目的 本课程带领大家利用"FCK编辑器&quo ...

  3. “FCK编辑器”解析漏洞突破检测上传后门漏洞

    实验环境 操作机: Windows XP 目标机:Windows 2003 目标网址:www.test.com - 实验目的 掌握FCK编辑器上传漏洞的利用 了解如何修复FCK编辑器上传漏洞 实验工具 ...

  4. 万能表单解析工具在xheditor上传文件中的应用

    利用JadePool中的万能表单解析工具cn.jadepool.web.ProcessForm可以轻松解析表单提交的全部信息,甚至可以轻松获取一个未知结构的表单由那些字段组成.以下是在xheditor ...

  5. Gin 框架学习笔记(01)— 自定义结构体绑定表单、绑定URI、自定义log、自定义中间件、路由组、解析查询字符串、上传文件、使用HTTP方法

    要实现一个 API 服务器,首先要考虑两个方面:API 风格和媒体类型.Go 语言中常用的 API 风格是 RPC 和 REST,常用的媒体类型是 JSON.XML 和 Protobuf.在 Go A ...

  6. 漏洞复现- - -IIS解析漏洞在fckEditor上传攻击中的利用

    目录 一,fckEditor在线编辑器 二,ISS6.0解析漏洞介绍 三,实验环境 四,实验步骤 一,fckEditor在线编辑器 FCKeditor是一个功能强大支持所见即所得功能的文本编辑器,可以 ...

  7. nginx 上传 文件超时设置_nginx限制上传大小和超时时间设置说明/php限制上传大小...

    现象说明: 在服务器上部署了一套后台环境,使用的是nginx反向代理tomcat架构,在后台里上传一个70M的视频文件,上传到一半就失效了! 原因是nginx配置里限制了上传文件的大小 client_ ...

  8. 关于上传文件的大小限制

    Springboot项目关于上传文件的大小限制 1, 第一种处理方式 application.properties中添加 maxFileSize 是单个文件大小 maxRequestSize是设置总上 ...

  9. nginx 上传文件漏洞_nginx解析漏洞复现

    nginx解析漏洞复现 一.漏洞描述 该漏洞与nginx.php版本无关,属于用户配置不当造成的解析漏洞 二.漏洞原理 1. 由于nginx.conf的如下配置导致nginx把以'.php'结尾的文件 ...

最新文章

  1. RISV-V未来将面临怎样的挑战?
  2. 2020中国人工智能年度评选报名即将截止!4大类别7大奖项开放申请
  3. 软件测试用python一般用来做什么-想要成为一个优秀的软件测试人员,应该学些什么?...
  4. 【转载】中文输入法下onKeyPress不能触发的问题
  5. Python A+B问题
  6. ByteBuffer用法小结
  7. 前端开发中使用mock模拟数据
  8. windows组件向导里没有internet 信息服务(iis) 的解决办法
  9. mysql语言的特点不包括_SQL语言具有两种使用方式,分别称为交互式SQL和__________...
  10. H3C进入目录---用户视图
  11. java序列化原理_Java序列化机制和原理
  12. quartz入门案例
  13. Luogu3613 睡觉困难综合征
  14. DH参数法 例题 机器人学
  15. 道德经和译文_道德经全文和译文
  16. 拼多多推广效果不好,哪里需要改善?
  17. play框架使用起来(16)
  18. springboot毕设项目游泳馆管理系统2069l(java+VUE+Mybatis+Maven+Mysql)
  19. 学校计算机室应该配备哪种灭火器,学校教学楼应配备的灭火器型号是什么
  20. 计算机适应性考试题目,计算机控制考试题目整理

热门文章

  1. 手机有一个时钟的标志_手机桌面时钟有这几款就够了
  2. quarz设置定时器任务的有效时间段_quartz定时任务时间设置
  3. 三位数的茎叶图怎么看_人参怎么判断年份,这些点你要了解
  4. Pentium 4处理器架构/微架构/流水线 (11) - NetBurst执行核详解 - Load/Store操作/存储转发
  5. 【英语学习】【WOTD】veritable 释义/词源/示例
  6. python Django之Web框架本质 (2)
  7. SPH(光滑粒子流体动力学)流体模拟实现二:SPH算法(1)-数学原理
  8. linux从usb安装软件,Linux下USB Camera的安装和使用
  9. oracle 论坛 千万级表,Oracle千万级记录操作总结
  10. 图解Visual Studio 2010中的UML建模功能