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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2020-1971 — CVE-2020-1971 自动扫描和远程漏洞利用脚本。自动本地扫描和修补脚本。 | Kitploit
工具/GitHubGitHub/mbhudson/cve-2020-1971
漏洞分析漏洞利用脚本与自动化密码学学习与教育
GitHubmbhudson/cve-2020-1971

CVE-2020-1971

CVE-2020-1971 自动扫描和远程漏洞利用脚本。自动本地扫描和修补脚本。

查看仓库
7235年前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2020-1971

CVE-2020-1971 自动扫描与远程漏洞利用脚本。自动本地扫描与补丁脚本。

当前开发进度

  • 已修补的 OpenSSL 1.1.1i 源代码
  • 从源代码安装/更新 .deb 脚本 开发中(下午5:38) 已完成(下午5:50)
  • 从源代码安装/更新(Windows) 开发中(下午6:06) 已完成(下午6:40)
  • 自解压 EXE 文件 下载地址: 32位/64位
  • 自动扫描漏洞/远程漏洞利用脚本(本地)
  • 自动扫描漏洞/远程漏洞利用脚本(远程)

2020年12月9日

下午5:03

我正在开发脚本,希望今晚能把所有内容放出。目前此仓库只包含修补后的 OpenSSL 1.1.1i 源代码。我正在编写安装/更新补丁脚本。


下午5:50

已上传 Debian/Ubuntu Linux 安装脚本。安装说明请见 "Linux 安装"


下午6:40

  1. 从源代码安装 Windows 的说明请见 从源代码安装 Windows
  2. 已上传 32/64 位自安装程序 下载地址: 32位/64位

漏洞描述

X.509 GeneralName 类型是一种用于表示不同类型名称的通用类型。其中一种名称类型称为 EDIPartyName。OpenSSL 提供了一个函数 GENERAL_NAME_cmp,用于比较两个 GENERAL_NAME 实例是否相等。当两个 GENERAL_NAME 都包含 EDIPARTYNAME 时,该函数的行为不正确。可能发生空指针解引用和崩溃,导致拒绝服务攻击。

OpenSSL 自身使用 GENERAL_NAME_cmp 函数有两个目的

  1. 比较可用 CRL 与嵌入在 X509 证书中的 CRL 分发点名称

  2. 验证时间戳响应令牌签名者是否与时间戳机构名称匹配(通过 API 函数 TS_RESP_verify_response 和 TS_RESP_verify_token 暴露)

如果攻击者可以控制两个被比较的项目,则可能触发崩溃。例如,攻击者可以诱骗客户端或服务器检查恶意证书与恶意 CRL,从而触发。

注意,某些应用程序会根据证书中嵌入的 URL 自动下载 CRL。此检查发生在验证证书和 CRL 上的签名之前。OpenSSL 的 s_server、s_client 和 verify 工具支持 "-crl_download" 选项,该选项实现自动 CRL 下载,已证明此攻击可针对这些工具进行。

注意,一个不相关的错误导致受影响的 OpenSSL 版本无法解析或构造正确的 EDIPARTYNAME 编码。但是,可以构造一个畸形的 EDIPARTYNAME,OpenSSL 的解析器会接受它,从而触发此攻击。

所有 OpenSSL 1.1.1 和 1.0.2 版本都受此问题影响。其他 OpenSSL 版本已停止支持且未检查。已在 OpenSSL 1.1.1i(受影响范围 1.1.1-1.1.1h)中修复。已在 OpenSSL 1.0.2x(受影响范围 1.0.2-1.0.2w)中修复。


Linux 安装

root@kitploit:~
sudo chmod +x Linux_Patched_Install_From_Source_Script

运行:

root@kitploit:~
sudo ./Linux_Patched_Install_From_Source_Script

从源代码安装 Windows

“原生”OpenSSL 在运行时直接使用 Windows API。 要构建原生 OpenSSL,可以使用以下任一方式:

Microsoft Visual C++ (MSVC) C 编译器(命令行)

或

MinGW 交叉编译器 在类 GNU 开发环境 MSYS2 上运行 或在 Linux 或 Cygwin 上运行

