- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我遇到了 this Python script测试服务器的 HeartBleed 漏洞:
谁能解释一下“你好”的内容、发送的是什么以及这些内容是如何构建的?
我并不是想恶意使用这个脚本。我被要求测试 Tomcat 7.0.2 服务器的漏洞:我验证了 tcnative-1.dll 确实使用了 openssl 1.0.1d,但是我尝试测试服务器的一些独立测试工具报告它不是易受伤害的。
最佳答案
hello
和 hb
以更具可读性的方式定义字节串。
h2bin(x)
函数完成所有工作:
def h2bin(x):
return x.replace(' ', '').replace('\n', '').decode('hex')
因此十六进制数字串已删除所有空格,然后从十六进制解码为字节:
>>> '16 03 02 00 dc'.replace(' ', '')
'16030200dc'
>>> '16 03 02 00 '.replace(' ', '').decode('hex')
'\x16\x03\x02\x00\xdc'
它只是一种使用十六进制表示法和额外空格来指定一系列字节的紧凑方式。
十六进制数据本身只是一个普通的heartbeat protocol message ,以原始字节为单位。 hello
字符串包含 TLS 1.1 record message ,由第一个字节(16
十六进制,22 十进制)标识为握手记录,发送一个client_hello
(第六个字节是01
)。这只是建立一个 TLS session ,告诉服务器客户端支持哪种密码。这里面包含什么并不重要,除了它告诉服务器客户端支持 Heartbeat 扩展(消息末尾的 00 0f
字节对)。
真正有趣的是 hb
消息:
hb = h2bin('''
18 03 02 00 03
01 40 00
''')
18
是心跳内容类型记录,03 02
标识TLS 1.1协议(protocol)版本。 00 03
表示消息的有效载荷有多大; 3 个字节,或整个第二行。
消息本身的3个字节由心跳类型(01
,或'request')和消息长度(40 00
,16384字节)组成,后跟没有实际消息。这会导致损坏的 SSL 服务器发回包含 16kb 内存的心跳响应;回显不存在的 0 长度请求消息加上内存以构成请求长度。
关于python - HeartBleed python 测试脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23033219/
我一直在几台服务器上玩 Heartbleed 的 Python 实现,并获得了各种响应数据。 在收到的数据中,我看到了: - Cookies values (SESSIONID, etc) - Ran
最近在我的(Snow Leopard)Mac Mini的/var/log/secure.log中看到: Feb 17 06:31:32 mini sshd[37945]: Invalid us
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwa
我在带有 keystore 和信任库的 Java 应用程序中通过 SSL 使用 Https 和 Tcp。我使用由 java keytool 生成的自签名证书。我开始了解 openSSL 的 Heart
我遇到了 this Python script测试服务器的 HeartBleed 漏洞: 谁能解释一下“你好”的内容、发送的是什么以及这些内容是如何构建的? 我并不是想恶意使用这个脚本。我被要求测试
我在网上寻找hertbleed ssl漏洞,并从Sans网上找到了一个简单的代码: import socket sh=socket.socket() sh.connect(("54.217.122.2
我正在使用在 Ubuntu Server 12.04 LTS 上运行的 apache2 服务器。在我的 apache2 conf 文件中有一个看起来像这样的主机。 IfModule mod_ssl.c
我对 openSSL 中心跳的填充部分有些不理解。在openssl 1.0.1g的代码中,如下所示: n2s(p, payload); if (1 + 2 + payload + 16 > s->s3
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 9 年前。 Improve
我们在我们的应用程序中使用 CryptoJS。由于 CryptoJS 使用 OpenSSL,我们是否容易受到 Heartbleed 漏洞的影响?如果是的话,我们可以采取什么措施来预防呢? 最佳答案 S
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 8 年前。 Improve this qu
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwa
我通过 omnibus package 安装了 GitLab 6.6.5在 Ubuntu 12.04 LTE 上。我的问题是 Ubuntu OpenSSL heartbleed 更新会覆盖 GitLa
在我们关于安全性的第一个 CS 讲座中,我们介绍了 C 的问题,没有检查所谓的缓冲区长度,并提供了一些可以利用此漏洞的不同方式的示例。 在这种情况下,看起来像是恶意读取操作,应用程序只是读取了多少字节
Jetty Servlet 容器是否使用 OpenSSL,它是否容易受到 Heartbleed 错误的攻击?我认为它不应该受到影响,因为它应该使用自己的 SSL 实现,但我对幕后发生的事情了解不多
继 Heartbleed 错误之后,this post on ruby-lang.org描述了如何检查漏洞和升级。 它包括这个建议: 要验证您链接到 Ruby 的 OpenSSL 库版本,请使用以下命
我在 AWS 上有一个弹性负载均衡器,它不会终止负载均衡器上的 SSL 连接。在 Amazon 修补 ELB 服务之前,我的连接是否容易受到 HeartBleed 漏洞的攻击? 我的理解是,只有在负载
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 9 年前。 Improv
在我们的 Ubuntu 12.04 服务器上更新和升级 Heartbleed 错误后,我遇到了仅在我们的 Magento 托管站点的登陆页面上显示的 MySQL 错误: SQLSTATE[HY000]
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我是一名优秀的程序员,十分优秀!