Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 21 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Ochrana proti CSRF

Registrovaný: 26.11.06
Prihlásený: 22.01.24
Príspevky: 4118
Témy: 319
Bydlisko: HE/BA
Príspevok NapísalOffline : 01.11.2011 20:37

Zdravím,

trochu som sa zľakol CSRF a chcem zabudovať ochranu proti tomuto útoku.
Čo viem o ochrane proti CSRF:

Aplikácia odošle spolu s formulárom aj token. Tento token si uloží u seba. Ak sa tokeny po odoslaní formuláru zhodujú, formulár sa spracuje.

Keď útočník odošle formulár, musí ho odoslať bez tokenu, keďže nevie aký je a generovať ho tiež nevie.

Toľko som sa dozvedel. Lenže: ak vie útočník odosielať formulár, vie asi približné fungovanie aplikácie a teda vie čo si má požiadať od servera, kde mu ten token vypíše. Napríklad ak moja aplikácia požiada formulár, tak vytiahne celý html kód formu, kde bude uložený tento token. Tento celý kód si ale vie požiadať aj útočník a vytiahnuť z neho len token. Tento si uloží do premennej a tú následne odosiela s vyplneným "záškodnickým" formulárom.

Ako sa teda proti tomu brániť? Zrejme som niečo nepostrehol, čo skutočne chráni pred CSRF tak mi to prosím vysvetlite. Vďaka.


Offline

Čestný člen
Čestný člen
Ochrana proti CSRF

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 01.11.2011 21:24

Ten token sa praveze vobec nemusi dat vyziadat od servera. Ulozis ho do sessiony, teda bude pre kazdeho pouzivatela jedinecny, plus ho mozes regenerovat pri kazdom requeste/po nejakom case.


Offline

Čestný člen
Čestný člen
Ochrana proti CSRF

Registrovaný: 21.02.06
Prihlásený: 08.12.14
Príspevky: 5404
Témy: 30
Bydlisko: Bratislava
Príspevok NapísalOffline : 01.11.2011 22:50

Presne ako píše Ďuri - ak útočník bude presne vedieť, ako vyzerá tvoj formulár a že tam generuješ nejaký token, nebude vedieť odoslať ten istý token, čo má vygenerovaný (a v session uložený) používateľ, ktorého chce "napadnúť".







_________________
Neradím a nekomunikujem cez SS, ak niečo potrebujete, máte iné možnosti: Ak vám zmizla téma, alebo sa vám niečo nepáči. Ak potrebujete nahlásiť príspevok/človeka, reportujte ho. Ak máte s niečim problém, riešte to v danej téme.
Offline

Užívateľ
Užívateľ
Ochrana proti CSRF

Registrovaný: 26.11.06
Prihlásený: 22.01.24
Príspevky: 4118
Témy: 319
Bydlisko: HE/BA
Príspevok Napísal autor témyOffline : 02.11.2011 0:23

Ako potom overím token, keď ho neodošlem klientovi?


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 13.11.07
Prihlásený: 20.08.16
Príspevky: 1702
Témy: 0
Príspevok NapísalOffline : 02.11.2011 0:28

Ono to až tak nechráni teba, ako majiteľa servera, ale používateľov, ktorý môžu tvoj server používať (pretože ak by som nejako chcel zneužívať tvoj server, zabrániš mi v tom len veľmi ťažko, pretože sa môžem tváriť ako normálny používateľ a ten CSFR token získam priamo z html kódu).

Ak tam CSFR token máš, tak sťažíš odosielanie formulára cez nejaký podstrčený javascript na inej doméne (ak formulár používa metódu GET, tak stačí výsledné url použiť napr. ako src atribút pri obrázku), pretože ten token nepoznáš (takže nemôžeš predpripraviť URL pri GET metóde a keďže ide o inú doménu, nemáš ako získať html kód, aby si mohol ten token z toho html kódu vybrať).


Offline

Užívateľ
Užívateľ
Ochrana proti CSRF

Registrovaný: 26.11.06
Prihlásený: 22.01.24
Príspevky: 4118
Témy: 319
Bydlisko: HE/BA
Príspevok Napísal autor témyOffline : 02.11.2011 19:00

