一、**phpStudy**(小皮面板)简介:
phpStudy国内12年老牌公益软件,集安全,高效,功能与一体,已获得全球用户认可安装,运维也高效。支持一键LAMP,LNMP,集群,监控,网站,FTP,数据库,JAVA等100多项服务器管理功能。
二、漏洞简介:
小皮面板 <= 8.1.0.7: 啊这
其实这个漏洞确实不是小皮的问题,而是2017年就出现的nginx解析漏洞。
漏洞原理**:**
1、由于错误配置(但是测试的时候是安装完后的默认配置,我在官方论坛也反馈了,他们还狡辩。。。)导致nginx把以.php结尾的文件交给fastcgi处理,为此可以构造http://www.xxx.com/test.gif/xx.php (任何服务器端不存在的php文件均可,比如a.php)
2、但是fastcgi在处理xx.php文件时发现文件并不存在,这时php.ini配置文件中cgi.fix_pathinfo=1 发挥作用,这项配置用于修复路径,如果当前路径不存在则采用上层路径。为此这里交由fastcgi处理的文件就变成了/test.gif。
3、 最重要的一点是php-fpm.conf中的security.limit_extensions配置项限制了fastcgi解析文件的类型(即指定什么类型的文件当做代码解析),此项设置为空的时候才允许fastcgi将.png等文件当做代码解析。
localhost_80.conf原始配置:
1 |
location ~ \.php(.*)$ { |
三、漏洞复现:
测试环境:phpStudy(小皮面板)8.1.0.7 + 图片马(一定要注意不是那种copy的马子 有几率失败,可以下载这个马子测试)
复现如图:
执行系统命令:
四、修复
php.ini 中 fix_pathinfo 禁用为0
cgi.fix_pathinfo=0
nginx.conf添加如下代码
1 |
location ~ \.php(.*)$ { |
FROM :ol4three.com | Author:ol4three
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论