[ Príspevkov: 21 ] 
AutorSpráva
Offline

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

Registrovaný: 26.11.06
Prihlásený: 23.09.17
Príspevky: 4123
Témy: 317 | 317
Bydlisko: HE/BA
NapísalOffline : 01.11.2011 20:37 | Ochrana proti CSRF

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.


_________________
Desktop: CASE: Cooler Master Centurion 532 MB: ASUS P5Q PRO Turbo CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 4-4-4-12 2T GPU: PowerColor PCS+ HD6950 HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: LCD: DELL U2414M 24" 1920x1200
Offline

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

Registrovaný: 11.08.07
Príspevky: 4110
Témy: 30 | 30
Bydlisko: Brno
NapísalOffline : 01.11.2011 21:24 | Ochrana proti CSRF

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: 5446
Témy: 30 | 30
Bydlisko: Bratislava
NapísalOffline : 01.11.2011 22:50 | Ochrana proti CSRF

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ý: 23.09.17
Príspevky: 4123
Témy: 317 | 317
Bydlisko: HE/BA
Napísal autor témyOffline : 02.11.2011 0:23 | Ochrana proti CSRF

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


_________________
Desktop: CASE: Cooler Master Centurion 532 MB: ASUS P5Q PRO Turbo CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 4-4-4-12 2T GPU: PowerColor PCS+ HD6950 HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: LCD: DELL U2414M 24" 1920x1200
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: 1719
Témy: 0 | 0
NapísalOffline : 02.11.2011 0:28 | Ochrana proti CSRF

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ý: 23.09.17
Príspevky: 4123
Témy: 317 | 317
Bydlisko: HE/BA
Napísal autor témyOffline : 02.11.2011 19:00 | Ochrana proti CSRF

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.


_________________
Desktop: CASE: Cooler Master Centurion 532 MB: ASUS P5Q PRO Turbo CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 4-4-4-12 2T GPU: PowerColor PCS+ HD6950 HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: LCD: DELL U2414M 24" 1920x1200
Offline

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

Registrovaný: 11.08.07
Príspevky: 4110
Témy: 30 | 30
Bydlisko: Brno
NapísalOffline : 02.11.2011 19:12 | Ochrana proti CSRF

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ý: 23.09.17
Príspevky: 4123
Témy: 317 | 317
Bydlisko: HE/BA
Napísal autor témyOffline : 02.11.2011 19:14 | Ochrana proti CSRF

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.


_________________
Desktop: CASE: Cooler Master Centurion 532 MB: ASUS P5Q PRO Turbo CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 4-4-4-12 2T GPU: PowerColor PCS+ HD6950 HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: LCD: DELL U2414M 24" 1920x1200
Offline

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

Registrovaný: 11.08.07
Príspevky: 4110
Témy: 30 | 30
Bydlisko: Brno
NapísalOffline : 02.11.2011 19:17 | Ochrana proti CSRF

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: 1719
Témy: 0 | 0
NapísalOffline : 02.11.2011 19:18 | Ochrana proti CSRF

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


Offline

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

Registrovaný: 26.11.06
Prihlásený: 23.09.17
Príspevky: 4123
Témy: 317 | 317
Bydlisko: HE/BA
Napísal autor témyOffline : 02.11.2011 19:24 | Ochrana proti CSRF

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


_________________
Desktop: CASE: Cooler Master Centurion 532 MB: ASUS P5Q PRO Turbo CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 4-4-4-12 2T GPU: PowerColor PCS+ HD6950 HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: LCD: DELL U2414M 24" 1920x1200
Offline

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

Registrovaný: 11.08.07
Príspevky: 4110
Témy: 30 | 30
Bydlisko: Brno
NapísalOffline : 02.11.2011 19:29 | Ochrana proti CSRF

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ý: 23.09.17
Príspevky: 4123
Témy: 317 | 317
Bydlisko: HE/BA
Napísal autor témyOffline : 02.11.2011 19:33 | Ochrana proti CSRF

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?


_________________
Desktop: CASE: Cooler Master Centurion 532 MB: ASUS P5Q PRO Turbo CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 4-4-4-12 2T GPU: PowerColor PCS+ HD6950 HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: LCD: DELL U2414M 24" 1920x1200
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: 1719
Témy: 0 | 0
NapísalOffline : 02.11.2011 19:37 | Ochrana proti CSRF

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ý: 23.09.17
Príspevky: 4123
Témy: 317 | 317
Bydlisko: HE/BA
Napísal autor témyOffline : 02.11.2011 19:40 | Ochrana proti CSRF

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


