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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2022-0778-POC — 针对 CVE-2022-0778 的远程概念验证,通过向 TLS 握手注入精心构造的证书来触发 OpenSSL BN_mod_sqrt() 拒绝服务漏洞。 | Kitploit
工具/GitHubGitHub/jkakavas/cve-2022-0778-poc
漏洞分析漏洞利用模糊测试渗透测试
GitHubjkakavas/cve-2022-0778-poc

CVE-2022-0778-POC

针对 CVE-2022-0778 的远程概念验证,通过向 TLS 握手注入精心构造的证书来触发 OpenSSL BN_mod_sqrt() 拒绝服务漏洞。

查看仓库
113244年前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

一个针对 CVE-2022-0778 的简单远程触发 POC

为什么

在尝试验证我们这边的服务器实现是否受到 CVE-2022-0778 影响时,发现远程验证极其繁琐。虽然关于如何构造恶意证书来触发 BN_nod_sqrt() 中的解析漏洞的教程早已存在,但主要问题在于大多数客户端实现会尝试解析客户端证书以便在 TLS 握手中使用它。这反过来意味着:

  • 如果实现存在漏洞,该漏洞会被触发,客户端将占用 100% CPU 并停滞。
  • 如果实现不存在漏洞,则无法解析证书,客户端会理所当然地退出。

是什么

实际需要的是能够在 TLS 握手中注入一条消息,从而替换客户端在响应 CertificateRequest 消息时发送给服务器的 Certificate 消息内容。

如何实现

本工具依赖于 tlslite-ng,并重写了 TLSConnection._clientKeyExchange 方法,以便在与可能易受攻击的服务器进行 TLS 握手时:

  1. 像往常一样发送 ClientHello 消息。
  2. 接收 ServerHelloMessage,并检查其中是否包含 CertificateRequest。
  3. 如果包含,构造一个任意 Certificate 消息,从磁盘加载 DER 编码的恶意证书。
  4. 将该恶意消息发送给服务器,期望服务器解析它,从而可能触发 CVE-2022-0778。

crafted.crt 是根据 https://github.com/drago-96/CVE-2022-0778#using-asn1-templates 中的说明创建的,如果需要,可以自行重新创建。

使用方法

root@kitploit:~
usage: main.py [-h] [--server SERVER] [--port PORT]

Parameters

optional arguments:
  -h, --help       show this help message and exit
  --server SERVER  Name of the server to connect for the TLS handshake,
                   defaults to "localhost"
  --port PORT      Port where server listens for TLS connections, defaults to
                   "443"
下载工具