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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2021-21017 — CVE-2021-21017的概念验证漏洞利用程序,该漏洞为Adobe Reader中的类型混淆,导致越界读取和堆溢出,附带技术分析与检测指南。 | Kitploit
工具/GitHubGitHub/tzwlhack/cve-2021-21017
内存取证漏洞分析漏洞利用Web应用程序漏洞利用二进制分析
GitHubtzwlhack/cve-2021-21017

CVE-2021-21017

CVE-2021-21017的概念验证漏洞利用程序,该漏洞为Adobe Reader中的类型混淆,导致越界读取和堆溢出,附带技术分析与检测指南。

查看仓库
4年前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2021-21017

又一个 Adobe Reader 字节序标记漏洞 :)

root@kitploit:~
# IA32 插件,版本 2020.013.20074。
char * __cdecl FUN_2581894c(char *base_url,LPCSTR rel_url)
{
  ............................................................
  ............................................................
  if ((base_url != (char *)0x0) && (rel_url != (LPCSTR)0x0)) {
    if ((*base_url == -2) && (base_url[1] == -1)) {
      iVar6 = bytes_len(base_url);
      pcVar7 = base_url + iVar6;
      pcVar8 = rel_url + 2;
      do {
        do {
          cVar3 = *pcVar8;
          pcVar1 = pcVar8 + 2;
          *pcVar7 = cVar3;
          pcVar2 = pcVar7 + 2;
          cVar4 = pcVar8[1];
          pcVar7[1] = cVar4;
          pcVar7 = pcVar2;
          pcVar8 = pcVar1;
        } while (cVar3 != '\0');
      } while (cVar4 != '\0');
    }
    else {
      lstrcatA(base_url,rel_url);
    }
    return base_url;
  }
  .............................................................
  .............................................................
}

当基于 PDF 文档的 baseURL 构建相对于它的绝对 URL,并用于诸如 app.launchURL、document.submitForm 或 app.media.createPlayer 等 API 时, 如果 baseURL 看起来是一个 UTF-16BE 字符串,那么在执行拼接时,相对 URL 也会被当作 UTF-16BE 字符串处理,尽管它实际上是一个 ANSI 字符串。

这可能会导致越界读取访问。另一方面,在分配内存以容纳目标缓冲区时,相对 URL 被“测量”为 ANSI 字符串。当然,如果发生越界读取,这显然是不够的。(字符串加上 NULL 终止符填满整个堆块)。

这意味着什么?

类型混淆 => 越界读取 => 堆溢出 => 全面爆发!

附带的 PoC

它通常会导致崩溃,偶尔会将 ArrayBuffer 的 byteLength 覆盖为 0xFF。

如有疑问,欢迎通过 Twitter 联系我:https://twitter.com/Zeusb0x

检测

PDF 文档目录会有一个 URI 条目,其中包含对字典对象的间接引用。该字典对象又有一个 Base 条目,即实际的 baseURL。它很可能以十六进制表示法呈现,并以字符 \xFE\xFF 开头。(参见 PoC)。幸运的是,这是在普通、非特权上下文中更改文档 baseURL 的唯一方法。尝试通过 JavaScript 执行此操作将抛出安全异常。

下载工具