目录

0x01 漏洞介绍

0x02 漏洞影响

0x03 漏洞复现

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

然后我们使用vulhub中使用的go版本的exp

先安装golang环境

然后将exp部署到本地并利用

成功利用

这里还需要注意一下,由于只有部分php-fpm子进程受到了污染,所以请多执行几次命令

本文由博客一文多发平台 OpenWrite 发布!

java 任意代码执行漏洞_php-fpm在nginx特定环境下的任意代码执行漏洞(CVE-2019-11043)...相关推荐

  1. nginx php 配置请求等待时间_CVE-2019-11043: PHP-FPM在Nginx特定配置下任意代码执行漏洞预警...

    0x01 前言 2019年10月23日,PHP官方发布了在 nginx 配置不当的情况下 php-fpm 可导致远程代码执行的漏洞. 但由于是配置文件的开放性,还请使用 nginx+php-fpm 的 ...

  2. java 内存映射文件进程间通讯_[转]Windows环境下利用“共享内存”实现进程间通信的C/C++代码---利用CreateFileMapping和MapViewOfFile...

    进程间的通信方式有很多种, 上次我们说了最傻瓜的"共享外存/文件"的方法. 那么, 在本文中, 我们即将学习"共享内存"的方式实现进程间的通信, 这是IPC最快 ...

  3. java WebDriver + selenium 调用 谷歌驱动 chromedriver 实现 在 liunx 环境下 无界面 截图 加自动获取页面最大真实页面内容高宽 加各类型踩坑日记

    目录 1.介绍 2.结果效果 2.1大图 2.2细节小图 3.依赖 4.代码 4.1引入 4.2具体代码 4.3执行 5.Linux下安装chrome和chromedriver 5.1yum安装 5. ...

  4. android debug bridge tools_如何优雅的管理多环境下的Android代码

    秦子帅明确目标,每天进步一点点..... 作者 |  小码哥哥地址 | juejin.im/post/5e1ef261f265da3e0535f10a 介绍日常开发过程中除了主工程代码,肯定也少不了调 ...

  5. 关于JS调用Adobe Reader ActiveX插件,在web环境下调用本地打印机执行静默打印的实现

    因为之前被实施商的前端童鞋理直气壮的卡了脖子告诉我写不出来,让我很不爽,所以还是搜集了一些资料最终测试成功了.注意一下这个只能在IE10及以上的IE内核环境下可用(我只测试了这个环境,但是IE是没跑了 ...

  6. linux代码windows能跑吗,能不能帮忙改一下下面这些代码,原来是在windows系统上运行的,要让它能在linux上终端跑。该如何处理...

    当前位置:我的异常网» C语言 » 能不能帮忙改一下下面这些代码,原来是在windows系 能不能帮忙改一下下面这些代码,原来是在windows系统上运行的,要让它能在linux上终端跑.该如何处理 ...

  7. java 支付重复问题_Airbnb支付系统如何在分布式环境下避免重复打款

    原文链接:https://medium.com/airbnb-engineering/avoiding-double-payments-in-a-distributed-payments-system ...

  8. Linux环境下运行matlab以及执行m文件

    在Linux下安装完matlab后,会在/usr/local/bin/下生成matlab文件,可以使用matlab命令. 在命令行下执行: $ matlab -help 可以得到帮助文件: Usage ...

  9. Linux环境下如何编译和执行c程序

    1 单个文件的编译和执行 创建main.c文件,内容如下: 编译: 执行: 2 多个文件的编译和执行 创建sum.c文件,内容如下: 创建main.c文件,内容如下: 编译: 生成可执行文件,文件名为 ...

最新文章

  1. protocol buff
  2. php 整形 字符串排序,php-通过特定的字符串值进行排序
  3. 白话Elasticsearch42-深入聚合数据分析之案例实战__bucket filter:统计牌品最近一个月的平均价格(Filter Aggregation)
  4. 数字图像噪声_Python
  5. OpenShift 4 - DevSecOps Workshop (12) - 用CodeReady Workspace编辑提交应用代码
  6. Silverlight Quick Starts翻译(二):第一章 创建一个Silverlight工程
  7. php 页面缓存的做法,使用php进行页面缓存
  8. android10LTE,Jelly 2:全球最小的Android 10 4G智能手机
  9. U盘制作“奶瓶”破解无线WPE\WPA\WPA2 密码教程
  10. 职场达人教你怎么删除pdf空白页
  11. 我的世界联机侠java_我的世界联机侠手机版-我的世界联机侠下载-Minecraft中文分享站...
  12. js html编码和解码,JavaScript字符集编码与解码
  13. 紫光m300 路由器与磊科ni360 q360 nr235 ddwrt tomato等互刷折腾备忘
  14. php百度蜘蛛劫持,技术教程:php伪造ip访问一个网站,可以伪造百度蜘蛛ip
  15. 邮箱被国际反垃圾邮件组织拉黑的解决方法
  16. 考研数据结构——买卖青蛙
  17. windows DNS污染解决
  18. 三菱q系列plc 和电脑socket_三菱Q系列Socket通讯(套接字通讯)讲解
  19. ts 正负条形图 组件_手把手教你使用ggplot2绘制条形图
  20. 工作十年的程序员,却拿着毕业三年的工资……

热门文章

  1. svn管理工具_主流代码管理工具深度评测
  2. 注解版poi操作工具
  3. oracle获取一段时间内所有的小时、天、月
  4. 启动spark shell
  5. Jetty实战之 安装 运行 部署
  6. Linux设置ssh免密码登录
  7. java 抽奖 高并发处理_如何设计高并发下的抽奖?
  8. 云海技术u盘怎么恢复成普通盘_BITLOCKER加密中断数据无法读取恢复一例
  9. miui游戏驱动程序偏好设置_米粉必看:小米官方教你如何关闭 MIUI 广告 - 小米,MIUI...
  10. java 线程分组_Java多线程可以分组,还能这样玩!