中间件漏洞总结(二)- Nginx

(一) Nginx简介

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

(二)文件解析

  1、 漏洞介绍及成因

  对任意文件名,在后面添加/任意文件名.php的解析漏洞,比如原本文件名是test.jpg,可以添加test.jpg/x.php进行解析攻击。

  2、 漏洞复现

  在网站根目录下新建一个i.gif的文件,在里面写入phpinfo()

  在浏览器中打开

  中间件漏洞总结(二)- Nginx

  利用文件解析漏洞,输入192.168.139.129:100/i.gif.2.php,发现无法解析

  中间件漏洞总结(二)- Nginx

     将/etc/php5/fpm/pool.d/www.conf中security.limit_extensions = .php中的.php删除

  中间件漏洞总结(二)- Nginx

     再次在浏览器中打开,成功解析

     中间件漏洞总结(二)- Nginx

  3、 漏洞修复

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

  2) 将/etc/php5/fpm/pool.d/www.conf中security.limit_ectensions后面的值设为.php

(三)目录遍历

  1、 漏洞简介及成因

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

  2、 漏洞复现

  打开test目录,发现无法打开

  中间件漏洞总结(二)- Nginx

 修改/etc/nginx/sites-avaliable/default,在如下图所示的位置添加autoindex on

      中间件漏洞总结(二)- Nginx

     再次访问

    中间件漏洞总结(二)- Nginx

     

  3、 漏洞修复

  将/etc/nginx/sites-avaliable/default里的autoindex on改为autoindex off

(四) CRLF注入

  1、 漏洞简介及成因

  CRLF时“回车+换行”(\r\n)的简称。

  HTTP Header与HTTP Body时用两个CRLF分隔的,浏览器根据两个CRLF来取出HTTP内容并显示出来。

  通过控制HTTP消息头中的字符,注入一些恶意的换行,就能注入一些会话cookie或者html代码,由于Nginx配置不正确,导致注入的代码会被执行。

  2、 漏洞复现

  访问页面,抓包

  请求加上/%0d%0a%0d%0a<img src=1 onerror=alert(/xss/)>

  中间件漏洞总结(二)- Nginx

     由于页面重定向,并没有弹窗。 

  3、 漏洞修复

  Nginx的配置文件/etc/nginx/conf.d/error1.conf修改为使用不解码的url跳转。

(五) 目录穿越

  1、 漏洞简介及成因

  Nginx反向代理,静态文件存储在/home/下,而访问时需要在url中输入files,配置文件中/files没有用/闭合,导致可以穿越至上层目录。

  2、 漏洞复现

  访问:http://192.168.139.128:8081/files/

   中间件漏洞总结(二)- Nginx

     访问:http://192.168.139.128:8081/files../

  成功实现目录穿越:  

  中间件漏洞总结(二)- Nginx

  3、 漏洞修复

  Nginx的配置文件/etc/nginx/conf.d/error2.conf的/files使用/闭合。

相关推荐