Cryptology Academy · leksjon

Sårbarheter i OAuth og angrepsmønstre

Studer manipulering av redirect URI, CSRF mot authorization-endepunktet og sårbarheter som kan lekke tokener.

Leksjon 4 av 413 trinn

Sårbarheter i OAuth og angrepsmønstre er en gratis leksjon i Cryptology Academy på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Cryptology Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Cryptology Academy inneholder totalt 4 leksjoner.

Åpen omdirigering i redirect_uri

OAuth-autorisasjonsservere må validere parameteren redirect_uri strengt. Hvis serveren tillater prefiks- eller jokertegnsamsvar (for eksempel godtar en hvilken som helst URL som begynner med "https://app.example.com"), kan en angriper lage en autorisasjonsforespørsel som omdirigerer til "https://app.example.com.attacker.com/steal" eller til en åpen omdirigering på det legitime domenet, og stjele autorisasjonskoden.

CSRF ved autorisasjonsendepunktet

Uten CSRF-beskyttelse kan en angriper starte en OAuth-flyt og lure offerets nettleser til å fullføre autorisasjonen. Offeret autoriserer dermed utilsiktet angriperens klient. Parameteren "state" (RFC 6749) forhindrer dette: Klienten genererer en tilfeldig state, inkluderer den i forespørselen og kontrollerer at den samsvarer i callbacken. Ved manglende samsvar avbrytes flyten.

Oppfanging av autorisasjonskode

På mobilplattformer kan ondsinnede apper registrere det samme egendefinerte URI-skjemaet som en legitim OAuth-klient og fange opp autorisasjonskoder som omdirigeres etter brukerautentisering. PKCE (RFC 7636) gir fullstendig beskyttelse: Den oppfangede koden er ubrukelig uten kodeverifikatoren som bare den legitime appen genererte i begynnelsen av flyten.

Tokenlekkasje via Referer-headeren

Når et ID-token eller access token er inkludert i et URL-fragment eller en spørringsparameter, inkluderer etterfølgende navigeringer fra siden URL-en i Referer-headeren. Dette kan lekke tokenet til tredjepartsskript for analyse eller CDN-leverandører. Bruk alltid authorization code flow med tokenlevering via back-channel for å unngå at tokener vises i URL-er.

Mix-up-angrep i oppsett med flere leverandører

Når en klient støtter flere OAuth-leverandører, kan mix-up-angrep lure klienten til å sende en autorisasjonskode som er hentet fra leverandør A, til token-endepunktet hos leverandør B. Klienten må validere "iss"-claimen i ID-tokener og knytte callbacken til den bestemte leverandøren som startet flyten, ved hjelp av state-parameteren eller JARM (JWT-Secured Authorization Response Mode).

SSRF via redirect_uri

Server-side request forgery (SSRF)-angrep retter seg mot OAuth-implementasjoner som utfører HTTP-forespørsler fra serveren til redirect_uri. Hvis autorisasjonsserveren henter redirect_uri for å kontrollere den, kan en angriper oppgi en intern IP-adresse (for eksempel http://169.254.169.254/latest/meta-data/) for å få tilgang til metadata for skyinstanser eller interne tjenester. Streng validering av redirect_uri basert på en eksplisitt tillatelsesliste forhindrer dette.

Kontoovertakelse via kollisjon mellom e-post-claims

Mange applikasjoner bruker e-post-claimen fra et OIDC-ID-token til å koble kontoer på tvers av leverandører. Hvis en angriper kontrollerer en e-postadresse som samsvarer med offerets konto hos en annen leverandør, kan angriperen registrere seg hos en annen leverandør med denne e-postadressen og få tilgang til offerets konto. Beskyttelse: Koble kontoer bare ved hjelp av paret (iss, sub), aldri bare e-postadressen.

Forveksling av JWT-algoritme

Angrep med forveksling av JWT-algoritmer utnytter implementasjoner som stoler på "alg"-headeren for å velge verifiseringsalgoritme. Angrepet utføres ved å endre "alg" fra "RS256" til "HS256" og signere tokenet med serverens offentlige nøkkel som HMAC-hemmelighet (siden den offentlige nøkkelen er offentlig). Beskyttelse: Angi alltid den forventede algoritmen eksplisitt i verifiseringskoden, og stol aldri på alg-claimen i token-headeren.

OAuth-phishing via forfalskning av samtykkeskjerm

Angripere registrerer ondsinnede OAuth-klienter med navn og logoer som ser ekte ut, og sender deretter phishing-lenker til målpersoner. Offeret ser en ekte OAuth-samtykkeskjerm (fra Google, Microsoft eller lignende) for en ondsinnet applikasjon og gir den tilgang. Beskyttelse: Kontroller at client_id tilsvarer den forventede applikasjonen. Google og Microsoft tilbyr programmer for klientverifisering av legitime applikasjoner.

Angrep med scope-eskalering

Scope-eskalering oppstår når en klient får tokener med bredere tillatelser enn det brukeren har godkjent. Implementasjonsfeil som hopper over scope-validering på token-endepunktet, mellomlagrer tokener med sammenslåtte scopes fra ulike forespørsler eller ikke kontrollerer at scopet i det utstedte tokenet ikke overskrider det godkjente scopet, kan føre til privilegieeskalering via OAuth.

Sammendrag av sikkerhetspraksis

Beskytt OAuth-implementasjoner ved å bruke nøyaktig samsvar ved validering av redirect_uri, kreve PKCE for alle offentlige klienter, validere state-parameteren for CSRF-beskyttelse, knytte ID-tokener til (iss, sub) og ikke e-post, angi forventede JWT-algoritmer eksplisitt, be om minst mulige scopes, bruke kortlivede access tokens med rotasjon av refresh tokens og kontrollere utformingen av samtykkeskjermer for å oppdage risiko for merkevareetterligning.

Kontroll av OAuth redirect_uri

En OAuth-autorisasjonsserver godtar alle redirect_uri-er som begynner med "https://app.example.com". Hvilket angrep muliggjør dette?

Leksjonsoppsummering: OAuth-angrepsmønstre

Viktige OAuth-angrep: åpen omdirigering via mangelfull validering av redirect_uri (bruk nøyaktig samsvar), CSRF på grunn av manglende state-parameter, oppfanging av koder på mobil (begrenses av PKCE), tokenlekkasje i URL-er, mix-up i oppsett med flere leverandører (valider iss), SSRF via serverhentet redirect_uri, kollisjon mellom e-post-claims (bruk iss+sub), forveksling av JWT-algoritmer (fastsett forventet alg) og phishing via falske samtykkeskjermer.

Gratis å komme i gang

Lær deg Cryptology Academy med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
67
Leksjoner
261

Ofte stilte spørsmål

Er leksjonen «Sårbarheter i OAuth og angrepsmønstre» gratis?

Ja – hele teksten i «Sårbarheter i OAuth og angrepsmønstre» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Cryptology Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Cryptology Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Sårbarheter i OAuth og angrepsmønstre»?

Studer manipulering av redirect URI, CSRF mot authorization-endepunktet og sårbarheter som kan lekke tokener. Du øver på Cryptology Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Cryptology Academy?

Ingen tidligere erfaring er nødvendig. Cryptology Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.

Hvor lang tid tar leksjonen «Sårbarheter i OAuth og angrepsmønstre»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Cryptology Academy-leksjonen?

Ja. Alle Cryptology Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. OAuth 2.0-flyter og token-typer
  2. PKCE: Sikring av offentlige klienter
  3. OpenID Connect-claims og ID-tokener
  4. Sårbarheter i OAuth og angrepsmønstre
← Tilbake til Cryptology Academy