记一次Nginx解析漏洞复现--文件类型后门测试


Do what you said,say what you can do

做你说过的,说你能做的


目录

    1.什么是解析漏洞

    2.在没有解析漏洞的网站上传文件后门

    3.在存在解析漏洞的Nginx服务器上上传文件后门

    4.总结

 

1.什么是解析漏洞?

     解析漏洞是指服务器应用程序在解析某些精心构造的后缀文件时,会将其解析成网页脚本,从而导致网站沦陷的一种漏洞。

 

2.在没有解析漏洞的网站上传文件后门

    (1)工具:phpstudy、火狐浏览器、notepad++                

    (2)目的:演示在本地站点创建一个带有后门代码的文件,该文件是不会被网站服务器应用程序成功解析的。

    (3)演示步骤:

            1.在phpstudy的网站根目录下创建一个名为“test111.php”的文件,内容如下:

               注:phpinfo()是php的内置函数,用于查看php的一些配置信息

 

           2.在浏览器中访问该文件,能正常显示:

          3.将“test111.php”改为“test111.jpg”

              

          4.在浏览器中访问该文件,发现不能正常显示:

              在URL末尾加上“/.php”后缀,图片并未被解析成php文件:

 

3.在存在解析漏洞的Nginx服务器上上传文件后门

    (1)工具:vulhub漏洞平台、phpstudy、ubuntu 操作系统、VM虚拟机、火狐浏览器、Notepad++

                        在使用工具前,先介绍一下vulhub吧,vulhub是一款基于docker和docker-compose的漏洞环境部署平台,在VM虚拟机中使用ubuntu来搭建vulhub漏洞环境。

                        其中的docker是一个开源的应用容器引擎,docker-compose是用python写的一个一个docker容器管理工具。

                        关于vulhub漏洞环境平台的相关漏洞利用等知识可以参考链接:https://vulhub.org/

     (2)演示过程:

              注:关于vulhub的安装和使用教程在网上都能搜到,这里就不细讲。

              1.开启虚拟机,找到文件“nginx_parsing_vulnerability”

              2.按照下面的顺序启动靶场环境:

                 编译:sudo docker-compose build

                启动:sudo docker-compose up -d

              3.查看靶场ip,并在真机中访问:

                找到ens33中的 inet,这个就是靶场环境的ip,复制下来,在真机中访问:

              4.在百度上随意找一张图片,用Notepad++打开,在末尾加上<?php phpinfo();?>,可以多加几次,以防执行失败,修改完成后直接保存,不用改后缀。

              5.将修改好的图片上传到靶场,点击提交查询:

                结果显示上传成功!

              6.复制路径后访问图片:

              7.在URL末尾增加“/.php”后缀后,该图片被解析为php文件:

                如果插入的是一句话木马,就能实现获取网站webshell等目的了。

 

4.总结

  上文第2点首先举例说明在不能存在解析漏洞的情况下上传一个具有后门代码的文件,并不会被网站服务器解析为脚本文件,而第3点印证了存在解析漏洞的情况下上传后门文件是会被网站服务器解析成脚本文件的。

  在第3点中加入<?php phpinfo();?>能正常执行,说明只要在图片文件中插入的是一句话木马,同样也会被网站服务器成功解析,这时候配合使用菜刀等工具就能成功拿到目标站点的webshell。


版权声明:本文为qq_38002992原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。