I denne artikkelen får du den nødvendige informasjonen fra applikasjonen for å vite hva det angripende nettstedet skal gjøre for å sende gyldige forespørsler til den sårbare serveren. Deretter oppretter du en side som simulerer de legitime forespørslene og lurer brukeren til å besøke den siden mens den er autentisert. Du vil også lage noen få iterasjoner om det grunnleggende beviset på konseptet for å få det til å se mer ut som et angrep i den virkelige verden, der offeret ikke legger merke til det. Merk at kodefilen for denne artikkelen finner du på forfatterens GitHub.
Du trenger en gyldig brukerkonto i Bodgeit for denne artikkelen. Denne artikkelen bruker [email protected]
som offeret:
Hvordan gjøre det…
Først må du analysere forespørselen du vil tvinge offeret til å lage. For å gjøre dette, trenger du Burp Suite eller en annen proxy konfigurert i nettleseren:
Så det er en POST
forespørsel til http: // 192.168.56.11/Bodgeit/Passord.JSP,
og har bare passordet og dets bekreftelse i kroppen.
CSRF-Change-Password.html
) med følgende innhold: CSRF-Change-Password-skriptet.html
: Denne gangen har skjemaet en ID -parameter, og det er et skript på siden som vil sende inn innholdet når siden er lastet fullstendig.
Legg merke til hvordan målegenskapen til skjemaet er iFrame definert rett under den, og at en slik ramme har 0%høyde og bredde.
Når du sender en forespørsel fra en nettleser og allerede har en cookie som tilhører måldomenet som er lagret, vil nettleseren knytte informasjonskapselen til forespørselen før den sendes. Dette er det som gjør informasjonskapsler så praktisk som sesjonsidentifikatorer, men denne karakteristikken for hvordan HTTP fungerer også er det som gjør det sårbart for et angrep som den du så i denne artikkelen.
Når du laster inn en side i den samme nettleseren, der du har en aktiv økt i en applikasjon, vil nettleseren automatisk legge til øktkake til den forespørselen. Dette skjer selv om det er en annen fane eller et vindu, og denne siden gir en forespørsel til domenet der økten er startet.
Hvis serveren ikke bekrefter at forespørslene den mottar faktisk har sin opprinnelse fra applikasjonen, lar den et ondsinnet nettsted for å ringe på vegne av legitime, aktive brukere som besøker dette ondsinnede nettstedet mens de er autentisert til måldomenet.
I en penetrasjonstest for webapplikasjoner, den første koden du brukte, den med de to tekstfeltene og Sende inn knapp, kan være nok til å demonstrere tilstedeværelsen av en sikkerhetsfeil. Imidlertid kan penetrasjonstestingen av applikasjonen være en del av et annet engasjement, for eksempel en sosial ingeniør eller rød teamøvelse. I dette tilfellet vil det kreves noe ekstra krefter for å forhindre at offerbrukeren mistenker at noe skjer.
I denne artikkelen brukte du JavaScript for å automatisere sendingen av forespørselen ved å sette Onload -hendelsen på siden og utføre skjemaets innsendingsmetode i hendelsesbehandlerfunksjonen. Du brukte også en skjult iframe for å laste inn svaret på passordendringen, så offeret ser aldri meldingen om at passordet hans har endret seg.
Hvis du fant denne artikkelen interessant, kan du utforske Kali Linux Web Penetration Testing Cookbook - Second Edition For å oppdage de vanligste nettsårbarhetene og forhindre dem i å bli en trussel mot nettstedets sikkerhet. Kali Linux Web Penetration Testing Cookbook - Second Edition Gir deg ferdighetene du trenger for å dekke hvert trinn i en penetrasjonstest - fra å samle informasjon om systemet og applikasjonen til å identifisere sårbarheter gjennom manuell testing.