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

(一) Nginx简介

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

(二)文件解析

  1、 漏洞介绍及成因

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

  2、 漏洞复现

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

    在浏览器中打开

    

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

    

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

    

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

     

  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目录,发现无法打开

    

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

        

     再次访问

      

     

  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/)>

    

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

  3、 漏洞修复

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

(五) 目录穿越

  1、 漏洞简介及成因

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

  2、 漏洞复现

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

     

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

    成功实现目录穿越:  

    

  3、 漏洞修复

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

猜你喜欢

转载自www.cnblogs.com/ssw6/p/12098591.html
今日推荐