博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

nginx解析漏洞复现

Posted on 2020-05-11 18:58  GiDunPar  阅读(187)  评论(0编辑  收藏  举报

漏洞环境:ubuntu16.04.3下配置docker

(本来想自己配一个nginx的,结果突然想起来这太机器之前配过docker,索性直接用配好的环境了,省事)

漏洞原因:

(nginx的解析漏洞和IIS 7.x的漏洞一样,都是在路径后加/.php实现的,和nginx与php版本无关,是用户配置问题)

1、php.ini配置文件中cgi.fix_pathinfo=1。该配置会修复路径,如果我们提交的URL是 IP/uploadfiles/1.png/.php,则会修复为上层——> IP/uploadfiles/1.png。可以将其配置为0来阻止。

2、php-fpm.conf中的security.limit_extensions配置。它能够指定什么样的文件会被当做代码解析,即配置为空时,可以使png等图片文件也被当做代码解析。可以通过配置为 .php来阻止。

复现过程:

(1)访问IP/uploadfiles/nginx.php

 

(2)访问访问IP/uploadfiles/nginx.php/.php

 

 

 

可以看到nginx.png被当做php解析了,输出了phpinfo(vulhub已经把环境配置好了,nginx就是一个图片马,不用自己做了)。

漏洞修复:

(1)php.ini配置文件中cgi.fix_pathinfo值改为1。【vulhub给的docker没看到php.ini,不知道是我没找到还是什么,这一步没做】

(2)security.limit_extensions配置为.php

重启docker-compose后,解析漏洞失效。

 

 萌新,有什么不对的,望大佬告知。