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

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

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

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

工具目录

分类

查看所有分类
Loading categories
php-exploit_cve-2022-31630 — CVE-2022-31630的概念验证漏洞利用代码,该漏洞是PHP的GD扩展中的越界读取漏洞。演示受影响PHP版本中的崩溃和内存泄露。包含基于Docker的实验室环境,用于安全测试。 | Kitploit
工具/GitHubGitHub/sepkascurty-cpu/php-exploit_cve-2022-31630
漏洞分析漏洞利用学习与教育二进制利用实验室与实践
GitHubsepkascurty-cpu/php-exploit_cve-2022-31630

php-exploit_cve-2022-31630

CVE-2022-31630的概念验证漏洞利用代码,该漏洞是PHP的GD扩展中的越界读取漏洞。演示受影响PHP版本中的崩溃和内存泄露。包含基于Docker的实验室环境,用于安全测试。

查看仓库

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
1126个月前尚未审核
分享

#CVE-2022-31630 – Proof of Concept Exploit

警告: 此代码仅用于教育和隔离实验室环境中的测试。未经授权在其他系统上使用是非法且不负责任的。


📌 描述

CVE-2022-31630 是 PHP GD 扩展中 imageloadfont() 函数的一个越界读取(Out-of-Bounds Read)漏洞。该漏洞允许能够控制 PHP 应用程序加载的字体文件的攻击者读取所分配缓冲区之外的数据。可能造成的影响包括:

  • 拒绝服务(崩溃) – 应用程序停止响应。
  • 信息泄露 – 内存中的敏感数据(例如密钥、令牌或其他数据片段)可能被读取。

受影响的 PHP 版本

  • PHP 7.4.x 低于 7.4.33
  • PHP 8.0.x 低于 8.0.25
  • PHP 8.1.x 低于 8.1.12

PHP 7.4.33 是首个包含此漏洞补丁的版本。该仓库提供一个概念验证(Proof of Concept, PoC),用于展示易受攻击版本(≤ 7.4.32)与已修补版本(≥ 7.4.33)之间的行为差异。


🔍 技术细节

该漏洞源于读取 GD 字体文件(.gdf 格式)时缺乏输入验证。字体文件具有以下头部结构:

字节偏移大小(字节)描述
02魔数(0x01BE)
22字符数(nchars)
42字符宽度(像素)
62字符高度
82每个字符的字节数(char_offset)

若宽度值设置过大(例如 65535),则用于存储字符位图的缓冲区大小计算会出错,导致分配的缓冲区过小。随后 imagechar() 函数从该字体中读取字符时,会访问缓冲区之外的内存——这就是越界读取。


🧪 测试要求

  • Docker(用于运行隔离环境)
  • PHP 7.4.32 或 7.4.33(可使用 Docker 镜像 php:7.4.32-cli / php:7.4.33-cli)
  • GD 扩展(将在容器内安装)

🚀 如何使用 PoC

  1. 克隆此仓库
git clone https://github.com/sepkascurty-cpu/php-exploit_cve-2022-31630.git
cd exploit_cve-2022-31630
  1. 使用所需 PHP 版本运行容器

测试易受攻击版本(7.4.32):

docker run -it --rm -v $(pwd):/app php:7.4.32-cli bash

测试已修补版本(7.4.33):

docker run -it --rm -v $(pwd):/app php:7.4.33-cli bash
  1. 在容器内安装 GD 扩展
cd /app
apt-get update
apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libpng-dev
docker-php-ext-configure gd --with-freetype --with-jpeg
docker-php-ext-install gd
  1. 运行漏洞利用程序
php exploit_cve-2022-31630.php

📊 示例输出

PHP 版本预期结果
7.4.32(易受攻击)程序因段错误(Segmentation Fault)崩溃,或发生内存泄漏(可看到内存中的虚拟数据)。
7.4.33(已修补)正常执行完毕,保存输出文件 output.png,无崩溃。

🛡️ 缓解措施

  • 将 PHP 更新至包含补丁的最新版本:
    • PHP 7.4.33 或更高版本
    • PHP 8.0.25 或更高版本
    • PHP 8.1.12 或更高版本
  • 如果无法立即更新,且确实不需要 GD 扩展或 imageloadfont() 函数,请将其禁用。
  • 对应用程序应用最小权限原则,以最大限度地降低内存泄漏造成的影响。

📚 参考

  • CVE-2022-31630 在 NVD 上的条目
  • php-src 中的补丁提交
  • PHP 发布公告

⚠️ 免责声明

此仓库仅供教育和安全研究目的提供。作者对代码的任何滥用行为不承担责任。请确保仅在您拥有或已获得书面授权的环境中进行测试。


为印度尼西亚网络安全社区创建。

下载工具