Iniezione dell'intestazione host

Iniezione dell'intestazione host

L'e-mail di ripristino è reale. Il link al suo interno non è tuo.

Cos’è Iniezione dell'intestazione host?

Le applicazioni creano collegamenti per la reimpostazione della password dall'intestazione Host o X-Forwarded-Host della richiesta in entrata, che consente al richiedente di decidere dove puntare. Ricostruirai una richiesta di ripristino con un dominio simile in X-Forwarded-Host , consentirai all'applicazione di inviare un token reale sul tuo collegamento e lo riprodurrai durante la sua vita per possedere l'account. Quindi crei l'URL di base da un APP_BASE_URL configurato anziché richiedere dati, supportato da un elenco consentito dell'host sul proxy. La stessa forma si nasconde negli URL di download firmati e nelle chiavi di cache.

Cosa imparerai in Iniezione dell'intestazione host

Iniezione dell'intestazione host — Fasi della formazione

  1. Utilizza la funzione di ripristino

    Bob sta cercando i conti della Verdanta. È un'app di finanza personale, quindi ogni conto che prende in carico si collega direttamente ai saldi bancari reali di qualcuno. Non conosce la password di nessuno, quindi inizia da dove non ne ha bisogno: la pagina della password dimenticata. Per prima cosa lo invia con un suo indirizzo usa e getta, in modo da poter vedere esattamente quale richiesta fa la pagina.

  2. Trova il punto finale

    La richiesta è stata inviata e il browser l'ha registrata. Bob apre il pannello Rete per leggere dove la pagina lo ha effettivamente inviato.

  3. Leggi lo schema corporeo

    Una richiesta e dice a Bob tutto ciò di cui ha bisogno. Controlla cosa ha inserito la pagina nel corpo della richiesta.

  4. Falsificare la richiesta di ripristino

    Bob ricostruisce la stessa richiesta nell'API Tester, dove può aggiungere una cosa che un modulo del browser non gli consente mai di impostare: un'intestazione host contraffatta. Chiede un reset sull'account reale di Alice ma dice all'app che la richiesta è arrivata a account-verdanta.app, un dominio simile che ha registrato e controlla (nota l'.app, dove il sito reale di Verdanta è account.verdanta.com). Se l'app crea il collegamento di ripristino dall'intestazione, l'e-mail di Alice conterrà il suo dominio e il suo vero token.

  5. La risposta non rivela nulla

    L'API risponde con un semplice 200 e un messaggio generico. Niente nella risposta suggerisce che qualcosa sia andato storto, questo è esattamente il motivo per cui questo bug è silenzioso. Il danno non è nella risposta che Bob può vedere. È nell'e-mail che ora si trova nella casella di posta di Alice, con un collegamento che inizia con il suo dominio.

  6. Un'e-mail per la reimpostazione della password

    Fuori orario, Alice riceve un'e-mail di reimpostazione della password da Verdanta. Non ne ha chiesto uno, ma sembra esattamente quello originale: stesso mittente, stessa dicitura, stesso layout.

  7. Fare clic sul collegamento Reimposta

    Alice fa clic sul collegamento per reimpostare la sua password, esattamente come farebbe chiunque.

  8. Guarda la barra degli indirizzi

    Si apre la pagina di ripristino. Sembra Verdanta, ma la barra degli indirizzi racconta una storia diversa.

  9. Prendi il token

    Il clic di Alice non è mai arrivato a Verdanta. Il suo browser ha aperto account-verdanta.app, il server controllato da Bob e il token di ripristino è stato inserito nell'URL. Tornato sulla sua macchina, Bob inserisce il log di accesso per quel server per catturare ciò che è appena arrivato.

  10. Riproduci il token

    Il token è di Alice, ma ora è nelle mani di Bob, e ai token di reset non importa chi li presenta. Prima che scada, lo riproduce sull'endpoint reale e imposta una password di sua scelta.

Copertura dei framework di sicurezza

OWASP Top 10

  • A02:2025 Security Misconfiguration
  • A05:2021 Security Misconfiguration

CWE

  • CWE-644 Improper Neutralization of HTTP Headers for Scripting Syntax
  • CWE-640 Weak Password Recovery Mechanism for Forgotten Password

CIS Controls

  • CIS 16 Application Software Security

NIST CSF

  • PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
  • PR.PS Platform Security