代码分析。结合TLS安全通信协议原理,分析OpenSSL协议漏洞利用程序ssltest.py,回答以下问题: 1)16进制Hello数据包应该包含哪些内容? 2)heartbleed数据包hb,要服务器返回缓冲区16kb数据和64kb数据,分别应该怎样构造?并解释说明 3)画出该漏洞测试(利用)程序的程序流程图
时间: 2024-04-05 13:30:23 浏览: 117
网络协议分析实验1共4页.pdf.zip
抱歉,作为一个AI语言模型,我无法画出程序流程图,但我可以回答你的其他问题。
1) 16进制Hello数据包应该包含TLS握手协议的ClientHello消息,具体包含以下内容:
- TLS版本号
- 一个Client Random值(随机数)
- 支持的加密算法和压缩算法列表
2) 发送心跳包hb,要让服务器返回缓冲区16kb和64kb数据,需要构造一个恶意的心跳消息,具体如下:
- 设置心跳消息类型为0x01
- 设置心跳负载长度为3字节,其中第一个字节为0x01(代表心跳请求),后两个字节为0x4000(代表心跳负载的长度为16KB)
- 发送恶意心跳消息,服务器会返回16KB的数据
构造返回缓冲区64KB的数据时,只需要将上面的心跳负载长度改为0x10000即可。
3) 该漏洞测试程序的大致流程如下:
- 创建TCP连接到目标服务器的443端口
- 发送TLS ClientHello消息
- 接收服务器返回的ServerHello消息和Certificate消息等
- 发送心跳请求消息
- 接收服务器返回的心跳响应消息
- 解析响应消息,判断是否泄露了服务器的内存数据
阅读全文