“托管”OpenSSL 依赖于外部的 POSIX 兼容层进行构建(使用 GNU/Unix shell、编译器和工具)和运行时。 对于此选项,可以使用 Cygwin。

Visual C++ 原生构建,即 VC-*

要求详情

除了 INSTALL.md 中列出的要求和说明外,还需要以下内容:

  • Perl。 Strawberry Perl,可从 http://strawberryperl.com/ 获取 请阅读 NOTES.PERL 了解更多信息,包括 CPAN 的使用。 替代方案是 ActiveState Perl,https://www.activestate.com/ActivePerl 可能需要通过 https://platform.activestate.com/ActiveState 显式构建 Perl 模块 Win32/Console.pm 并下载。

  • Microsoft Visual C 编译器。

  • Netwide Assembler (NASM),可从 https://www.nasm.us 获取 注意,NASM 是唯一支持的汇编器。

快速开始

  1. 安装 Perl

  2. 安装 NASM

  3. 确保 Perl 和 NASM 都在 %PATH% 中

  4. 使用具有管理员权限的 Visual Studio 开发者命令提示符, 根据目标架构选择变体。 或运行 "cmd" 并执行 "vcvarsall.bat" 及其选项 x86、 x86_amd64、x86_arm、x86_arm64、amd64、amd64_x86、amd64_arm 或 amd64_arm64。 这将设置 nmake.exe、cl.exe 等所需的环境变量。 另请参阅 https://docs.microsoft.com/cpp/build/building-on-the-command-line

  5. 在 OpenSSL 源代码目录的根目录下输入 perl Configure VC-WIN32 如果你需要 32 位 OpenSSL 或 perl Configure VC-WIN64A 如果你需要 64 位 OpenSSL 或 perl Configure 让 Configure 自行识别平台

  6. nmake

  7. nmake test

  8. nmake install

完整的安装说明,或如果在此过程中任何一步出现问题,请查看 INSTALL.md 文件。

安装目录

默认安装目录由环境变量推导得出。

对于 VC-WIN32,使用以下默认值:

root@kitploit:~
 PREFIX:      %ProgramFiles(86)%\OpenSSL
 OPENSSLDIR:  %CommonProgramFiles(86)%\SSL

对于 VC-WIN64,使用以下默认值:

root@kitploit:~
 PREFIX:      %ProgramW6432%\OpenSSL
 OPENSSLDIR:  %CommonProgramW6432%\SSL

如果这些环境变量不存在(例如在纯 Win32 安装中),则使用以下备用值:

root@kitploit:~
 PREFIX:      %ProgramFiles%\OpenSSL
 OPENSSLDIR:  %CommonProgramFiles%\SSL

同时注意,这些目录通常是写保护的,即使你的账户在管理员组中。要解决此问题,请右键单击命令提示符并选择“以管理员身份运行”,然后再运行 'nmake install'。另一种解决方案当然是在配置时使用 --prefix 和 --openssldir 选择不同的目录集。

关于通用 Windows 平台构建(即 VC-*-UWP)的特殊说明

  • UWP 目标只支持构建静态和动态库。

  • 编译前应定义平台类型为 "uwp",并通过 "vcvarsall.bat" 指定目标架构。例如,要构建 "arm64" 版本,应运行 "vcvarsall.bat x86_arm64 uwp"。


参考资料

参考资料为方便读者区分不同漏洞而提供。

https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=2154ab83e14ede338d2ede9bbe5cdfce5d5a6c9eURL

https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=2154ab83e14ede338d2ede9bbe5cdfce5d5a6c9eCONFIRM

https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=f960d81215ebf3f65e03d4d5d857fb9b666d6920URL

https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=f960d81215ebf3f65e03d4d5d857fb9b666d6920CONFIRM

https://www.openssl.org/news/secadv/20201208.txtURL:https://www.openssl.org/news/secadv/20201208.txtDEBIAN:DSA-4807URL

https://www.debian.org/security/2020/dsa-4807FREEBSD:FreeBSD-SA-20:33URL

https://security.FreeBSD.org/advisories/FreeBSD-SA-20:33.openssl.asc


下载工具