chrono, poznám teóriu CSRF, ale vysvetli mi, prečo by som nemohol napísať skript, ktorý stiahne formulár, prečíta z neho token a odošle ho spolu s formulárom a tento skript následne podstrčiť prihlásenému používateľovi.


Offline

Čestný člen
Čestný člen
Ochrana proti CSRF

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 02.11.2011 19:12

No lebo nemozes :) ty si mozes precitat nanajvys tak svoj token, ale ini uzivatelia maju iny token.


Offline

Užívateľ
Užívateľ
Ochrana proti CSRF

Registrovaný: 26.11.06
Prihlásený: 22.01.24
Príspevky: 4118
Témy: 319
Bydlisko: HE/BA
Príspevok Napísal autor témyOffline : 02.11.2011 19:14

Ale veď podstrčím kód, ktorý si spustíš ako prihlásený používateľ. Tento kód za Teba požiada formulár na odoslanie správy, tento formulár prečíta a vytiahne z neho token. Okamžite ten token pridá do formuláru, ktorý odošle. Stále to bude vykonávať pod tvojím účtom na tvojom PC.


Offline

Čestný člen
Čestný člen
Ochrana proti CSRF

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 02.11.2011 19:17

Ako si predstavujes to vyziadanie formulara "za mna"? Ak Javascriptom, nedostanes sa k tokenu kvoli cross-origin obmedzeniam. Ak serverom, neziadas ten formular za mna, ale za seba; musel by si sa v tom requeste identifikovat ako ja, v praxi by si vacsinou musel mat moju cookie.


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 13.11.07
Prihlásený: 20.08.16
Príspevky: 1702
Témy: 0
Príspevok NapísalOffline : 02.11.2011 19:18

A ako by ten skript na stiahnutie formulára vyzeral?


Offline

Užívateľ
Užívateľ
Ochrana proti CSRF

Registrovaný: 26.11.06
Prihlásený: 22.01.24
Príspevky: 4118
Témy: 319
Bydlisko: HE/BA
Príspevok Napísal autor témyOffline : 02.11.2011 19:24

Ďuri, myslel som cez JS, čo presne je to cross-origin obmezdenie? Dá sa na to spoľahnúť?


Offline

Čestný člen
Čestný člen
Ochrana proti CSRF

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 02.11.2011 19:29

Utocnik by mal na stranke iframe, do ktoreho by sa nacitavala stranka s formularom. V takom pripade by som bol naozaj vnutri toho iframe prihlaseny za seba, ale ten token nemas ako precitat, prehliadac by ti akykolvek pristup k atributom objektu <iframe>.contentWindow zakazal, lebo obsah nepochadza z tej istej domeny. A ano, je to spolahlive.


Offline

Užívateľ
Užívateľ
Ochrana proti CSRF

Registrovaný: 26.11.06
Prihlásený: 22.01.24
Príspevky: 4118
Témy: 319
Bydlisko: HE/BA
Príspevok Napísal autor témyOffline : 02.11.2011 19:33

A čo AJAX požiadavka na stránku s formom? Teda nie načítavanie do iframu ale len do premennej. No predpokladám, že to bude podobne. Potom ale ako funguje to CSRF? Jedine cez GET požiadavky. Alebo je možné odosielať POST požiadavku medzi doménami?


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 13.11.07
Prihlásený: 20.08.16
Príspevky: 1702
Témy: 0
Príspevok NapísalOffline : 02.11.2011 19:37

Post medzi doménami odošleš, problém je, že nemáš ako zistiť správny token (a nefunguje ani Ajax). Ak tam ale žiadny token nemajú, tak to môžeš nejako zneužiť.


Offline

Užívateľ
Užívateľ
Ochrana proti CSRF

Registrovaný: 26.11.06
Prihlásený: 22.01.24
Príspevky: 4118
Témy: 319
Bydlisko: HE/BA
Príspevok Napísal autor témyOffline : 02.11.2011 19:40

Čiže GET medzi doménami nefunguje ale POST už áno?


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 13.11.07
Prihlásený: 20.08.16
Príspevky: 1702
Témy: 0
Príspevok NapísalOffline : 02.11.2011 19:44

GET samozrejme funguje a určite si ho používal veľmi často aj ty :) (napr. ak používaš jQuery zo stránok googleapis; obrázok z inej domény... a hlavne nejaký reklamný systém, z inej domény)


Offline

Užívateľ
Užívateľ
Ochrana proti CSRF