_________________
Desktop: CASE: Cooler Master Centurion 532 MB: ASUS P5Q PRO Turbo CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 4-4-4-12 2T GPU: PowerColor PCS+ HD6950 HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: LCD: DELL U2414M 24" 1920x1200
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: 1719
Témy: 0 | 0
NapísalOffline : 02.11.2011 19:44 | Ochrana proti CSRF

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ý: 23.09.17
Príspevky: 4123
Témy: 317 | 317
Bydlisko: HE/BA
Napísal autor témyOffline : 02.11.2011 19:50 | Ochrana proti CSRF

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


_________________
Desktop: CASE: Cooler Master Centurion 532 MB: ASUS P5Q PRO Turbo CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 4-4-4-12 2T GPU: PowerColor PCS+ HD6950 HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: LCD: DELL U2414M 24" 1920x1200
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: 1719
Témy: 0 | 0
NapísalOffline : 02.11.2011 19:57 | Ochrana proti CSRF

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ý: 23.09.17
Príspevky: 4123
Témy: 317 | 317
Bydlisko: HE/BA
Napísal autor témyOffline : 02.11.2011 20:00 | Ochrana proti CSRF

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?


_________________
Desktop: CASE: Cooler Master Centurion 532 MB: ASUS P5Q PRO Turbo CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 4-4-4-12 2T GPU: PowerColor PCS+ HD6950 HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: LCD: DELL U2414M 24" 1920x1200
Offline

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

Registrovaný: 11.08.07
Príspevky: 4110
Témy: 30 | 30
Bydlisko: Brno
NapísalOffline : 02.11.2011 21:20 | Ochrana proti CSRF

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ý: 23.09.17
Príspevky: 4123
Témy: 317 | 317
Bydlisko: HE/BA
Napísal autor témyOffline : 03.11.2011 14:38 | Ochrana proti CSRF

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


_________________
Desktop: CASE: Cooler Master Centurion 532 MB: ASUS P5Q PRO Turbo CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 4-4-4-12 2T GPU: PowerColor PCS+ HD6950 HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: LCD: DELL U2414M 24" 1920x1200
 [ Príspevkov: 21 ] 


Ochrana proti CSRF



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

251

23.04.2009 17:38

stenley

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

ochrana proti spamerom

v PHP, ASP

11

456

08.02.2008 14:56

Tominator

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

Ochrana proti prepisovaniu

v Operačné systémy Microsoft

0

239

11.03.2009 16:20

Pavol.F

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

Ochrana proti \n

v PHP, ASP

6

387

11.12.2008 12:49

B.A.X.O

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

Ochrana proti linkovaniu

v Ostatné

0

460

17.05.2009 1:21

JanoF

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

Ochrana macbookov proti kradnutiu

v Ostatné operačné systémy

4

383

15.05.2012 14:05

El_Silver

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

Ochrana proti zmazaniu súboru

v Ostatné programy

3

838

07.08.2011 11:13

tairikuokami

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

Ochrana proti SQL INJECTION

v PHP, ASP

3

379

16.05.2010 15:29

ac.milan

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

MicroSD - ochrana proti zápisu

v Ostatné zariadenia

5

6541

21.08.2008 13:27

fanky112

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

USB - Ochrana proti zapisu

v Operačné systémy Microsoft

21

4128

21.10.2013 14:41

shiro

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

USB Kľúč ochrana proti zapisovaniu

v Ostatné zariadenia

4

1911

01.03.2011 20:04

Bennhy

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

Ochrana proti vytvoreniu Image-u?

v Ostatné programy

5

307

28.04.2011 14:56

tairikuokami

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

Vista a ochrana proti prepisovaniu

v Operačné systémy Microsoft

1

203

07.04.2009 9:39

shiro

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

214

15.09.2010 20:53

optimista

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

Ochrana proti SPAMu na phpBB 2

v Redakčné systémy

10

2401

16.01.2007 16:40

AVAST

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

93

07.11.2016 21:13

notfake



© 2005 - 2018 PCforum, edited by JanoF