sepkascurty-cpu/CVE-2022-31630---Proof-of-Concept-Exploit-untuk-PHP-7.4.33

GitHub: sepkascurty-cpu/CVE-2022-31630---Proof-of-Concept-Exploit-untuk-PHP-7.4.33

针对 PHP GD 扩展 imageloadfont() 函数越界读取漏洞(CVE-2022-31630)的概念验证代码,用于安全研究和漏洞复现。

Stars: 1 | Forks: 0

# CVE-2022-31630 - PHP 7.4.33 概念验证漏洞利用 警告:此代码仅用于在隔离的实验室环境中进行教育和测试目的。在未经许可的情况下在其他系统上使用是非法且不负责任的行为。 ## 📋 描述 CVE-2022-31630 是 PHP GD 扩展中的一个越界 (Out-of-Bounds, OOB) 读取漏洞,具体位于 `imageloadfont()` 函数中。该漏洞允许能够控制由 PHP 应用程序加载的字体文件的攻击者读取已分配缓冲区边界之外的数据,这可能导致: · 拒绝服务(崩溃) · 信息泄露(泄露敏感内存内容) 此漏洞影响以下 PHP 版本: · 7.4.x 7.4.33 之前的版本 · 8.0.x 8.0.25 之前的版本 · 8.1.x 8.1.12 之前的版本 PHP 7.4.33 是接收此 CVE 补丁的第一个版本。因此,此仓库中的漏洞利用代码将展示易受攻击版本 (≤ 7.4.32) 与已修补版本 (≥ 7.4.33) 之间的行为差异。 ## 🔬 技术细节 该漏洞在于读取 GD 字体文件 头部时缺乏输入验证。字体文件具有以下结构的头部: · 2 字节:魔术数字 (0x01BE) · 2 字节:字符数量 · 2 字节:每个字符的宽度,以像素为单位 · 2 字节:每个字符的高度 · 2 字节:每个字符的字节数 (char_offset) 如果将 width 值设置得非常大(例如 65535),PHP 将分配过小的缓冲区来存储字体位图数据。当 `imagechar()` 函数随后从该字体中读取字符时,它将访问缓冲区边界之外的内存,从而导致 OOB 读取。 ## 🚀 使用方法 1. 克隆此仓库或复制 exploit.php 文件。 2. 使用 Docker 运行测试环境(请参阅完整文档中的说明)。 3. 执行 `php exploit.php` 并观察结果。 ## 📚 参考资料 · NVD 上的 CVE-2022-31630 · php-src 中的修补提交 · PHP 发布公告 为教育目的创建至 CVE
标签:CVE-2022-31630, DoS, Exploit, Exposure of Sensitive Information, GD库, imageloadfont, Maven, OOB Read, PHP 7.4, PHP 8.0, PHP 8.1, PHP漏洞, PoC, System Crash, 信息泄露, 内存安全, 安全测试, 密码管理, 拒绝服务, 攻击性安全, 暴力破解, 漏洞分析, 漏洞验证, 缓冲区溢出, 请求拦截, 越界读取, 路径探测