php-fpm如何在nginx特定环境下的任意代码执行漏洞
发表于:2025-02-06 作者:千家信息网编辑
千家信息网最后更新 2025年02月06日,这篇文章给大家介绍php-fpm如何在nginx特定环境下的任意代码执行漏洞,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。0x01 漏洞介绍在长亭科技举办的 Real World
千家信息网最后更新 2025年02月06日php-fpm如何在nginx特定环境下的任意代码执行漏洞
这篇文章给大家介绍php-fpm如何在nginx特定环境下的任意代码执行漏洞,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
0x01 漏洞介绍
在长亭科技举办的 Real World CTF 中,国外安全研究员 Andrew Danau 在解决一道 CTF 题目时发现,向目标服务器 URL 发送%0a符号时,服务返回异常,疑似存在漏洞。
在nginx上,fastcgi_split_path_info处理带有%0a的请求时,会因为遇到换行符\n,导致PATH_INFO为空,而在php-fpm对PATH_INFO进行处理时,对其值为空时的处理存在逻辑问题,从而导致远程代码执行漏洞
在fpm_main.c文件的第1150行代码可以很明显的看出来,问题的所在
https://github.com/php/php-src/blob/master/sapi/fpm/fpm/fpm_main.c#L1150
0x02 漏洞影响
服务器环境为nginx + php-fpm,并且nginx的配置像下面这样
location ~ [^/]\.php(/|$) { ... fastcgi_split_path_info ^(.+?\.php)(/.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_pass php:9000; ...}
另外,PHP 5.6版本也受此漏洞影响,但目前只能 Crash,不可以远程代码执行:
PHP 7.0 版本PHP 7.1 版本PHP 7.2 版本PHP 7.3 版本
如果使用了nginx官方提供的默认配置,将会收到影响
https://www.nginx.com/resources/wiki/start/topics/examples/phpfcgi/
0x03 漏洞复现
在vulhub上已经有了可以利用的漏洞环境,直接pull下来进行复现即可
使用的exp是国外研究员的go版本的
https://github.com/neex/phuip-fpizdam
自己去pull环境就可以了
完后就是复现操作
访问http://your-ip:8080/index.php
然后将exp部署到本地并利用
成功利用
这里还需要注意一下,由于只有部分php-fpm子进程受到了污染,所以请多执行几次命令
关于php-fpm如何在nginx特定环境下的任意代码执行漏洞就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
漏洞
版本
代码
环境
处理
影响
服务
内容
更多
服务器
研究员
问题
帮助
研究
配置
不错
明显
安全
成功
一道
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发的基本职能不包括
山东可选车牌数据库
小学生网络安全手抄报字少
浙大女教授 网络安全
使命召唤8入侵服务器怎么玩
服务器进入系统后鼠标没反应
怎么从考勤系统导出数据库
传奇版本怪物数据库平衡
成都网络技术工程师陈旭
企业用服务器配置
盈通a8安装连不上数据库
服务器集群软件技术参数
服务器bmc管理软件
网络安全宣传周知识竞赛答题答案
加网络安全设备会影响网络结构吗
南开区信息网络技术创造辉煌
初学网络技术看什么书
dnf一键端怎样配置数据库
繁殖+数据库
软件开发西安哪个技校好
浙大女教授 网络安全
软件开发企业税务检查
网络安全隐患措施
穿墙服务器
河南购买x86服务器虚拟主机
怎么从考勤系统导出数据库
软件开发标准规范指南
备份数据库日志文件
服务器bmc管理软件
微搭连接数据库