Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2024-38828 — CVE-2024-38828 の概念実証と修正: Spring Framework の ByteArrayHttpMessageConverter における Content-Length 操作による DoS。負荷テスト、メトリクス、およびカスタムの安全なコンバーターを含みます。 | Kitploit
ツール/GitHubGitHub/funcid/cve-2024-38828
脆弱性分析コード分析エクスプロイトウェブセキュリティ学習と教育
GitHubfuncid/cve-2024-38828

CVE-2024-38828

CVE-2024-38828 の概念実証と修正: Spring Framework の ByteArrayHttpMessageConverter における Content-Length 操作による DoS。負荷テスト、メトリクス、およびカスタムの安全なコンバーターを含みます。

リポジトリを見る
1年前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2024-38828 脆弱性

説明

このテストは、Spring Framework において CVE-2024-38828 の脆弱性がある場合とない場合の動作・応答を検証します。 ByteArrayHttpMessageConverter では、リクエストヘッダー Content-Length に基づいて ByteArrayOutputStream にメモリが割り当てられますが、実際のボディが 0 バイトである場合と一致しない可能性があります。このようなリクエストが急増すると (DoS)、メモリ使用効率が悪くなり、定期的な GC クリーンアップが発生し、アプリケーションが遅延し始めます。これを実装・修正する方法とメトリクスを示します。

メトリクスグラフ

脆弱性の説明

CVE-2024-38828 は、Spring Framework におけるサービス拒否 (DoS) 型の脆弱性であり、攻撃者が Spring MVC コントローラの byte[] 型パラメータを介してサーバーのメモリ枯渇を引き起こす可能性があります。

技術的詳細

  • 脆弱性のあるバージョン: Spring Framework 5.3.x (全バージョン)
  • 脆弱性の種類: サービス拒否 (DoS)
  • 攻撃ベクトル: Content-Length = 2 ^ 31 - 1 の HTTP POST リクエスト
  • 影響: サーバーのメモリ枯渇によるサービス拒否

解決策

実装された修正

  1. バイト配列を処理するためのカスタム HttpMessageConverter を作成
  2. 受信データサイズのチェックを実装
  3. 大きなペイロードを処理するためのストリームベースのアプローチを採用

テスト

プロジェクト構成

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
ツールをダウンロード