Tråd bedømmelse:
  • 0 Stemmer - 0 Gennemsnit
  • 1
  • 2
  • 3
  • 4
  • 5
CSRF ide?
16-11-2016, 01:36 (Denne besked var sidst ændret: 16-11-2016, 01:37 af flopper3939.)
#1
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?
Find alle beskeder fra denne bruger
Citer denne besked i et svar
16-11-2016, 07:37
#2
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
Find alle beskeder fra denne bruger
Citer denne besked i et svar
16-11-2016, 09:25
#3
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)
Find alle beskeder fra denne bruger
Citer denne besked i et svar
16-11-2016, 14:49
#4
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 Cool
yolo
Find alle beskeder fra denne bruger
Citer denne besked i et svar
16-11-2016, 15:02
#5
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

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)

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.
Mangler du hjælp?
Regler |  E-mail (PGP)
Besøg denne brugers hjemmeside Find alle beskeder fra denne bruger
Citer denne besked i et svar
16-11-2016, 15:53
#6
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.
Find alle beskeder fra denne bruger
Citer denne besked i et svar
16-11-2016, 16:24
#7
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 Happy
yolo
Find alle beskeder fra denne bruger
Citer denne besked i et svar
16-11-2016, 17:22
#8
RE: CSRF ide?
Okay :)

Skulle bare lige høre hvordan det hang sammen. Tak for hjælpen :)
Find alle beskeder fra denne bruger
Citer denne besked i et svar
16-11-2016, 17:39
#9
RE: CSRF ide?
(16-11-2016, 17:22)flopper3939 Skrev: Okay :)

Skulle bare lige høre hvordan det hang sammen. Tak for hjælpen :)

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
Find alle beskeder fra denne bruger
Citer denne besked i et svar
16-11-2016, 19:35
#10
RE: CSRF ide?
(16-11-2016, 17:39)Ash Skrev: 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:


nede i din browsers console (alt afhængig af browser).

Ja i vores tilfælde var det på grund af ham der købte shellsec.dk og satte reklamer over en iframe med Shellsec.
Mangler du hjælp?
Regler |  E-mail (PGP)
Besøg denne brugers hjemmeside Find alle beskeder fra denne bruger
Citer denne besked i et svar
« Ældre | Nyere »




User(s) browsing this thread: 1 Gæst(er)