前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >​php-fpm 未授权访问复现

​php-fpm 未授权访问复现

作者头像
用户5878089
发布2019-07-23 10:50:17
2.2K0
发布2019-07-23 10:50:17
举报
文章被收录于专栏:网络攻防实战知识交流

自己的知识面很窄,感觉原来的学习总是迈不开步子,以至于,自己对linux的很多服务器的配置都很不明确,所以还是得好好学习,折腾环境也是很重要的,来手动的配置一下php-fpm未授权访问的环境。

环境搭建

使用linux搭建nginx和php fpm的环境

先是安装

代码语言:javascript
复制
$ sudo apt-get install nginx
$ sudo apt-get install mysql
$ sudo apt-get install php7.0 php7.0-fpm php7.0-mysql

然后是配置在如下路径的文件中

代码语言:javascript
复制
/etc/nginx/sites-available/default

配置url重写和入口文件

代码语言:javascript
复制
    location / {
          if (-f $request_filename/index.html){
            rewrite (.*) $1/index.html break;
           }
          if (-f $request_filename/index.php){
             rewrite (.*) $1/index.php;
           }
           if (!-f $request_filename){
              rewrite (.*) /index.php;
             }
           root   /var/www/html;
           index  index.php;
    }

配置代理端口

代码语言:javascript
复制
    location ~ \.php$ {
                  root           /var/www/html;
                  fastcgi_pass   127.0.0.1:9000;
                  fastcgi_index  index.php;
                  fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                  include        fastcgi_params;
              }

配置链接方式

在如下路径的文件

代码语言:javascript
复制
/etc/php/7.0/fpm/pool.d/www.conf 
代码语言:javascript
复制
listen = 0.0.0.0:9000#为了实现漏洞 未授权访问因此的来

或者直接用docker-compose

使用已经搭建好的了环境

代码语言:javascript
复制
version: '2'
services:
 php:
   image: php:fpm
   ports:
- "9000:9000"

保存为docker-compose.yml

代码语言:javascript
复制
docker-compose up -d

漏洞分析

nginx通过fastcgi协议与php-fpm通信。那么理论上,我们可以伪造fastcgi协议包,欺骗php-fpm进程,从而执行任意代码

如果主机的管理员不小心将

代码语言:javascript
复制
listen = 127.0.0.1:9000

配置成了

代码语言:javascript
复制
listen = 0.0.0.0:9000

那就说明任何人都能访问9000 端口

简而言之,恶意的用户伪造了fastcgi发包,构造环境变量执行我们传入的代码,就可以实现rce。

漏洞复现

环境好搭建,p牛的原理写的比较详细,这里利用p牛的脚本简单复现一下:

代码语言:javascript
复制
https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75
代码语言:javascript
复制
 python fpm.py  192.168.44.141 /var/www/html/1.php -c "<?php echo `id`; exit;?>"

参考

http://configurebox.xyz/post/10.html

https://evoa.me/index.php/archives/52/

https://www.leavesongs.com/PENETRATION/fastcgi-and-php-fpm.html

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 无级安全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境搭建
  • 漏洞分析
  • 漏洞复现
  • 参考
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档