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

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

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

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

工具目录

分类

查看所有分类
Loading categories
heartbleed-lab — 用于研究 CVE-2014-0160(Heartbleed)及 TLS 心跳处理中成帧不一致性的教学实验室。 | Kitploit
工具/GitHubGitHub/victoriacfigueiredo/heartbleed-lab
漏洞分析网络安全密码学学习与教育二进制利用实验室与实践
GitHubvictoriacfigueiredo/heartbleed-lab

heartbleed-lab

用于研究 CVE-2014-0160(Heartbleed)及 TLS 心跳处理中成帧不一致性的教学实验室。

查看仓库
83个月前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Heartbleed 实验室

用于研究 Heartbleed 漏洞的教育实验室
(CVE-2014-0160)通过 Docker 内真实的易受攻击 OpenSSL 环境进行实验。

本项目使用 OpenSSL 1.0.1f 复现了一个易受攻击的 TLS 服务器,并实现了一个自定义的原始 TLS 心跳客户端,用于演示畸形心跳数据包如何触发内存泄露。

该实验室专为教育和研究目的而创建,尤其适用于研究:

  • TLS 记录帧结构
  • 心跳扩展解析
  • 内存泄露漏洞
  • 解析器信任失败
  • 跨协议的帧结构不一致
  • Heartbleed 与 HTTP 反同步漏洞之间的概念相似性

当前项目结构

root@kitploit:~
heartbleed-lab/
├── client/
│   ├── attacker.py
│   └── Dockerfile
│
├── vulnerable/
│   ├── Dockerfile
│   └── server/
│
├── fixed/
│   ├── Dockerfile
│   └── server/
│
├── docs/
│   └── diagrams/
│
├── notes/
│
├── docker-compose.yml
├── .gitignore
└── README.md

架构

root@kitploit:~
heartbleed-client
        ↓
 Docker internal network
        ↓
vulnerable-heartbleed

其中:

  • heartbleed-client 发送原始 TLS 记录
  • vulnerable-heartbleed 运行 OpenSSL 1.0.1f
  • 通信在隔离的 Docker 网络内进行

易受攻击环境

易受攻击的服务器使用:

  • Ubuntu 14.04
  • OpenSSL 1.0.1f(2014 年存在漏洞的发布版本)
  • openssl s_server

该环境特意配置为复现原始 Heartbleed 行为。


已实现功能

易受攻击的 TLS 服务器

  • 真实构建的 OpenSSL 1.0.1f
  • 支持 TLS 握手
  • 已启用心跳扩展
  • Docker 隔离环境

原始 TLS 心跳客户端

该客户端的实现:

  • 创建原始 TCP 套接字
  • 发送手工构造的 TLS 记录
  • 手动执行 TLS ClientHello
  • 发送畸形心跳请求
  • 接收泄露的内存响应

Heartbleed 演示

当前实现通过发送一个畸形心跳数据包来复现原始 Heartbleed 行为,其中:

root@kitploit:~
payload_length > real payload size

示例:

root@kitploit:~
Declared payload length: 0x4000
Real payload: 1 byte ("A")

易受攻击的服务器错误地信任声明长度,并返回超出实际载荷边界的内存内容。


运行实验室

构建并启动容器

root@kitploit:~
sudo COMPOSE_HTTP_TIMEOUT=300 docker-compose up --build

访问客户端容器

root@kitploit:~
sudo docker exec -it heartbleed-client bash

运行 Heartbleed 概念验证

root@kitploit:~
python attacker.py

成功输出示例

root@kitploit:~
[+] Sending malformed heartbeat
[+] Got TLS record: type=24 version=(3, 2) length=16384
[!!!] Heartbeat response received

这表明易受攻击的服务器返回了超出合法心跳载荷范围的内存内容。


研究目标

本项目探讨以下概念之间的关系:

  • TLS 帧结构不一致
  • 解析器信任失败
  • 边界混淆
  • 畸形长度字段
  • 协议反同步概念

本实验室的主要研究兴趣之一是比较:

root@kitploit:~
HTTP Request Smuggling
vs
TLS Heartbeat Parsing Failures

从以下角度:

  • 帧结构不一致
  • 解析器行为
  • 元数据信任假设

未来工作

计划中的后续步骤包括:

  • 改进泄露可视化
  • 内存泄露解析辅助工具
  • 与已修补的 OpenSSL 版本进行对比
  • 中间 TLS 代理实验
  • 自动化心跳变异测试

参考资料

  • CVE-2014-0160
  • RFC 6520(TLS 心跳扩展)

免责声明

本仓库仅用于:

  • 教育
  • 学术研究
  • 防御性安全研究
下载工具