Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Tools/GitHubGitHub/funcid/cve-2024-38828
SchwachstellenanalyseCode-AnalyseExploitationWebsicherheitLernen & Bildung
GitHubfuncid/cve-2024-38828

CVE-2024-38828

Repository anzeigen
vor 1 JahrNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Sicherheitslücke CVE-2024-38828

Beschreibung

Der Test prüft das Verhalten/die Reaktion im Spring Framework mit und ohne die Sicherheitslücke CVE-2024-38828. In ByteArrayHttpMessageConverter wird Speicher im ByteArrayOutputStream basierend auf dem Anfrageheader Content-Length alloziert, was möglicherweise nicht der Realität mit einem 0-Byte-Body entspricht. Bei einem starken Anstieg solcher Anfragen (DoS) wird der Speicher ineffizient genutzt, es treten regelmäßige GC-Reinigungen auf und die Anwendung beginnt zu ruckeln. Ich zeige, wie man dies implementiert/behebt und die Metriken.

Metrikdiagramme

Beschreibung der Sicherheitslücke

CVE-2024-38828 ist eine Denial-of-Service (DoS)-Sicherheitslücke im Spring Framework, die es einem Angreifer ermöglicht, eine Speichererschöpfung auf dem Server über einen Spring MVC-Controller mit einem Parameter vom Typ byte[] herbeizuführen.

Technische Details

  • Betroffene Versionen: Spring Framework 5.3.x (alle Versionen)
  • Art der Sicherheitslücke: Denial of Service (DoS)
  • Angriffsvektor: HTTP POST-Anfragen mit Content-Length = 2^31 - 1
  • Auswirkung: Speichererschöpfung des Servers, die zu einem Dienstausfall führt

Lösung

Implementierter Fix

  1. Erstellung eines benutzerdefinierten HttpMessageConverter zur Verarbeitung von Byte-Arrays
  2. Implementierung einer Prüfung der eingehenden Datenmenge
  3. Verwendung eines Streaming-Ansatzes zur Verarbeitung großer Payloads

Testen

Projektstruktur

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

Testparameter

  • Anzahl der Anfragen: 6000
  • Maximale Anzahl gleichzeitiger Anfragen: 5
  • Verzögerung zwischen Anfragegruppen: 0,1 Sekunden
  • Anfragegröße: 1 Byte
  • Header Content-Length: 2^31 - 1 (Maximalwert für int)

Testcode

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

Testausführung

  1. Installieren Sie die Python-Abhängigkeiten:
root@kitploit:~
pip install -r requirements.txt
  1. Führen Sie den Test aus:
root@kitploit:~
python tests/load_test.py
Tool herunterladen