使用服务器 https://www.cloudflarechallenge.com/ 来尝试此攻击的一个 Heartbleed 攻击示例。
首先,我读过的关于这个主题的两个最佳解释:
该漏洞利用首先向服务器 cloudflarechallenge.com 发送握手请求,以通过 TLS 建立安全连接。然后函数 hit_hb(s) 发送一个典型的心跳请求:
hb = h2bin('''
18 03 02 00 03
01 40 00
''')
我们等待服务器响应,然后解包 TLS 数据包的前 5 个字节(头部)(content_type, version, length) = struct.unpack('>BHH', hdr)
之后,我们根据从头部获得的长度读取请求的其余部分。
数据存储在文件 òut.txt 中。
注意:该攻击可以在握手阶段进行,即在加密之前;但为简单起见,此漏洞利用在握手之后开始。
你的电脑上必须安装 python 2.7.*(未在 python 3 上测试)
python2 heartbleed-exploit.py www.cloudflarechallenge.com
然后你会看到类似这样的内容:

然后你可以检查文件 out.txt,看看服务器内存中包含的 2^14 (40 00) 字节数据,而不是 4 字节!
你可以多次运行该漏洞利用,文件中会出现不同的结果。
/!\ 警告 每次执行该漏洞利用后,该文件都会被覆盖。
##资源和致谢