Opdeling af HTTP-svar - HTTP response splitting

Opdeling af HTTP-svar er en form for sårbarhed i forbindelse med webapplikationer , der skyldes, at applikationen eller dens miljø ikke kan desinficere inputværdier korrekt. Det kan bruges til at udføre scriptingangreb på tværs af websteder, fordærvning på tværs af brugere, forgiftning af webcache og lignende udnyttelser .

Angrebet består i at få serveren til at udskrive en vognretursekvens (CR, ASCII 0x0D ) linjeskift (LF, ASCII 0x0A ) sekvens efterfulgt af indhold leveret af angriberen i header- sektionen af ​​dets svar, typisk ved at inkludere dem i inputfelter sendt til ansøgningen. I henhold til HTTP- standarden ( RFC 2616 ) adskilles overskrifter med en CRLF, og svarets overskrifter adskilles fra dets krop med to. Derfor giver den manglende fjernelse af CR'er og LF'er angriberen mulighed for at indstille vilkårlige overskrifter, tage kontrol over kroppen eller opdele svaret i to eller flere separate svar - deraf navnet.

Forebyggelse

Den generiske løsning er at URL-kode strenge, før de inkluderes i HTTP-overskrifter såsom Location eller Set-Cookie .

Typiske eksempler på desinficering inkluderer casting til heltal eller aggressiv udskiftning af regulært udtryk . Selvom opdelingen af ​​svar ikke er specifik for PHP , indeholder PHP-tolken beskyttelse mod angrebet siden version 4.4.2 og 5.1.2.

Referencer

  1. ^ "PHP: PHP 5.1.2. Udgivelsesmeddelelse" . PHP-gruppen . Hentet 2014-11-13 .

eksterne links