
Docker 기반 실습 환경으로, 사용자 지정 Python PoC를 통한 제어된 경로 탐색 및 파일 노출로 CVE-2021-41773 (Apache HTTP Server 2.4.49)을 재현합니다.
Apache HTTP Server 2.4.49의 경로 탐색 취약점인 CVE-2021-41773의 재현.
이 프로젝트는 Docker를 사용하여 격리된 취약한 환경을 만들고 Python PoC를 통해 통제된 파일 노출을 시연합니다.
안전: PoC는
localhost,127.0.0.1, 또는::1대상만 허용합니다. 테스트는 격리된 실습 환경 내에서만 수행해야 합니다.
이 프로젝트는 다음을 시연합니다:
이 시연은 원격 코드 실행보다는 파일 노출에 초점을 맞춥니다.
CVE-2021-41773-Apache-Lab/
│
├── docker/
│ ├── Dockerfile
│ ├── httpd-vulnerable.conf
│ └── secret.txt
│
├── exploit/
│ └── exploit.py
│
├── screenshots/
│ ├── 01-docker-container.png
│ ├── 02-apache-version.png
│ └── 03-successful-exploit.png
│
├── report/
│ └── CVE-2021-41773-Exploit-Report.pdf
│
├── requirements.txt
├── .gitignore
└── README.md
PoC는 Python 표준 라이브러리만 사용하며 타사 Python 패키지가 필요하지 않습니다.
리포지토리 루트에서:
docker build -t cve-2021-41773-lab ./docker
docker run --rm --name cve-2021-41773-lab \
-p 127.0.0.1:8080:80 \
cve-2021-41773-lab
이 터미널을 계속 실행 상태로 유지하세요.
Apache 서비스는 다음을 통해서만 노출됩니다:
127.0.0.1:8080
다른 터미널에서:
docker ps
컨테이너에 다음이 표시되어야 합니다:
127.0.0.1:8080->80/tcp
docker exec cve-2021-41773-lab httpd -v
예상 출력:
Server version: Apache/2.4.49 (Unix)
curl http://127.0.0.1:8080/
Apache 테스트 페이지가 반환되어야 합니다.
PoC는 다음 위치에 있습니다:
exploit/exploit.py
실행:
python3 exploit/exploit.py
기본 대상은:
http://127.0.0.1:8080
기본 증명 파일은:
/lab/secret.txt
성공적인 실행은 다음을 출력합니다:
[+] Vulnerability reproduced.
[+] Controlled file disclosure confirmed.
PoC는 이후 통제된 실습 파일의 내용을 표시합니다.
PoC는 먼저 대상이 로컬 주소인지 확인합니다:
localhost
127.0.0.1
::1
그런 다음 인코딩된 탐색 구성 요소를 포함하는 경로를 구성합니다:
/cgi-bin/.%2e/.%2e/.%2e/.%2e/lab/secret.txt
요청은 Python 표준 socket 모듈을 사용하여 전송됩니다. 이를 통해 PoC가 HTTP 요청 경로를 직접 제어할 수 있습니다.
취약한 Apache 2.4.49 서버는 조작된 경로를 처리하고 다음의 내용을 반환합니다:
/lab/secret.txt
이 파일을 검색하면 경로 탐색 및 통제된 파일 노출이 확인됩니다.
CVE: CVE-2021-41773
제품: Apache HTTP Server
시연된 영향 버전: 2.4.49
취약점 유형: 경로 탐색 / 파일 노출
CVE-2021-41773은 Apache HTTP Server 2.4.49의 경로 탐색 취약점입니다. 특수하게 조작된 URL이 의도된 경로 제한을 우회하여 예상 디렉터리 외부의 파일에 접근할 수 있게 합니다.
특정 구성에서는 이 취약점이 더 심각한 결과를 초래할 수 있습니다. 이 프로젝트는 격리된 Docker 환경에서 의도적으로 통제된 파일 노출을 시연합니다.
테스트 중 수집된 스크린샷은 다음 위치에 저장됩니다:
evidence/
증거에는 다음이 포함됩니다:
주요 완화 조치는 Apache HTTP Server를 패치된 버전으로 업그레이드하는 것입니다.
추가 방어 조치는 다음과 같습니다:
Apache HTTP Server 보안 권고: https://httpd.apache.org/security/vulnerabilities_24.html
NIST 국가 취약점 데이터베이스: https://nvd.nist.gov/vuln/detail/CVE-2021-41773
CERT-EU 보안 권고: https://cert.europa.eu/publications/security-advisories/2021-054/
이 프로젝트는 공인된 보안 교육 및 통제된 실험실 테스트만을 위한 것입니다.
Docker 환경과 PoC는 로컬 테스트용으로 설계되었습니다. 소유하지 않거나 명시적 권한이 없는 시스템에 대해 PoC를 사용하지 마십시오.