CRLF er akronymet som brukes til å referere til Linjeskift (\r) Linje Feed (\n). Som man kan se fra symbolene i parentesene, refererer «Vognretur» til enden av en linje, og «Linjemating» refererer til den nye linjen. Derfor brukes BÅDE CR og LF til å betegne sluttpunktet til en linje. Når en bruker ber om innhold på et nettsted, returnerer serveren innholdet på nettstedet sammen MED HTTP-overskriftene. Overskriftene og innholdet er atskilt med en definert kombinasjon AV CR og LF. DET er PÅ GRUNN AV CRLF at en server vet hvor en ny header begynner eller slutter. En Vognretur Linje Feed (CRLF) Injeksjon sårbarhet er En Type Server Side Injeksjon som oppstår når en angriper setter INN CRLF tegn i et inntastingsfelt for å lure serveren ved å gjøre det tror at et objekt har avsluttet og en ny har begynt. Dette skjer når webprogrammet ikke rense brukerinndata FOR CRLF-tegn. Den har en middels alvorlighetsgrad (P3 i Henhold Til Bugcrowds VRT).
CRLF Injeksjon angrep har to viktigste brukstilfeller:
- Logg Splitting: Angriperen setter inn en slutt på linjetegn og en ekstra linje for å forfalske loggfiloppføringene for å lure systemadministratorene ved å skjule andre angrep.
- HTTP Responsdeling: CRLF-injeksjon brukes til å legge TIL HTTP-overskrifter I HTTP-svaret, og for eksempel utføre ET xss-angrep som fører til avsløring av informasjon.
Eksempel:
en enkel GET-forespørsel kan utformes som følger:
GET /%0d%0aSet-Cookie:CRLFInjection=PreritPathak HTTP/1.1
Merk: %0d og %0a er kodede former for henholdsvis \ r og \ n. Hvis webapplikasjonen er sårbar, vil en angriper kunne sette en informasjonskapsel på nettstedet.
Virkninger AV CRLF-injeksjon
CRLF-Injeksjon gjør at angriperen kan sette falske informasjonskapsler, stjele csrf-tokens, avsløre brukerinformasjon ved å injisere et skript (XSS) og utføre en rekke andre angrep. Det tillater også angripere å deaktivere & omgå sikkerhetstiltak som XSS-filtre & Same Origin Policy (SOP), noe som gjør dem utsatt for følgende angrep:
1. XSS eller Cross Site Scripting er et sikkerhetsproblem som gjør det mulig for en angriper å injisere skadelig JavaScript-kode i webprogrammet. FØLGENDE GET forespørsler er laget i et forsøk kjede CRLF Injeksjon MED XSS.
Ved Å Sprette et varsel som inneholder sensitiv brukerinformasjon
www.target.com/%3f%0d%0aLocation:%0d%0aContent-Type:text/html%0d%0aX-XSS-Protection%3a0%0d%0a%0d%0a%3Cscript%3Ealert%28document.domain%29%3C/script%3E
Ved Å Deaktivere Xss Protection
www.target.com/%0d%0aContent-Length:35%0d%0aX-XSS-Protection:0%0d%0a%0d%0a23
2. COOKIE Injection
HTTP Response Splitting tillater en angriper å sette skadelige informasjonskapsler på offerets nettleser. I de fleste tilfeller vil FØLGENDE GET-forespørsel resultere i en 307-Omdirigering, og dermed blir offeret omdirigert til target.com & URL-ADRESSEN vil ikke inneholde parameteren Set-Cookie. I bakgrunnen vil imidlertid cookien bli satt.
www.target.com/%0d%0aSet-Cookie:CRLFInjection=MaliciousCookieSet
3. Phishing-Angrep
en angriper kan angi Plasseringen header som ville omdirigere offeret til den onde nettsiden. Dette nettstedet kan utvikles for å se ut som målnettstedet, og når offeret går inn i legitimasjonen, blir de sendt til angriperen. Plasseringen header kan settes som:
GET /%0d%0aLocation:%20https://evil.com HTTP/1.1
4. Session Fixation
I Likhet Med Cookie Injeksjon angrep, her angriperen setter en brukers økt-id til en bestemt verdi. Denne koblingen sendes til offeret, og når offeret logger på med denne økten, kan angriperen også logge på med samme økt-id.
www.target.com/%0d%0aSet-Cookie:session_id=942....
5. EN angriper kan utnytte CRLF-injeksjonen til å injisere HTTP-Overskrifter i et program for å beseire sikkerhetsmekanismer som XSS-filtre eller samme opprinnelsespolicy.
www.target.com/%0d%0aHackersHeader:NewHeader
cors (Kryss Opprinnelse Ressursdeling) aktivere overskrifter kan injiseres & angriperen kan bruke JavaScript for å få tilgang til sensitive ressurser som ellers er beskyttet AV SOP (Samme Opprinnelse Policy)som hindrer nettsteder fra ulike opprinnelse for å få tilgang til hverandre .
6. Web Cache forgiftning
Web-cache forgiftning er en teknikk på grunn som en angriper kan tjene forgiftet innhold ved å manipulere en web cache. For å kunne utnytte dette problemet, må en angriper forgifte det sårbare nettstedets caching-proxy, syndikatorer, cdn-er (content delivery networks) eller andre caching-mekanismer mellom klienten og serveren. Etter en vellykket web cache forgiftning, offeret har ingen anelse om skadelig innhold blir servert til dem av cache. Nedenfor er et eksempel på hvordan en angriper potensielt kan utnytte en host header injection (ved HJELP AV CRLF) ved å forgifte en web-cache.
For Følgende Forespørsel:
$ telnet www.target.com 80Trying x.x.x.x...Connected to www.target.com.Escape character is '^]'.GET /%0d%0aX-Forwarded-Host:hacker.com HTTP/1.1 //or HostHost: target.com
det ville være følgende svar:
HTTP/1.1 200 OK
<
title
>Example</
title
>
<
script
src
=
"http://hacker.com/script.js"
>
Diverse Brukstilfeller:
1. Injisere en falsk HTTP svar header:
Content-Length: 10
nå vil nettleseren bare analysere de neste 10 byte.
2. Injisering AV ET falskt HTTP-svarhode:
Content-Length: 0
dette behandles som et avsluttet svar & nettleserne begynner å analysere et nytt svar.
Begrensninger:
en utvikler bør huske på følgende ting for å forhindre CRLF-injeksjon:
- Sanitisering av brukerinngang.
- Kode CR & LF-tegn (\r, \n) slik at selv når de leveres, blir de ikke gjenkjent av serveren.
- Valider brukerinngangen før de når svarhodene (f.eks. ved å bruke metoder som StringEscapeUtils.escapeJava()).
- en unødvendig header skal deaktiveres.
følgende tabell understreker alvorlighetsgraden AV CRLF injeksjon i henhold til ulike industristandarder:
Classification | ID / Severity |
---|---|
OWASP 2017 | A1 |
CWE | 93 |
CVSS:3.0 | CVSS:3.0: AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:H |
Bugcrowd VRT | P3 |