- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我希望能够通过 TLS 测试 POODLE 漏洞。
已经有几种方法可以做到这一点,例如 Qualys SSLLabs,但它限制太多(互联网上只有服务器的 TCP 端口 443 可用)。还有这个链接,但我在测试时得到了很多误报/否定:http://www.exploresecurity.com/testing-for-poodle_tls-manually/
所以现在我正在尝试修改 OpenSSL 1.0.2d 的 TLS 实现,以便能够发送无效数据包(使用 openssl s_client ...)并查看服务器的行为。
即使我不太熟悉 C,我也可以在 crypto/evp/e_aes_cbc_hmac_sha1.c
的 OpenSSL 中找到实现 AES-CBC-SHA 填充的有趣代码(根据 RFC 2246)第 518 行:
/* pad the payload|hmac */
plen += SHA_DIGEST_LENGTH;
for (l = len - plen - 1; plen < len; plen++)
out[plen] = l;
我将其修改成这样,以便根据 RFC 更改第一个填充字节以使其不正确:
/* pad the payload|hmac */
plen += SHA_DIGEST_LENGTH;
for (l = len - plen - 1; plen < len; plen++) {
if (plen == len - l - 1)
out[plen] = (l + 1) % 256;
else
out[plen] = l;
}
然后编译测试:
./config
make
./apps/openssl s_client -connect www.google.com:443 -servername www.google.com -tls1 -cipher AES128-SHA
我可以连接并发出一个得到响应的 HTTP 请求...
所以我的问题是:这不是我修改的好文件还是其他东西?
非常感谢您的帮助。
最佳答案
我有同样的问题,回答here .基本上,您需要修改 ssl3_enc 函数(在 s3_enc.c 文件中)并替换
memset(&rec->input[rec->length], 0, i);
与
for(size_t j = 0; j < i; ++j) {
rec->input[rec->length + j] = rand() % 256;
}
而且对于 block 对齐良好且没有填充的情况,最好增加填充大小。为此,只需添加:
i += bs;
就在这些行之前
/* we need to add 'i-1' padding bytes */
l += i;
关于c - 如何通过 TLS 测试 POODLE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31721567/
我有一个在 Microsoft Azure 上运行的网站,并为此网站启用了 SSL。在 poodle 漏洞问题发生后,我刚刚检查了我的域名 https://www.poodlescan.com/并发现
由于我的工作,我在 POODLE 漏洞公布后的几分钟内就知道了。我们当然在所有相关的地方禁用了 SSL 3.0。但是,我仍然不太了解该漏洞的工作原理。 我在这里阅读了谷歌研究人员发表的文章:https
我有几台运行 Tomcat 7.0 并带有 APR+SSL 连接器的生产服务器,由于最近的 POODLE 攻击,我被要求在其中一些服务器中完全禁用 SSLv3。我挖掘了 Tomcat Connecto
关于 POODLE 漏洞,如果我理解正确的话,它需要一个客户端在无法与使用服务器通告的更高版本协议(protocol)的服务器建立安全通道时自动将 TLS 协议(protocol)降级为 SSLv3。
多年来,我一直在 ruby 1.8 上使用旧版本的 active_merchant (v1.8) 向 SagePay 支付网上商店的款项,三天前它停止工作了。我查看了日志并发现了这些错误: Ope
基于原始研究中的建议: https://www.openssl.org/~bodo/ssl-poodle.pdf 如果中间人 (MITM) 拦截通信,假设客户端使用密码的“Hello”以明文方式传播,
在我的应用程序中,我使用的是 WCF 服务,这些服务使用 NetTcpBindings 并针对消息和传输安全性进行了配置(保护级别设置为 EncryptAndSign)。这些服务在系统中作为 Wind
我希望能够通过 TLS 测试 POODLE 漏洞。 已经有几种方法可以做到这一点,例如 Qualys SSLLabs,但它限制太多(互联网上只有服务器的 TCP 端口 443 可用)。还有这个链接,但
我正在运行带有 openssl-0.9.8e-22.el5_11 的 centos 5.7,它受到 poodle 漏洞的影响。因此,为了解决这个问题,我将我的 openssl 版本升级到了 opens
我们在 Jboss 7AS 中面临 POODLE 漏洞,我能够为同一问题提供修复程序。 通过将 protocol="TLSv1,TLSv1.1,TLSv1.2" 属性添加到 standalone.xm
所以,我有 JBoss 5.1.0 GA,我在此处阅读了如何需要禁用 SSLv3: https://access.redhat.com/solutions/1232233 这里没有提到的是,我还需要摆
我正在使用 Rails 3、ActiveMerchant 1.5.1 gem 和 PayPal express。由于最近我无法通过 PayPal 进行付款,继续收到此错误 OpenSSL::SSL::
我需要制作一个 bash 脚本,根据它扫描的地址给我一个 true 或 false 列表。现在我有这个简单的脚本 #!/bin/bash input="/root/file1" input2="/ro
为了保护我的 Thrift 服务器免受最近发现的 SSLv3 vulnerability ,我明确说明应该为服务器套接字启用哪些协议(protocol): TServerSocket socket =
我很高兴看到在 Julia 中你可以输入许多数学符号和希腊字母等等。更重要的是,我看到你可以通过 \_x 输入下标和上标字母和 \^x .有趣的是,您可以输入一些上标大写字母,例如 \^L ,但您不能
如您所知,新的 poodle在城里,女巫叫声得到了Twitter, Cloudflare放弃对 SSL3 的支持。 Indy(TidHttp) 10.6.0.0 恢复了这个不错的异常: EidOssl
在 PayPal 进行更改以应对 POODLE 漏洞 (link) 后,PayPal IPN 消息停止通过。 我们正在运行 Java 1.6 和 Tomcat 6。 最佳答案 PayPal 调查了这个
我已将我们的 Tomcat 7 (jdk 7) 服务器配置为仅接受 TLS(1、1.1 和 1.2)协议(protocol),以解决 POODLE 问题。我还禁用了所有 DH 密码套件以实现 PCI
我想知道从 SSL 3.0 到 TLS 1.0 的哪些更改完全修复了 POODLE 攻击。此攻击的基础是消息 block M1||MAC||PAD,因此整个 block 用于 MAC 和填充。 我有一
全部, 我正在修复代码中的安全漏洞问题(参见下面的链接)。 http://googleonlinesecurity.blogspot.com/2014/10/this-poodle-bites-exp
我是一名优秀的程序员,十分优秀!