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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2021-21017 — Adobe Reader 类型混淆导致堆溢出的概念验证漏洞利用,包含详细的根因分析与检测指南。 | Kitploit
工具/GitHubGitHub/zeusbox/cve-2021-21017
内存取证漏洞分析漏洞利用Web应用程序漏洞利用模糊测试二进制利用
GitHubzeusbox/cve-2021-21017

CVE-2021-21017

Adobe Reader 类型混淆导致堆溢出的概念验证漏洞利用,包含详细的根因分析与检测指南。

查看仓库
441235年前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2021-21017

又一个 Adobe Reader 字节顺序标记错误 :)

root@kitploit:~
# IA32 plugin, ver. 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 构建绝对 URL,以供类似 app.launchURL、document.submitForm 或 app.media.createPlayer 等 API 使用时,如果 baseURL 看起来是一个 UTF-16BE 字符串,则在执行拼接时,相对 URL 也会被视为 UTF-16BE 字符串,尽管它实际上是一个 ANSI 字符串。

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

这意味着什么?

类型混淆 => 越界读取 => 堆溢出 => FULL BUKAKE!

附上PoC

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

如有问题,请随时在 Twitter 上联系我:https://twitter.com/Zeusb0x

检测

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

下载工具