Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2024-38828 — CVE-2024-38828에 대한 PoC 및 수정: ByteArrayHttpMessageConverter의 Content-Length 조작을 통한 Spring Framework DoS. 부하 테스트, 메트릭 및 사용자 지정 안전 변환기를 포함합니다. | Kitploit
도구/GitHubGitHub/funcid/cve-2024-38828
Vulnerability AnalysisCode AnalysisExploitationWeb SecurityLearning & Education
GitHubfuncid/cve-2024-38828

CVE-2024-38828

CVE-2024-38828에 대한 PoC 및 수정: ByteArrayHttpMessageConverter의 Content-Length 조작을 통한 Spring Framework DoS. 부하 테스트, 메트릭 및 사용자 지정 안전 변환기를 포함합니다.

저장소 보기
21년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2024-38828 취약점

설명

이 테스트는 Spring Framework에서 CVE-2024-38828 취약점이 있을 때와 없을 때의 동작/반응을 확인합니다. ByteArrayHttpMessageConverter에서 ByteArrayOutputStream에 요청 헤더 Content-Length를 기준으로 메모리를 할당하는데, 이는 실제 본문이 0바이트인 경우와 일치하지 않을 수 있습니다. 이러한 요청이 급격히 증가하면(DoS) 메모리가 비효율적으로 사용되고, 주기적인 GC 정리가 발생하며 애플리케이션이 느려지기 시작합니다. 이를 구현/수정하는 방법과 메트릭을 보여드리겠습니다.

메트릭 그래프

취약점 설명

CVE-2024-38828은 Spring Framework의 DoS(Denial of Service) 유형 취약점으로, 공격자가 byte[] 타입 파라미터를 가진 Spring MVC 컨트롤러를 통해 서버의 메모리 고갈을 유발할 수 있습니다.

기술적 세부 사항

  • 취약한 버전: Spring Framework 5.3.x (모든 버전)
  • 취약점 유형: DoS(Denial of Service)
  • 공격 벡터: 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
도구 다운로드