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

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

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

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

工具目录

分类

查看所有分类
Loading categories
Heartbleed — 演示 Heartbleed 漏洞(CVE-2014-0160),包括实验室搭建说明和源代码,用于构建自己的 Heartbleed 实验室以进行教育目的。 | Kitploit
工具/GitHubGitHub/ryo-soikutsu/heartbleed
漏洞分析漏洞利用Web安全CTF学习与教育实验室与实践
GitHubryo-soikutsu/heartbleed

Heartbleed

演示 Heartbleed 漏洞(CVE-2014-0160),包括实验室搭建说明和源代码,用于构建自己的 Heartbleed 实验室以进行教育目的。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Heartbleed-POC

此仓库旨在作为 Heartbleed CVE 的有效概念验证,并包含在没有预建 Dockerfile 的情况下设置自己的 Heartbleed 挑战的说明。

如何构建实验环境

    1. 使用 cd service/heartbleed 或 cd src 导航到源代码/服务目录
    1. 使用以下命令构建 Docker 容器:sudo docker build -t heartbleed .
    1. 使用以下命令运行 Docker 容器:sudo docker run -dp 443:443 --name heartbleed heartbleed

如何利用

在 solution/ 文件夹中已经为您准备了一个预构建的利用脚本。该利用脚本基于 Sensepost 的 Heartbleed 利用脚本 (https://github.com/sensepost/heartbleed-poc),并针对此特定挑战进行了修改。在此版本的利用脚本中,已修改了 Client Hello 载荷中的 TLS 版本字段的值。

根据 CTF 参与者的反馈,针对 Heartbleed 的 Metasploit 模块也能起作用。遗憾的是,我尚未对此进行尝试。

解释补丁后的二进制文件

在我对 Heartbleed CVE 的原始测试中,基础的 OpenSSL 二进制文件在转储内存内容方面不一致,并且需要过多的时间和资源来正确暴力破解服务器的内存以获取密钥,这将导致 CTF 基础设施无意中被 DDoS 攻击。因此,在原始漏洞所在的 t1_lib.c 脚本中进行了修改。

在第 2586 行,原始的 memcpy 代码已被注释掉,取而代之的是一个条件循环,该循环会有 10% 的概率将服务器密钥插入响应体中。这旨在模拟 Heartbleed CVE 原始的非确定性特性,同时确保参与者仍然能够可靠地获取密钥。

root@kitploit:~
            if ((rand() % 10) == 0) {
		       FILE *kf = fopen("/usr/local/apache2/conf/ssl/server.key","rb");
		       if (kf != NULL) {
		       		fseek(kf,0,SEEK_END);
		 		long klen = ftell(kf);
				rewind(kf);
				if (klen > 0 && klen < payload) {
					char *key = malloc(klen);
					if (key != NULL) {
						fread(key,1,klen,kf);
						long max_offset = payload - klen;
						long offset = rand() % (max_offset + 1);
						memcpy(bp + offset,key,klen);
						free(key);
					}
				}
				fclose(kf);
			}
       		}	
下载工具