专栏首页网络攻防实战知识交流​php-fpm 未授权访问复现

​php-fpm 未授权访问复现

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

环境搭建

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

先是安装

$ sudo apt-get install nginx
$ sudo apt-get install mysql
$ sudo apt-get install php7.0 php7.0-fpm php7.0-mysql

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

/etc/nginx/sites-available/default

配置url重写和入口文件

    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;
    }

配置代理端口

    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;
              }

配置链接方式

在如下路径的文件

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

或者直接用docker-compose

使用已经搭建好的了环境

version: '2'
services:
 php:
   image: php:fpm
   ports:
- "9000:9000"

保存为docker-compose.yml

docker-compose up -d

漏洞分析

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

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

listen = 127.0.0.1:9000

配置成了

listen = 0.0.0.0:9000

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

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

漏洞复现

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

https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75
 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

本文分享自微信公众号 - 无级安全(wujisec)

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

原始发表时间:2019-07-18

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ASP.NET Core IP 请求频率限制

    在网站或API应用中,我们为了防止无聊人士或恶意攻击,通常希望屏蔽某一IP短时间的内高频率请求。在ASP.NET Core中,限制IP请求频率非常简单,我们来看...

    Edi Wang
  • 短URL服务的设计与实现

    作者:呼延十原文:https://juejin.im/post/5d10ecab518825795a4d380e

    黄泽杰
  • CentOS 7配置LNMP开发环境及配置文件管理详解

    本篇文章主要介绍了CentOS 7配置LNMP开发环境及配置文件管理,详细的介绍了MySQL 5.6,PHP 5.6,Nginx的安装与配置,有兴趣的可以了解一...

    习惯说一说
  • access_token获取和缓存进行2小时刷新

    做微信相关开发,基本上离不开access_token,只要是使用它的资源类api基本上必不可少,之前都是直接存进数据库了,但随着做的产品过多,使用数据库得办法很...

    许坏
  • 彻底解决access_token有效时间不稳定问题

    错误码是不会变得,报错内容也不变,唯一就最后那一段变了,所以完全不考虑,所以,简单写一个判断,如下图

    许坏
  • php解决新浪图床防盗链接口

    将以上6行代码复制然后在你服务器上新建一个php文件,内容就是这6行代码,使用的时候在你文件的远程路径后加?url=图片链接:

    许坏
  • 【笔记】宝塔面板配置laravel

    http://www.bt.cn/bbs/thread-19376-1-1.html

    许坏
  • 小白如何领取腾讯云代金券及使用?

    腾讯云代金券是腾讯云专用的一种代金券,也可以称为腾讯云优惠券。在购买腾讯云的时候,可获得相应的优惠折扣。一般购买腾讯云的时候,建议使用腾讯云代金券,这样可以节省...

    勤劳的小蜜蜂
  • 编程方式重启 ASP.NET Core 网站

    常言道,多喝热水,重启试试。有时候当应用工作不正常,重启也许能解决问题。但是程序员通常接触不到服务器系统权限。而运维人员和公司流程经常人为制造麻烦阻止我们去重启...

    Edi Wang
  • 腾讯云最新优惠活动和学生服务器

    腾讯云学生服务器优惠套餐 1.注册腾讯云帐号 2.完成个人认证 3.购买套餐 4.填写学生信息体验版云服务器优惠套餐

    用户5789651

扫码关注云+社区

领取腾讯云代金券