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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/kunalkhandelwal-dev/cve-2021-41773-lab
Vulnerability AnalysisWeb Application ExploitationWeb SecurityLearning & EducationLabs & Practice
GitHubkunalkhandelwal-dev/cve-2021-41773-lab

cve-2021-41773-lab

교육용 FastAPI 랩으로, 취약한 서버, 패치된 코드, 인코딩된 페이로드 예제를 포함하여 CVE-2021-41773 디렉터리 트래버설 및 로컬 파일 포함(LFI) 취약점을 시연하며, 로컬 보안 교육용으로 활용할 수 있습니다.

저장소 보기

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
21일 전아직 검토되지 않음

CVE-2021-41773 — 최소 FastAPI 랩

파일 시스템 경계를 검증하기 전에 사용자 입력을 디코딩하면 디렉터리 트래버설 및 로컬 파일 포함(LFI)으로 이어질 수 있음을 보여주는 작고 독립적인 FastAPI 랩입니다. Apache HTTP Server의 CVE-2021-41773 문제를 모델로 삼았습니다.


기능

  • 최소한의 읽기 쉬운 FastAPI 예제: 취약한 서버와 패치된 서버
  • 단일 인코딩(%2e) 및 이중 인코딩(%252e) 우회를 시연
  • 루트 엔드포인트에 curl로 테스트할 수 있는 빠른 페이로드 포함
  • Docker 불필요 — uvicorn으로 로컬 실행

저장소 구조

  • patched_app.py — 보안 구현(정규 경로 검사 사용)
  • vulnerable_app.py — 의도적으로 취약하게 만든 구현
  • secret.txt — 공격 대상으로 사용되는 경계 외부 비밀 파일
  • webroot/test.txt — 예제가 제공하는 공개 파일
  • README.md — 이 파일

요구 사항

  • Python 3.8+
  • pip

런타임 종속성 설치:

root@kitploit:~
pip install fastapi uvicorn

빠른 시작

  1. 가상 환경을 만들고 활성화합니다(Windows PowerShell 예시):
root@kitploit:~
python -m venv venv
.\venv\Scripts\activate
  1. 종속성을 설치합니다:
root@kitploit:~
pip install fastapi uvicorn
  1. 취약한 서버를 실행합니다(포트 8011):
root@kitploit:~
uvicorn vulnerable_app:app --port 8011

브라우저에서 http://127.0.0.1:8011/을(를) 여세요. 루트 엔드포인트에 일반적인 페이로드와 참고 사항이 표시됩니다.

수정 사항을 확인하려면 취약한 서버를 중지하고 패치된 서버를 실행하세요:

root@kitploit:~
uvicorn patched_app:app --port 8011

예제 요청 (curl)

  • 공개 파일에 대한 기본 액세스:
root@kitploit:~
curl --path-as-is http://localhost:8011/icons/test.txt
  • CVE-2021-41773(단일 인코딩) — 단순한 경계 검사를 우회:
root@kitploit:~
curl --path-as-is "http://localhost:8011/icons/.%2e/secret.txt"
  • CVE-2021-42013(이중 인코딩) — 반복적으로 디코딩하지 않는 필터를 우회:
root@kitploit:~
curl --path-as-is "http://localhost:8011/icons/.%252e/secret.txt"

취약한 서버에서는 이러한 페이로드가 secret.txt를 반환할 수 있습니다. 패치된 서버에서는 거부되어야 합니다(HTTP 403).


패치 작동 방식 (개괄)

  1. 들어오는 경로를 완전히 디코딩합니다(여러 인코딩 계층 처리).
  2. os.path.realpath()로 정규 파일 시스템 경로를 확인합니다.
  3. 확인된 경로가 의도한 webroot 디렉터리 안에 있어야 하며, 그렇지 않으면 거부합니다.

이 방식은 디코드 → 정규화 → 승인 순서를 강제합니다.


안전 및 사용

이 저장소는 로컬 교육용으로만 사용하세요. 취약한 서버를 공용 네트워크에 노출하지 마십시오.


라이선스

MIT License


작성자

Kunal Khandelwal — 보안 연구원, 애플리케이션 보안

도구 다운로드