Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
markdown-exfil-tester — Test black-box se un chatbot LLM è vulnerabile all'esfiltrazione markdown/HTML (classe CVE-2025-32711). Avvia un sink, invia payload, renderizza in Chromium headless, correla tramite rete. | Kitploit
Strumenti/GitHubGitHub/trerb/markdown-exfil-tester
Scanner di VulnerabilitàAnalisi Dinamica (Sandboxing)Generazione di PayloadSfruttamento di Applicazioni WebCTFPenetration TestingApprendimento e FormazioneRed TeamingSicurezza dell'IA
GitHubtrerb/markdown-exfil-tester

markdown-exfil-tester

Test black-box se un chatbot LLM è vulnerabile all'esfiltrazione markdown/HTML (classe CVE-2025-32711). Avvia un sink, invia payload, renderizza in Chromium headless, correla tramite rete.

336 mesi faNon ancora revisionato
Vedi Repository

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

valtik-markdown-exfil-tester

Tester black-box per iniezione indiretta di prompt che porta all'esfiltrazione di markdown / HTML in chatbot basati su LLM. Questa è la classe di vulnerabilità che ha colpito Microsoft 365 Copilot (CVE-2025-32711, aka EchoLeak), ChatGPT (patch OpenAI Febbraio 2026) e Salesforce (ForcedLeak). Lo schema:

  1. L'attaccante inserisce markdown o HTML in contenuti che il LLM leggerà (documenti, ticket di supporto, PR, pagine web ingerite, fonti RAG).
  2. Il LLM emette markdown come ![](https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg) nella sua risposta.
  3. Il frontend del chatbot renderizza il markdown, il browser recupera l'URL dell'attaccante e i segreti vengono esfiltrati tramite parametro URL a ogni renderizzazione.

Gli strumenti esistenti (Garak, Augustus, Promptfoo) sono ottimi per testare l'iniezione a livello di testo ma non chiudono l'oracolo lato render — "il tuo frontend ha effettivamente recuperato l'URL dell'attaccante?" Questa è la vera vulnerabilità. Questo strumento colma questa lacuna.

npx valtik-markdown-exfil-tester https://your-chatbot.example.com

Autorizzazione richiesta

Non eseguire questo strumento contro chatbot di cui non possiedi o non hai esplicita autorizzazione scritta per testare. Eseguire questo strumento contro un chatbot LLM di terze parti senza autorizzazione è molto probabilmente una violazione dei termini di servizio e potrebbe essere illegale nella tua giurisdizione (CFAA negli Stati Uniti, Computer Misuse Act nel Regno Unito, leggi simili nell'UE).

Casi d'uso legittimi:

  • Pentesting di un chatbot di proprietà della tua organizzazione.
  • Testare un chatbot nell'ambito di un impegno autorizzato (SoW scritto).
  • Testare un target su un programma bug bounty la cui politica consente esplicitamente questo tipo di test (leggi prima la politica — molti programmi LLM limitano il fuzzing pesante di iniezione di prompt).
  • Ricerca contro il tuo stack di chatbot ospitato localmente.

Valtik Studios LLC declina ogni responsabilità per l'uso non autorizzato.

Come funziona

  1. Avvia un browser headless (Playwright / chromium).
  2. Avvia un listener HTTP sink locale legato a 127.0.0.1 su una porta alta casuale. Ogni richiesta in arrivo viene registrata con timestamp, percorso, query, intestazioni, Referer, IP, User-Agent.
  3. Consegna un set rotante di payload al chatbot. Ogni payload è progettato per indurre il LLM a emettere un'immagine markdown, un collegamento di riferimento, ``, <svg>, sfondo CSS, <link rel=prefetch>, ecc. che punta al sink locale.
  4. Renderizza la risposta del chatbot nel browser headless con un passaggio permissivo da markdown a HTML (imitando un frontend vulnerabile).
  5. Correla: il sink ha ricevuto un fetch taggato con l'id di questo payload? Il browser ha provato e fallito (CSP / sanitizer)? Il LLM ha emesso l'URL in testo grezzo ma il frontend lo ha ignorato? Il LLM ha rifiutato?
  6. Classifica:
    • confirmed — il sink ha ricevuto un hit. Critico. L'esfiltrazione funziona.
    • browser-tried — il browser ha emesso il fetch ma è fallito (CSP, referrer policy, sanitizer). Medio. Difesa tenuta ma fragile — non fare affidamento solo su CSP.
    • llm-emitted — la risposta del LLM conteneva l'URL del sink ma il frontend non lo ha renderizzato come fetch. Basso.
    • refused — la risposta del LLM non conteneva il payload. Difesa tenuta.
    • inconclusive — nessuna risposta dal LLM.

Installazione

Esegui senza installazione:

npx valtik-markdown-exfil-tester https://chat.example.com

Oppure installa globalmente:

npm install -g valtik-markdown-exfil-tester
npx playwright install chromium
markdown-exfil-tester https://chat.example.com

Richiede Node 20+.

Utilizzo

Usage: valtik-markdown-exfil-tester <chatbot-url> [options]

Arguments:
  chatbot-url        URL of the chatbot endpoint or page

Options:
  --mode <type>      direct | indirect-doc        (default: direct)
  --endpoint <url>   API endpoint if different from chatbot-url
  --sink-port <n>    Local sink port              (default: random high port)
  --payloads <path>  Override payload library JSON
  --browser <bin>    playwright | none            (default: auto-detect)
  --auth <cookie>    Auth cookie for the chatbot, if needed
  --timeout <s>      Per-payload wait             (default 30)
  --max-payloads <n> Stop after N payloads        (default: all)
  --rate-limit-ms <n> Delay between payloads     (default 3000)
  --out-dir <dir>    Working dir for indirect-doc (default: /tmp/...)
  --user-agent <ua>
  --json             Machine-readable output
  --fail-on <level>  Exit non-zero on severity >= level (critical|high|medium|low)
  -v, --version
  -h, --help

Modalità

  • direct (v0.1) — invia il payload direttamente all'endpoint del chatbot. Testa l'iniezione di prompt diretta. Segnale più debole dell'indiretta, ma veloce.
  • indirect-doc (v0.1) — scrive ogni payload come documento markdown autonomo in --out-dir. Carichi ogni file nella knowledge base / fonte RAG / sistema di ticket / wiki del chatbot, poi interroghi il chatbot. Lo strumento attende --timeout secondi per payload per un hit del sink taggato con l'id di quel payload.
  • indirect-pr (v0.2, non ancora implementato) — automatizza la consegna del corpo PR GitHub per revisori PR in stile Copilot.
  • attach (v0.2, non ancora implementato) — carica il file tramite il flusso di upload del chatbot.

Esempi

# Fast test with first 10 payloads
npx valtik-markdown-exfil-tester https://chat.example.com --max-payloads 10

# JSON output for CI
npx valtik-markdown-exfil-tester https://chat.example.com --json | jq .findings

# Fail the CI job on any high-severity finding
npx valtik-markdown-exfil-tester https://chat.example.com --fail-on high

# Indirect-doc mode: generate docs, upload them manually, then re-run
npx valtik-markdown-exfil-tester https://chat.example.com \
  --mode indirect-doc --out-dir ./payload-docs --timeout 60

Libreria di payload

Fornisce 30+ modelli che coprono:

Scarica lo strumento