Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
heartbleed-lab — 自包含的 Heartbleed(CVE-2014-0160)实验环境:在 Docker 中构建存在漏洞的 OpenSSL 1.0.1f,并包含一个用于授权测试的 Python 内存泄漏 PoC。 | Kitploit
工具/GitHubGitHub/ayushsinha322/heartbleed-lab
内存取证漏洞分析漏洞利用Web安全密码学渗透测试学习与教育实验室与实践
GitHubayushsinha322/heartbleed-lab

heartbleed-lab

自包含的 Heartbleed(CVE-2014-0160)实验环境:在 Docker 中构建存在漏洞的 OpenSSL 1.0.1f,并包含一个用于授权测试的 Python 内存泄漏 PoC。

查看仓库
10小时前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

heartbleed-lab

一个用于 CVE-2014-0160 (Heartbleed) 的小型、自包含实验环境 —— 即 OpenSSL 1.0.1–1.0.1f 中的 TLS 心跳 越界读取漏洞。它在一个一次性容器中,从固定校验和的上游源码构建真正存在漏洞的 OpenSSL, 将其作为服务运行,并包含一个概念验证客户端,可从其中泄露实时进程内存。

仅限授权实验环境使用。 此处所有内容均针对 localhost / 你自己运行的容器。 不要将 PoC 指向任何你不拥有且未获得明确测试许可的主机 —— 在大多数司法管辖区, 未经授权对在线系统使用 Heartbleed 属于犯罪行为。Heartbleed 已在 OpenSSL 1.0.1g (2014 年 4 月)中修复;本实验环境的存在是为了理解该漏洞,而非攻击任何人。

内容概览

路径说明
Dockerfile从校验和固定的上游源码构建启用了心跳功能的 OpenSSL 1.0.1f,生成一次性证书,并运行 openssl s_server —— 即真正存在漏洞的服务器。
exploit/heartbleed.pyPython 3 PoC。发送畸形心跳包,并对服务器泄露回来的内存进行十六进制转储。若目标存在漏洞则退出码为 0,若已修补则为 1。
demo/server.py纯 Python 的简单模拟 —— 不涉及 OpenSSL。它盲目回显 64 KB 数据,不会泄露任何真实内容;仅用于展示越界读取回复的形态。
demo/gen-cert.sh为演示重新生成一次性的 localhost 证书。

未提交任何私钥 —— 证书在本地生成(参见 .gitignore)。

运行真实环境

root@kitploit:~
# 1. 构建并启动存在漏洞的服务器(需要 Docker)
docker build -t heartbleed-lab .
docker run --rm -p 8443:8443 heartbleed-lab

# 2. 在另一个终端中,对其进行泄露
python3 exploit/heartbleed.py 127.0.0.1 -p 8443

存在漏洞的服务器会打印泄露内存的十六进制转储。多次重新运行 PoC —— 每次请求都会返回堆内存的不同片段,这正是 Heartbleed 如此危险的原因: 会话 cookie、表单数据以及私钥材料都存放在那里。

模拟环境(可选)

root@kitploit:~
cd demo
./gen-cert.sh
python3 server.py

这不是该 CVE —— 它只是一个教学用的桩程序,始终回复 64 KB 的 A。

漏洞原理

TLS 心跳请求携带一个有效载荷以及一个长度字段。存在漏洞的 OpenSSL 信任攻击者提供的长度,并从请求缓冲区中 memcpy 相应数量的字节到响应中 —— 但请求中从未包含那么多数据,因此复制操作会越过请求边界,读取到相邻进程内存中的任意内容。 1.0.1g 中的修复是一个边界检查:if (1 + 2 + payload + 16 > s->s3->rrec.length) return 0; —— 静默丢弃任何声称的数据量超过实际发送量的心跳包。

修复措施

  • 升级到 OpenSSL ≥ 1.0.1g,或使用 -DOPENSSL_NO_HEARTBEATS 进行构建。
  • 在暴露之后,应假定私钥已泄露:重新签发证书并吊销旧证书, 然后轮换所有经过该服务器的会话令牌或凭据。
下载工具