专栏首页Timeline SecphpStudy默认配置致Nginx解析漏洞复现

phpStudy默认配置致Nginx解析漏洞复现

作者:小泫@Timeline Sec新成员

本文字数:731

阅读时长:2~3min

声明:请勿用作违法用途,否则后果自负

0x01 简介

phpStudy是一个PHP调试环境的程序集成包。该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装,无须配置即可使用,是非常方便、好用的PHP调试环境。

0x02 漏洞概述

此次漏洞是Nginx的解析漏洞,由于phpstudy中配置文件的不当,造成了/xx.php解析漏洞,故此将文件解析为php运行。

0x03 影响版本

phpStudy <=8.1.0.7 for Windows

0x04 环境搭建

回复“Nginx解析漏洞环境”,获取漏洞版本安装包及安装教程

注意⚠️:phpstudy会一直提示更新才可以用,所以不要点击更新,直接启动服务就行了,安装教程里有操作方法的视频

将图片马ip.png放置在web根目录下

0x05 漏洞复现

访问图片

加/.php解析为php文件

0x06 漏洞分析

首先打开 Nginx.conf 文件查看

在 vhosts 文件夹下 localhost_80.conf

  location ~ \.php(.*)$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }

由于如下的配置文件会导致 .php.* 文件交给fastcgi

当url为如下

http://127.0.0.1/tp/test/ip.png/a.php

$fastcgi_script_name会被设置为ip.png/a.php,然后构造成SCRIPT_FILENAME传递给PHP CGI

如果PHP中开启了fix_pathinfo这个选项,PHP会认为SCRIPT_FILENAME是ip.png,而a.php是PATH_INFO,所以就会将ip.jpg作为PHP文件来解析了

默认phpinfo中我们可以看到,默认是开启的

0x07 修复方式

php.ini 中 fix_pathinfo 禁用为0

cgi.fix_pathinfo=0

Nginx.conf添加如下代码

    location ~ \.php(.*)$ {
      if ( $fastcgi_script_name ~ \..*\/.*php ){
        return 403;
      }
    
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }

参考链接:

https://www.cnblogs.com/fogwang/p/5576518.html

https://www.laruence.com/2010/05/20/1495.html

阅读原文看更多复现文章

Timeline Sec 团队

安全路上,与你并肩前行

本文分享自微信公众号 - Timeline Sec(TimelineSec),作者:小泫

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-09-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 严重:PHP远程代码执行漏洞复现

    9 月 26 日,PHP 官方发布漏洞通告,其中指出:使用 Nginx + php-fpm 的服务器,在部分配置下,存在远程代码执行漏洞。并且该配置已被广泛使用...

    Timeline Sec
  • 记一次360众测仿真实战靶场考核WP

    User-Agent: Mozilla/5.0 (iPhone; CPU iPhoneOS 8_0 like Mac OS X) AppleWebKit/600...

    Timeline Sec
  • CVE-2020-0554:phpMyAdmin后台SQL注入

    phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。借由...

    Timeline Sec
  • Windows 下 Nginx + PHP5 的安装与配置

    本文转载至:www.phpvim.net/web/php/installing-nginx-with-php5-on-windows.html

    meteoric
  • Linux 下配置nginx到php的连接

    安装Nginx:Linux 6 下安装编译安装Nginx 安装PHP : Linux 6 下编译安装 PHP 5.6

    Leshami
  • Nginx兼容框架的pathinfo模式与URL重写

    几乎所有的框架(ThinkPHP,Zend Framework,CI,Yii,laravel等)都会使用URL重写或者pathinfo模式,使URL看起来更美观...

    公众号php_pachong
  • windows+nginx配置站点目录发生500的一个问题

    用phpstudy配置一个站点的时候,发现一直报错500,后来查看了下error.log.报错如下:

    仙士可
  • nginx服务器配置虚拟主机

    对于虚拟主机的配置可以在nginx.conf里面配置或者vhosts.conf下,由于vhost.conf便于管理我们在这个文件夹下进行配置虚拟主机

    十月梦想
  • 从SAP最佳业务实践看企业管理(44)-SD-销售退货账务处理

    退货与销售折让是企业经常性的经营行为,若不正确处理这些业务,将会在会计核算上带来很多不便。 下面谈谈常用的账务处理方法。 1、购买方未付货款并且未作账务处理的 ...

    SAP最佳业务实践
  • 大型数据集的MySQL优化

    诸多知名大公司都在使用MySQL,其中包括Google、Yahoo、NASA和Walmart。此外,其中部分公司的表囊括数十亿行,却又性能极佳。虽然很难保持My...

    CSDN技术头条

扫码关注云+社区

领取腾讯云代金券