Nginx解析漏洞(nginx_parsing_vulnerability)

目录

Nginx解析漏洞   

环境搭建

复现

漏洞利用


Nginx解析漏洞   

        NGINX解析漏洞主要是由于NGINX配置文件以及PHP配置文件的错误配置导致的。这个漏洞与NGINX、PHP版本无关,属于用户配置不当造成的解析漏洞。具体来说,由于nginx.conf的配置导致nginx把以’.php’结尾的文件交给fastcgi处理,对于任意文件名,在后面添加/xxx.php(xxx为任意字符)后,即可将文件作为php解析。

        当攻击者访问/phpinfo.jpg/abc.php时,Nginx将查看URL,看到他以.php结尾,并将路径传递给php fastcgi处理程序,php看到/phpinfo.jpg/abc.php不存在,便删除去最后的/abc.php,看到phpinfo.jpg存在,而后以php的形式执行.jpg的内容。

        这里涉及到php的有一个选择:cgi.fix_pathinfo,该配置默认为1,开启状态,表示对文件路径进行“修理”。当php遇到文件路径“/1.aaa/2.bbb/3.cccc"文件时,若“/1.aaa/2.bbb/3.cccc"不存在,则会去掉最后的”/3.ccc",然后判断“/1.aaa/2.bbb”是否存在,若不存在,则继续去掉“/2.bbb”,以此类推。

环境搭建

打开vulhub靶场,nginx解析漏洞的地址时  /vulhub-master/nginx/nginx_parsing_vulnerability

vulhub靶场包的下载地址:github.com/vulhub

vulhub靶场的搭建教程可以参考:kali linux 下搭建 Vulhub 靶场(图文详解)

vulhub依赖于docker运行,所以记得安装docker

复现

下面是vulhub中关于nginx解析漏洞的readme:

        版本信息:

                        Nginx 1.x 最新版

                        PHP 7.x最新版

        由此可知,该漏洞与Nginx、php版本无关,属于用户配置不当造成的解析漏洞。

访问 localhost /uploadfiles/nginx.png    则 正常显示

Nginx解析漏洞(nginx_parsing_vulnerability)_第1张图片

增加  /.php 后缀,则解析为php文件

Nginx解析漏洞(nginx_parsing_vulnerability)_第2张图片

漏洞利用1

上面已经确定niginx解析漏洞存在, 我们可以通过文件上传利用nginx解析漏洞获取shell

首先,找一个jpg格式的图片,上传,上传时使用burp suite抓包(建议使用bp的内置浏览器)

​​​​​​​Nginx解析漏洞(nginx_parsing_vulnerability)_第3张图片

        这里我们上传上面的jpg格式的图片,提交前进行抓包,图片中的位置添加

                                

Nginx解析漏洞(nginx_parsing_vulnerability)_第4张图片

        可以看到这里上传成功,该图片的位置如下

Nginx解析漏洞(nginx_parsing_vulnerability)_第5张图片 

        我们利用nginx解析漏洞,添加/.php的后缀,可以看到phpinfo执行成功

 漏洞利用2

        还是用漏洞利用1 中的图片 ,不过我们在上传时,抓包后在图片末的位置添加的内容为

                ');?>

Nginx解析漏洞(nginx_parsing_vulnerability)_第6张图片

        访问上传位置,添加/.php的后缀,再访问   若uploadfiles下出现shell.php的文件 ,则说明百分之99以及成功

Nginx解析漏洞(nginx_parsing_vulnerability)_第7张图片

        使用中国蚁剑进行连接

Nginx解析漏洞(nginx_parsing_vulnerability)_第8张图片

        这里可以看到,连接成功 

Nginx解析漏洞(nginx_parsing_vulnerability)_第9张图片

Nginx解析漏洞(nginx_parsing_vulnerability)_第10张图片

总结 

        该漏洞与nginx、php版本无关,属于用户配置不当造成的解析漏洞

你可能感兴趣的:(Vulhub,学习篇,nginx,运维)