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

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

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

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

工具目录

分类

查看所有分类
Loading categories
NotEnough — 该工具计算 CVE-2023-4863 中棘手的规范霍夫曼直方图。 | Kitploit
工具/GitHubGitHub/caoweiquan322/notenough
内存取证漏洞分析漏洞利用逆向工程模糊测试二进制利用
GitHubcaoweiquan322/notenough

NotEnough

该工具计算 CVE-2023-4863 中棘手的规范霍夫曼直方图。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Huffman表构建工具

此工具用于计算棘手的规范哈夫曼直方图,该直方图能够触发易受攻击的libwebp库(即 libwebp <= 1.3.1)的越界(OOB)写入。此漏洞编号为 CVE-2023-4863 或 CVE-2023-41064。我们最多可以溢出预分配的哈夫曼表 132 个条目。

原理在于,libwebp 假设每个 webp 图像中包含的哈夫曼直方图格式良好。也就是说,解码树必须是一棵完全树。基于这一假设,libwebp 团队利用 enough 工具来估算构建解码哈夫曼表(一种用于快速解码规范哈夫曼码的强大结构)所需的最大内存大小。然而,攻击者能够构造一棵不完全树来突破此内存限制,从而溢出预分配的内存。

此构建工具通过修改 enough 并添加不完全树支持而创建。

使用以下命令编译代码:

root@kitploit:~
gcc -o NotEnough ./main.c

对于一个包含 40 个符号、8 位根表且最大深度为 15 的哈夫曼表,表条目的最大数量为 410。然而,通过构造一棵不完全树,表条目数量可能达到 542。尝试以下命令:

root@kitploit:~
./NotEnough 40 8 15

此类树的一个示例如下:

坏树

注意,为简洁起见,我们剪去了没有叶子的分支。

然后,您可以使用 craft 工具构建一个有效的 webp 图像来溢出 dwebp 工具(版本 <= 1.3.1)。将哈夫曼码直方图 code_lengths_counts[4] 相应地更改为 {0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 5, 9, 17, 1, 1, 3},然后重新构建该工具:

root@kitploit:~
vim craft.c    # 相应地更改哈夫曼码直方图,例如在第 495 行附近。
gcc -o craft craft.c
./craft -o bad_542.webp

请查阅 @benhawkes 的博客 以更好地了解 CVE-2023-4863。

下载工具