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

news2024/12/27 0:24:33

今天继续给大家介绍渗透测试相关知识,本文主要内容是CVE-2019-11043(PHP远程代码执行漏洞)复现。

免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!

一、CVE-2019-11043(PHP远程代码执行漏洞)简介

CVE-2019-11043漏洞是PHP的一个远程代码执行漏洞,该漏洞产生与Nginx利用fastcgi_split_path_info在处理带有 %0a 的请求时,会因为遇到换行符(%0a)导致PATH_INFO为空,最终可导致任意代码执行。
关于该漏洞详细分析可参考文章:CVE-2019-11043 Nginx配置详解
该漏洞普遍出现在Nginx+php-fpm环境中,且PHP版本在7.0-7.3之间。

二、CVE-2019-11043(PHP远程代码执行漏洞)漏洞环境搭建

为了复现该漏洞,我们首先需要搭建该漏洞环境。我们使用Vulhub来搭建该漏洞环境。安装完Vulhub后,我们可以在Vulhub的PHP目录下,找到该漏洞,如下所示:
在这里插入图片描述
进入该漏洞目录后,我们执行命令:

docker-compose build

即可构建该漏洞,该命令执行结果如下所示:
在这里插入图片描述
之后,我们执行命令:

docker-compose up -d

即可大概该漏洞的环境,该命令执行结果如下所示:
在这里插入图片描述
打开该漏洞环境后,执行命令:

docker-compose config

在这里插入图片描述
可以查看该漏洞的docker配置,之后,我们可以使用浏览器访问,该漏洞页面如下所示:
在这里插入图片描述

三、CVE-2019-11043(PHP远程代码执行漏洞)漏洞利用工具安装

为了利用该漏洞,我们使用Github上该漏洞的公开POC。首先,我们git克隆该poc的安装包,执行命令:

git clone https://github.com/neex/phuip-fpizdam.git

该命令执行结果如下图所示:
在这里插入图片描述
下载后,可以看到本地出现了phuip-fpizdam的目录,如下所示:
在这里插入图片描述
该目录内文件如下所示:
在这里插入图片描述
之后,我们需要编译该环境,进入该目录后,执行命令:

go env -w GOPROXY=https://goproxy.cn
go get -v && go build

注意,上述过程需要本地安装golang语言环境,相关过程可以参考文章:Kali Linux安装go语言环境详解
上述命令执行结果如下所示:
在这里插入图片描述
这样,我们的漏洞利用POC就安装完成了。

四、CVE-2019-11043(PHP远程代码执行漏洞)复现

最后,我们就可以复现CVE-2019-11043(PHP远程代码执行漏洞)了。在该目录中,执行命令:

go run . "http://192.168.136.13:8080/index.php"

执行结果如下所示:
在这里插入图片描述
之后,我们就可以在该页面中,使用参数a来传递执行的命令了。例如,我们要查看/etc/passwd文件的内容,就可以构造如下的poyload:

http://192.168.136.13:8080/?a=cat%20/etc/passwd

执行后结果如下所示:
在这里插入图片描述
注意:由于受到php-fpm多个子进程影响,我们需要访问到php-fpm受污染的子进程才会使得上述payload执行成功,因此我们有时需要多访问几遍,才会出现相关结果。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/80563.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【hexo系列】02.hexo和obsidian实现笔记丝滑

文章目录hexo主题hexo进阶hexo插件:自动生成目录hexo插件:自动生成目录序号(自行选用)obsidian插件:templater安装插件配置插件定制模板新建笔记参考资料hexo主题 hexo主题大全 cd blog git clone https://github.co…

这十套练习,教你如何用Pandas做数据分析(08)

