CSRF ide?
|
16-11-2016, 01:36
(Denne besked var sidst ændret: 16-11-2016, 01:37 af flopper3939.)
|
|||
|
|||
CSRF ide?
Hejsa folkens.
Jeg er forholdsvis ny til web udvikling/exploiting. Og jeg er ved at lære om CSRF. Og jeg fik en tanke... De fleste guides for at beskytte sig siger at man skal lave en token på form man generer. Og så tjekke den token når man poster. Så kan en anden side ikke vide hvad den token er, og derved ikke lave AJAXkald fra andre sider... Men jeg fik den tank at man kan gøre følgende: log ind på god side få sessid gå til min evil side lav et AJAX kald med get til god side parse html i javascript til at hente den nye CSRF token brug den nye CSRF token til at lave AJAXtil den gode side. Kunne ikke rigtig finde noget information på google om dette. Er der nogle af jer der har efaringer med denne type angreb? |
|||
16-11-2016, 07:37
|
|||
|
|||
RE: CSRF ide?
Hvordan vil du få fat i en brugers CSRF token? Det kræver jo deres login. Grunden til man beskytter sig imod et CSRF angreb, er jo lige netop det her.
yolo
|
|||
16-11-2016, 09:25
|
|||
|
|||
RE: CSRF ide?
Lad og sige vi har en side some hedder delete_user_form.php, og en der hedder delete.php
Selve formen med vores token i ligger i delete_user_form.php. Den token bliver tjekket i delete.php inden vi sletter en brugers konto. Så det der sker er. Folk logger ind på en side. Folk går til min side. Så laver de et GET(AJAX) request til delete_user_form.php (De er logget ind på siden så formen vil generere en token til dem.) Vi parser den og henter token ud af den form som lige er blevet generet. Vi gemmer denne token i en javascript variable. Derefter laver vi POST (AJAX) til delete.php med vores token. (De er stadig logget ind, og vi har deres token som vi lige har genereret VHA. vores GET (AJAX) request) Derved får dem helt uvidne til at slette deres konto. (Eller andre ting vi vil have dem til) |
|||
16-11-2016, 14:49
|
|||
|
|||
RE: CSRF ide?
(16-11-2016, 11:58)BigJ Skrev: Du kan ikke lave get requests på tværs af domains, ved mindre de tillader dette.. Så det bliver lidt svært :) Det kan du via PHP og så bruge det returnerede output
yolo
|
|||
16-11-2016, 15:02
|
|||
|
|||
RE: CSRF ide?
(16-11-2016, 09:25)flopper3939 Skrev: Lad og sige vi har en side some hedder delete_user_form.php, og en der hedder delete.php Der er bare lige to problemer med det. For det første forhindrer CORS restriktioner dig i at sende requests med AJAX til et andet domæne, medmindre du explicit tillader det ved at sætte headeren Access-Control-Allow-Origin. En sikkerhedsfeature som alle browsere har understøttet i lang tid efterhånden. |
|||
16-11-2016, 15:53
|
|||
|
|||
RE: CSRF ide?
så kan man hente den via iframe, også bruge jquery til at finde token med. Jeg ved man kan bruge iframe selvom det er cross domain.
|
|||
16-11-2016, 16:24
|
|||
|
|||
RE: CSRF ide?
(16-11-2016, 15:53)flopper3939 Skrev: så kan man hente den via iframe, også bruge jquery til at finde token med. Jeg ved man kan bruge iframe selvom det er cross domain. Som heller ikke virker. Du kan ikke hente det ud fra en iframe af samme grund. BigJ: Præcis, derfor er det ikke muligt
yolo
|
|||
16-11-2016, 17:22
|
|||
|
|||
RE: CSRF ide?
Okay :)
Skulle bare lige høre hvordan det hang sammen. Tak for hjælpen :) |
|||
16-11-2016, 17:39
|
|||
|
|||
RE: CSRF ide?
(16-11-2016, 17:22)flopper3939 Skrev: Okay :) Og her er et bevis: https://jsfiddle.net/8p3g6a64/ Desuden blokkerer 99% af alle sider, andre domains fra at lave iframes af siden. Prøv fx at ændre YouTube linket i iframens src attribut til https://shellsec.pw/ - Du vil få en: Citer:Refused to display 'https://www.shellsec.pw/' in a frame because it set 'X-Frame-Options' to 'DENY'. nede i din browsers console (alt afhængig af browser).
yolo
|
|||
16-11-2016, 19:35
|
|||
|
|||
RE: CSRF ide?
(16-11-2016, 17:39)Ash Skrev: Og her er et bevis: https://jsfiddle.net/8p3g6a64/ Ja i vores tilfælde var det på grund af ham der købte shellsec.dk og satte reklamer over en iframe med Shellsec. |
|||
|
User(s) browsing this thread: 1 Gæst(er)