当前位置: 首页 > news >正文

PHP-FPM未授权访问漏洞

一、环境

Vulhub - Docker-Compose file for vulnerability environment

docker直接搭建

二、研究步骤

我们nginx本来是监听的本地127.0.0.1:端口,但当我们监听端口写成0.0.0.0:端口,此时就有可能出现未授权访问的问题

2.1 拉取环境

2.2分析配置源码

docker中是127.0.0.1:9000但是映射给我们本地就是0.0.0.0:9000

我们先了解一下fastcgi和php以及php-fpm之间的交互关系

比如我们给传入一个数据?a=1&b=2,nginx会发送给index.php之后发送fastcgi,把其打包成一个个record,其中record主要是1和4,一个连接一个格式化,之后php-fpm将其解析为我们看得懂的key和valu,之后发送给php,php将其交给index.php后面拼接着我们的请求,index.php执行成功后返回给php-fpm,php-fpm再返回给fastcgi,fastcgi再返回给nginx,nginx返回给我们,这个是底层的流程

2.3nginx解析漏洞

看看这个靶场什么意思?

安全后缀为空,很明显这个不应该为空,这个会将任何后缀解析为php

搭建好访问之后就是一个文件提交

看一看docker镜像中自带图片的16进制,很明显最后面镶嵌了一个php的一句话木马

图片后面随便加个php就出现了

其实这个漏洞很简单,但是底层的代码是因为cgi_fix被开启所以有漏洞,而具体来说意思就是当程序发现后面的php不存在的时候,就会往上级走,发现nginx.png存在就会以php的权限去执行,这个就是解析漏洞的原理

php的cgi.fix_pathinfo解析_cgi.fix pathinfo()-CSDN博客

如何修复:1.关闭安全后缀,2.关闭cgi_fix

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【整理】后端接口设计和优化相关思路汇总
  • 【C++】单例模式的解析与应用
  • Centos7离线安装Sumo全过程(xerces-c、Cmake、gymnasium等)
  • Windows自动化3️⃣WindowsPC拽起时长问题解决方案
  • Java学习Day30:Mysql 第三章:玄阶高级斗技:八极崩!
  • 查券机器人如何提升电商返利系统的用户体验
  • Visual C++ 2010 学习版
  • Selenium实战:深度解析Python中嵌套Frame与iFrame的定位与切换技巧,解决Selenium定位不到的问题
  • 掌握Jenkins自动化部署:从代码提交到自动上线的全流程揭秘
  • 国内服务器安装Docker提示Failed to connect to download.docker.com port 443的解决方案
  • 使用 Hugging Face 和 Milvus 构建 RAG 系统
  • 机器学习——第十二章计算学习理论
  • 笔记(day21) 多线程以及锁的概念(超级完整版)
  • ASPICE标准与汽车网络安全:协同确保软件质量与系统安全
  • pycharm windows/mac 指定多版本python
  • 「面试题」如何实现一个圣杯布局?
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • FastReport在线报表设计器工作原理
  • java概述
  • SpiderData 2019年2月16日 DApp数据排行榜
  • SpingCloudBus整合RabbitMQ
  • Vue--数据传输
  • 检测对象或数组
  • 每天一个设计模式之命令模式
  • 目录与文件属性:编写ls
  • 你不可错过的前端面试题(一)
  • nb
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • 从如何停掉 Promise 链说起
  • 交换综合实验一
  • ​你们这样子,耽误我的工作进度怎么办?
  • ​什么是bug?bug的源头在哪里?
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • (23)Linux的软硬连接
  • (35)远程识别(又称无人机识别)(二)
  • (苍穹外卖)day03菜品管理
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (三十五)大数据实战——Superset可视化平台搭建
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (转)jQuery 基础
  • .ai域名是什么后缀?
  • .Net 6.0--通用帮助类--FileHelper
  • .NET COER+CONSUL微服务项目在CENTOS环境下的部署实践
  • .Net Core缓存组件(MemoryCache)源码解析
  • .net MySql
  • .NET 依赖注入和配置系统
  • .net访问oracle数据库性能问题
  • //解决validator验证插件多个name相同只验证第一的问题
  • @Documented注解的作用
  • @Not - Empty-Null-Blank
  • @SpringBootApplication 注解
  • [000-01-022].第03节:RabbitMQ环境搭建
  • [2021 蓝帽杯] One Pointer PHP