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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-39973-PoC — CVE-2026-39973(apktool)的概念验证(构建器) | Kitploit
工具/GitHubGitHub/frawlaboy/cve-2026-39973-poc
漏洞分析漏洞利用Web应用程序漏洞利用论文与研究学习与教育
GitHubfrawlaboy/cve-2026-39973-poc

CVE-2026-39973-PoC

CVE-2026-39973(apktool)的概念验证(构建器)

查看仓库
13个月前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-39973-PoC

这是一个针对 CVE-2026-39973 的小型 C# APK 文件构建器。

致谢

  • OnlyToxi - 在路径方面提供帮助(后续还将继续帮助)以及情感支持。
  • iBotPeaches/Apktool - 文档与解析。

免责声明

  • 这是一个概念验证,仅用于教育目的!
  • 在编写此代码或本文档时,未使用 AI(除了一些关于序列化的小问题)。
  • 我的知识有限。这是我的第一个 CVE PoC。文档可能存在错误或不完整之处。
  • 代码可能难以阅读,因为我当时很匆忙且睡眠不足(抱歉)。

CVE-2026-39973

CVE-2026-39973 是 GitHub 仓库 iBotPeaches/Apktool 中的一个路径遍历漏洞,影响版本 3.0.1。

该漏洞允许攻击者创建自己的资源,并在条目的类型中注入 ..\ 序列,从而使威胁行为者能够将任意文件写入 ~/.bashrc 或 Windows 启动路径。

安全回归

此漏洞源于提交 e10a045(PR )中的安全回归,该提交从 中移除了 。

#4041
ResFileDecoder.java
BrutIO.detectPossibleDirectoryTraversal()

修改前的 ResFileDecoder.java#L103-L109:

root@kitploit:~
String outResPath = entry.getTypeName() + entry.getConfig().getQualifiers() + "/" + entry.getName();
if (BrutIO.detectPossibleDirectoryTraversal(outResPath)) {
    LOGGER.warning("Potentially malicious file path: " + outResPath + ", using instead: " + inResPath);
    outResPath = inResPath;
} else if (!ext.isEmpty()) {
    outResPath += "." + ext;
}

修改后的 ResFileDecoder.java#L103-L104:

root@kitploit:~
String outResPath = entry.getTypeName() + entry.getConfig().getQualifiers() + "/" + entry.getName()
    + (ext.isEmpty() ? "" : "." + ext);

该提交移除了对整个输出路径的一个被判定为“无用”的检查,因为 entry.name 已经事先被检查过(在 ResEntrySpec 构造函数中)。

作者忘记了,通过构造我们自己的恶意 resources.arsc,条目的类型名称可能会受到路径遍历的影响。

Resources.arsc

resources.arsc 是一个包含资源数据、路径、类型名称等信息的文件。 它存储了我们修改类型名称或构造 resource.arsc 文件以利用 Apktool 所需的一切。 尽管它很常见,但我只找到了简陋但令人满意的文档关于序列化的说明。

此时,强烈建议阅读 apktool 的文档。

我直接以 Apktool 为基础开始研究,因为我需要专门为此应用程序构建一个 resources.arsc 文件。

我从互联网上下载了一个随机的 APK 文件,并用 7zip 打开它。然后我提取了 resources.arsc 文件,开始结合 Apktool 的解析器代码研究数据结构。 接着,我编写了一个小型 C# 构建器来生成 resources.arsc 文件,写入一个 ResTable 和一个 ResPackage,其中包含一个带有 ..\ 序列和 Windows 启动文件夹路径的 ResType,它还有一个条目,即载荷文件。

下载工具