Registrovaný: 26.11.06
Prihlásený: 22.01.24
Príspevky: 4118
Témy: 319
Bydlisko: HE/BA
Príspevok Napísal autor témyOffline : 02.11.2011 19:50

Pýtam sa na GET a POST medzi doménami požiadavky pomocou AJAX.


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 13.11.07
Prihlásený: 20.08.16
Príspevky: 1702
Témy: 0
Príspevok NapísalOffline : 02.11.2011 19:57

V takom prípade nefunguje žiadna metóda (a teda GET, POST, PUT, DELETE..., alebo čokoľvek si vymyslíš).


Offline

Užívateľ
Užívateľ
Ochrana proti CSRF

Registrovaný: 26.11.06
Prihlásený: 22.01.24
Príspevky: 4118
Témy: 319
Bydlisko: HE/BA
Príspevok Napísal autor témyOffline : 02.11.2011 20:00

OK, takže jediná možnosť pre CSRF je GET požiadavka napríklad v obrázku alebo v iFrami s vhodnými parametrami v adrese, ak server nepoužíva tokeny?


Offline

Čestný člen
Čestný člen
Ochrana proti CSRF

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 02.11.2011 21:20

Ak server nepouziva tokeny, robis taky request, akym sposobom sa odosielaju data skriptu, ktory ich spracuva. Vacsinou to byva POST, takze by si vytvoril POST request.
Este jedna vec ti nie je mozno jasna: samotne zaslanie requestu nie je problem, vytvoris <form>, nechas ho Javascriptom automaticky odoslat; HTTP metoda moze byt hocijaka (preto v pripade nepouzitia tokenov a/alebo kontroly referera je CSRF jednoducha vec). Cross-origin obmedzenia ti prinesu problem len vtedy, ak sa snazis nieco vytiahnut z cudzej stranky, ktoru si predtym requestoval (preto sa nedostanes k tokenu).


Offline

Užívateľ
Užívateľ
Ochrana proti CSRF

Registrovaný: 26.11.06
Prihlásený: 22.01.24
Príspevky: 4118
Témy: 319
Bydlisko: HE/BA
Príspevok Napísal autor témyOffline : 03.11.2011 14:38

OK, vďaka za info, pomohli ste mi.


Odpovedať na tému [ Príspevkov: 21 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. ochrana proti spamu

v PHP, ASP

2

427

23.04.2009 17:38

stenley Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. ochrana proti spamerom

v PHP, ASP

11

740

08.02.2008 14:56

Tominator Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ochrana proti prepisovaniu

v Operačné systémy Microsoft

0

469

11.03.2009 16:20

Pavol.F Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ochrana proti \n

v PHP, ASP

6

623

11.12.2008 12:49

B.A.X.O Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ochrana proti linkovaniu

v Ostatné

0

690

17.05.2009 1:21

JanoF Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ochrana macbookov proti kradnutiu

v Ostatné operačné systémy

4

602

15.05.2012 14:05

El_Silver Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ochrana proti zmazaniu súboru

v Ostatné programy

3

1214

07.08.2011 11:13

tairikuokami Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ochrana proti SQL INJECTION

v PHP, ASP

3

603

16.05.2010 15:29

ac.milan Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. MicroSD - ochrana proti zápisu

v Ostatné zariadenia

5

7290

21.08.2008 13:27

fanky112 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. USB - Ochrana proti zapisu

v Operačné systémy Microsoft

21

6593

21.10.2013 14:41

shiro Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. USB Kľúč ochrana proti zapisovaniu

v Ostatné zariadenia

4

2295

01.03.2011 20:04

Bennhy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Vista a ochrana proti prepisovaniu

v Operačné systémy Microsoft

1

386

07.04.2009 9:39

shiro Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ochrana proti vytvoreniu Image-u?

v Ostatné programy

5

490

28.04.2011 14:56

tairikuokami Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ochrana proti viacnásobnému spúšťaniu skriptu

v JavaScript, VBScript, Ajax

2

512

15.09.2010 20:53

optimista Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ochrana proti SPAMu na phpBB 2

v Redakčné systémy

10

2742

16.01.2007 16:40

AVAST Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. P: Nástenný ohrievač, ochrana proti zamrznutiu FKM 400

v Predám

0

310

07.11.2016 21:13

notfake Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra