
Una prova di concetto del CVE di traefik per comprendere l'impatto
Benvenuto alla sfida Capture the Flag (CTF) di Shadow Corp! Questa sfida metterà alla prova le tue abilità nell'identificare e sfruttare vulnerabilità relative agli header di sicurezza e al comportamento dei proxy HTTP. La tua missione è bypassare le protezioni e scoprire segreti nascosti all'interno dell'applicazione web di Shadow Corp.
Hai scoperto l'interfaccia web pubblica di Shadow Corp, un'organizzazione nota per il cyber-spionaggio clandestino. Si dice che abbiano protetto un endpoint accessibile solo agli insider di fiducia. Tuttavia, ci sono voci secondo cui con le giuste tecniche puoi ingannare il sistema per rivelare questo endpoint nascosto ed esporre i segreti di Shadow Corp.
Il tuo compito: accedere all'endpoint protetto e recuperare la flag nascosta!
Questa CTF può essere eseguita localmente e dovrai installare e configurare l'applicazione web.
docker compose è richiesto per eseguire questa applicazione curl è consigliato per interrogare e testare gli endpoint.
Clona il repository e spostati nella directory del progetto:
cd traefik-CVE-2024-45410-poc
Esegui la CTF
docker compose up
Il tuo obiettivo principale è accedere all'endpoint /protected e recuperare la flag segreta. Tuttavia, noterai che l'accesso diretto è bloccato a meno che non vengano soddisfatte determinate condizioni. Il sistema verifica le fonti attendibili convalidando l'header X-Forwarded-Host.
L'applicazione è progettata per consentire l'accesso solo da localhost (127.0.0.1). Tuttavia, se esamini attentamente gli header HTTP, potresti scoprire un modo per "ingannare" il server facendogli credere che tu sia una fonte attendibile. Dai un'occhiata agli header proxy HTTP e a come possono essere manipolati.
Hai mai esplorato gli header hop-by-hop? Questi header sono comunemente usati dai proxy per controllare o modificare il comportamento delle richieste inoltrate. Manipolando correttamente questi header, potresti riuscire a convincere il server che provieni da una posizione attendibile, anche se non è così.
L'header Connection può essere un punto di svolta. E se potessi introdurre un header che il sistema considera implicitamente affidabile? Esplora come potresti modificare gli header della richiesta per includere X-Forwarded-Host in un modo che il server potrebbe non aspettarsi.
Esempio di Comando (Non Soluzione) Ecco un esempio di come iniziare a sperimentare con curl:
curl -i http://localhost:5000/protected
Questo mostrerà che l'accesso è negato per impostazione predefinita.
In alcuni sistemi, certi header sono considerati hop-by-hop, il che significa che controllano il comportamento di ogni intermediario in una catena di richieste HTTP. Questi header vengono rimossi o alterati dai proxy. Tuttavia, se manipoli abilmente gli header e specifichi l'header hop-by-hop corretto, potresti trovare un modo per bypassare alcuni meccanismi di sicurezza. Concentrati su come funziona l'header Connection e su come potresti influenzare altri header che di solito non vengono inoltrati oltre un singolo hop. Questo potrebbe aiutarti a ingannare il server facendogli credere che tu sia un client attendibile.
Inizia a pensare a come modificare la tua richiesta per ottenere l'accesso. La risposta sta in come l'applicazione gestisce gli header dell'host attendibile. Ricorda, manipolare gli header potrebbe essere la chiave per risolvere questa CTF.