
Pipeline per bug bounty consapevole dell'ambito per CVE-2025-0133 (XSS riflesso in Palo Alto PAN-OS GlobalProtect). Shodan → corrispondenza ambito H1/BC → validazione canary sicura → bozze di report.
Palo Alto PAN-OS XSS riflesso nel gateway e portale GlobalProtect, handler getconfig.esp. Il parametro query user viene riflesso non codificato nella pagina del portale captive; un attaccante che induce un utente GlobalProtect autenticato a cliccare su un link costruito può eseguire JavaScript nel contesto di fiducia del portale VPN aziendale, rendendo le campagne di phishing molto più efficaci.
Divulgato a maggio 2025. Corretto in PAN-SA-2025-0005. Scoperto da XBOW, l'agente autonomo di caccia ai bug di Anthropic. Questo toolkit è un porting della pipeline di validazione originariamente costruita per CVE-2020-3580 — stessa architettura, endpoint diverso, parametro diverso, cinque anni di CVE di distanza.
Questo repository contiene:
xss.html — il PoC verificabile dall'uomo; modifica TARGET_HOST e aprilo in un
browser per vedere il prompt attivarsi.src/ — una pipeline di scoperta e validazione sensibile all'ambito.docs/ — metodologia ed etica.┌──────────┐ ┌──────────────┐ ┌────────────────┐ ┌──────────────┐
│ Shodan │ → │ scope match │ → │ canary check │ → │ MD report │
│ (3 dorks)│ │ (H1, BC, +) │ │ (no JS exec) │ │ drafts │
└──────────┘ └──────────────┘ └────────────────┘ └──────────────┘
Ogni fase scrive un artefatto JSON ispezionabile e funziona indipendentemente.
Il validatore non attiva prompt(). Effettua una GET a /ssl-vpn/getconfig.esp
con una stringa canary unica nel parametro user e valuta il corpo della
risposta. I risultati confermati ottengono una bozza Markdown con l'originale
xss.html come riferimento per il revisore del programma da verificare nel proprio browser.
git clone https://github.com/cruxN3T/CVE-2025-0133
cd CVE-2025-0133
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp creds.env.example creds.env
$EDITOR creds.env # add your Shodan key, optionally H1/BC tokens
creds.env è in gitignore. Il .gitignore blocca qualsiasi file corrispondente a *.env
(tranne *.env.example), più data/ e reports/ per tenere le liste di target
e gli estratti di validazione fuori dal repository pubblico.
End-to-end:
python -m src.pipeline run
Oppure fase per fase:
python -m src.pipeline discover # Shodan → data/shodan_hits.json
python -m src.pipeline scope # match → data/in_scope.json
python -m src.pipeline validate # canary → data/validation.json
python -m src.pipeline report # → reports/<host>__CVE-2025-0133.md
La fase scope funziona senza chiavi API — attinge da
arkadiyt/bounty-targets-data. Aggiungendo H1_USERNAME + H1_API_TOKEN a
creds.env ed eseguendo H1_LIVE=true python -m src.pipeline scope si arricchisce
con dati freschi dall'API Hacker di HackerOne (più lento; utile solo se
sospetti che un brief di programma sia cambiato oggi).
Tutto risiede in creds.env. Vedi creds.env.example per l'elenco completo.
Le due impostazioni che vale la pena conoscere:
SCOPE_PLATFORMS — separati da virgole. Default hackerone,bugcrowd. Aggiungi
intigriti e yeswehack se vuoi una copertura più ampia.TARGET_RPM — richieste per host al minuto. Default 10. Non aumentare questo
valore senza un motivo.docs/ETHICS.md — cosa il match dell'ambito autorizza e non autorizza, e cosa il validatore deliberatamente non fa.docs/METHODOLOGY.md — come funziona la valutazione della riflessione e perché esiste ogni fase.Non è uno strumento di sfruttamento di massa. Non sostituisce la lettura del brief del programma sulla piattaforma prima di inviare. Il matcher dell'ambito è un punto di partenza; il testo della policy è il contratto.
MIT. Vedi LICENSE.