Injectie van hostheader

Injectie van hostheader

De reset-e-mail is echt. De link daarin is niet van jou.

Wat is Injectie van hostheader?

Toepassingen bouwen koppelingen voor het opnieuw instellen van wachtwoorden op basis van de Host - of X-Forwarded-Host -header van het binnenkomende verzoek, waardoor de aanvrager kan beslissen waar deze naartoe verwijzen. U bouwt een resetverzoek opnieuw op met een lookalike-domein in X-Forwarded-Host , laat de applicatie een echt token op uw link mailen en speelt dit binnen de levensduur opnieuw af om eigenaar te worden van het account. Vervolgens bouwt u de basis-URL op vanuit een geconfigureerde APP_BASE_URL in plaats van dat u gegevens opvraagt, ondersteund door een host-acceptatielijst bij de proxy. Dezelfde vorm verbergt zich in ondertekende download-URL's en cachesleutels.

Wat je leert in Injectie van hostheader

Injectie van hostheader — Trainingsstappen

  1. Gebruik de resetfunctie

    Bob zit achter Verdanta-accounts aan. Het is een app voor persoonlijke financiën, dus elke rekening die hij overneemt, linkt rechtstreeks naar iemands echte banksaldi. Hij kent het wachtwoord van niemand, dus begint hij waar hij er geen nodig heeft: de wachtwoord vergeten-pagina. Eerst dient hij het in met een eigen wegwerpadres, zodat hij precies kan zien welk verzoek de pagina doet.

  2. Zoek het eindpunt

    Het verzoek ging uit en de browser registreerde het. Bob opent het Netwerkpaneel om te lezen waar de pagina het daadwerkelijk naartoe heeft gestuurd.

  3. Lees het lichaamsschema

    Eén verzoek en het vertelt Bob alles wat hij nodig heeft. Hij controleert wat de pagina in de verzoektekst heeft geplaatst.

  4. Verzin het resetverzoek

    Bob herbouwt datzelfde verzoek in de API Tester, waar hij één ding kan toevoegen dat hij in een browserformulier nooit kan instellen: een vervalste hostheader. Hij vraagt ​​om een ​​reset van het echte account van Alice, maar vertelt de app dat het verzoek is aangekomen bij account-verdanta.app, een lookalike-domein dat hij heeft geregistreerd en beheert (let op de .app, waar Verdanta's echte site account.verdanta.com is). Als de app de resetlink uit de header maakt, bevat de e-mail van Alice zijn domein en haar echte token.

  5. De reactie verraadt niets

    De API antwoordt met een gewone 200 en een algemeen bericht. Niets in het antwoord wijst erop dat er iets mis is gegaan, dat is precies de reden waarom deze bug zo stil is. De schade zit niet in de reactie die Bob kan zien. Het staat in de e-mail die nu in de inbox van Alice zit, met een link die begint met zijn domein.

  6. Een e-mail voor het opnieuw instellen van uw wachtwoord

    Alice ontvangt 24 uur per dag een e-mail om het wachtwoord opnieuw in te stellen van Verdanta. Ze heeft er niet om gevraagd, maar het lijkt precies op het echte werk: dezelfde afzender, dezelfde bewoording, dezelfde lay-out.

  7. Klik op de resetlink

    Alice klikt op de link om haar wachtwoord opnieuw in te stellen, precies zoals iedereen dat zou doen.

  8. Kijk naar de adresbalk

    De resetpagina wordt geopend. Het lijkt op Verdanta, maar de adresbalk vertelt een ander verhaal.

  9. Vang het teken

    De klik van Alice heeft Verdanta nooit bereikt. Haar browser opende account-verdanta.app, de server die Bob beheert, en het reset-token reed mee in de URL. Terug op zijn eigen machine volgt Bob het toegangslogboek voor die server om te achterhalen wat er net is aangekomen.

  10. Speel het token opnieuw af

    Het token is van Alice, maar het is nu in de handen van Bob, en het maakt niet uit wie ze presenteert. Voordat het verloopt, speelt hij het opnieuw af tegen het echte eindpunt en stelt hij een wachtwoord naar eigen keuze in.

Dekking van beveiligingsframeworks

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