练习8-创建数据框 探索Pokemon数据 步骤1 导入必要的库 运行以下代码 import pandas as pd 步骤2 创建一个数据字典 运行以下代码 raw_data {“name”: [‘Bulbasaur’, ‘Charmander’,‘Squirtle’,‘Caterpie’], “evolution”: [‘Ivysaur’,‘Charmeleon’,‘Warto…

链接的接口——符号

链接的接口——符号 链接过程的本质就是要把多个不同的目标文件之间相互“粘”到一起,或者说像玩具积木一样,可以拼装形成一个整体。为了使不同目标文件之间能够相互粘合,这些目标文件之间必须有固定的规则才行,就像积木模块必须…

Akka 学习(八)路由与Dispatcher

目录一 编发编程二 Actor路由2.1 路由的作用2.2 路由的创建方式2.3 路由策略2.4 广播消息2.5 监督路由对象2.6 Akka 案例三 Dispatcher 任务分发3.1 什么是Dispatcher?3.2 Dispatcher的线程池3.3 Dispatcher的分类一 编发编程 Akka 是一个用于实现分布式、并发、响…

mPEG-Phosphate,甲氧基-聚乙二醇-磷酸盐试剂供应

一:产品描述 1、名称 英文:mPEG-Phosphate 中文:甲氧基-聚乙二醇-磷酸盐 2、CAS编号:N/A 3、所属分类:Phosphate PEG Methoxy PE 4、分子量:可定制,2000/1000/3400/20000/5000/10000 5、…

认识Java中的反射与枚举

作者:~小明学编程 文章专栏:JavaSE基础 格言:目之所及皆为回忆,心之所想皆为过往 目录 反射 什么是反射? 常用的反射类 Class类 Class类中的相关方法 常用获得类中属性相关的方法 获得类中注解相关的方法 获得…

Java中的运算符--短路运算

文章目录0 写在前面1 介绍2 举例2.1 逻辑与 &&2.2 逻辑或 ||3 小技巧4 写在最后0 写在前面 JAVA中有两个短路运算,一个是短路与,一个是短路或。 所谓短路,就是当一个参与运算的操作数足以推断该表达式的值时,另一个操作数…

VirtualBox安装CentOS7

一:、下载CentOS7的镜像 下载地址:Downloadhttps://www.centos.org/download/ 进入后有三个版本可以选择: 1、DVD ISO 标准安装版,一般下载这个就可以了(推荐)本文以此为例! 2、Everything…

2023跨年代码(烟花+雪花)

一眨眼,马上就2023年了,祝大家在新的一年里:身体健康平安,生活充实饱满,事业步步高升,心情阳光灿烂,财运滚滚而来,家庭美满幸福,新年开心快乐! 本文将给大家分享一些跨年…

GitHub Copilot

介绍 GitHub Copilot 是人工智能编程助手,它可以帮助你编写程序。在你用visual studio或visual studio code等软件设计工具进行编程时,它可以直接给你整行或整个方法的代码提示,并且提供多种提示方案供你选择。他是由openai公司(马…

docker 及docker-compose network概念及操作详解

1. docker network概述 Docker通过使用网络驱动程序【network drivers】支持网络容器。默认情况下,Docker提供了多个网络驱动程序,如bridge 和overlay驱动程序。用户也可以自己写一个网络驱动插件,这样就可以创建自己的驱动程序。 Docker引…

SpringBoot整合Mybatis-Plus分页失效

场景:项目整合mybatis-Plus分页失效,current一直是1,size一直是10,total属性一直是0,数据分页不准 先看官网给的示例: 解决方案是新建mybatis-Plus的配置文件: package com.amc.config;import …

[附源码]计算机毕业设计海南琼旅旅游网Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: Springboot mybatis MavenVue等等组成,B/S模式…

混检阳性概率的计算(贝叶斯定理的一个应用例)

目录 1. 混检阳性概率的计算 2. 混管阳性时你阳性的概率有多大? 2.1 贝叶斯分析结果的解释 1. 混检阳性概率的计算 目前核酸混检的基本做法是十混一,如果阳性人群分布完全随机,那么做十混一混检为阳性的概率有多大呢? …

对immutable的理解?如何应用在react项目中?

一、是什么 Immutable,不可改变的,在计算机中,即指一旦创建,就不能再被更改的数据 对 Immutable 对象的任何修改或添加删除操作都会返回一个新的 Immutable 对象 Immutable 实现的原理是 Persistent Data Structure&#xff08…

笔试强训(四十二)

目录一、选择题二、编程题2.1 解读密码2.1.1 题目2.1.2 题解2.2 走迷宫2.2.1 题目2.2.2 题解一、选择题 (1)tcp套接字中,不会阻塞的是哪一种操作(D) A.read B.write C.accept D.bind bind函数不会阻塞执行流的 &#…

Stm32旧版库函数3——nrf24l01 16位数据 51单片机发送与stm32接收

51代码&#xff1a; #include <reg52.h> #include <intrins.h> typedef unsigned char uchar; typedef unsigned char uint; //****************************************NRF24L01端口定义*************************************** sbit MISO P1^7; sbit …

runnable、callable、consumer、supplier

Java 没有委托的概念&#xff1b; 相反&#xff0c;如果需要一个指向函数的指针&#xff0c;可以创建内联匿名类&#xff08;或 Java 8 的 lambda 表达式&#xff09;&#xff0c;它们是为此建议设计的某些接口的实现&#xff08;也称为 Java 8 的功能接口&#xff09;。 然而&…

Java项目:SSM汽车维修中心管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本系统包括普通用户和管理员两种角色&#xff1b; 用户角色包含以下功能&#xff1a; 用户信息管理,查看车辆信息,维修记录查看等功能。 管理…

ORB-SLAM2 --- Tracking::GrabImageMonocular函数解析

目录 1.函数作用 2.到这步之前我们做了什么 3.code 4.函数解析 1.函数作用 哈哈哈&#xff0c;这其实应该是这个专栏的第一篇文章&#xff0c;也没什么必要写&#xff0c;但是我怕大家看的时候对单目还没有初始化没有进入跟踪线程前面比较懵逼&#xff0c;所以我补了此内…