IT NEWS PC REVUE PC FORUM FreeBSDInternet time: @410
Obsah fóra
Pravidlá  •  Kontakt  •  Prihlásenie  •  Registrácia

Ekonomický softvér KROS

Programy na vedenie komplexnej agendy JÚ a PÚ. Vyskúšajte demo zadarmo! www.kros.sk

Dala som si poradiť

O moje peniaze je postarané. A o vaše? www.partnersgroup.sk

Účtovníctvo, Faktúry, Sklady

jednoducho ovládateľné programy od MRP za 20 rokov cez 100000 inštalácií www.mrp.sk

Zbavte sa viazanosti

Za Samsung Galaxy Ace so zlatým O2 Paušálom zaplatíte teraz 12 €! pausal.o2.sk

Úsporná stavba domu

PORFIX - postavte si dom úspornejšie! Ušetríte na energiách! www.Porfix.sk

Ochrana proti CSRF

Zaslať odpoveď
AutorSpráva
Flety
Užívateľ
Užívateľ

Založený: 26.11.2006
Príspevky: 4109
Bydlisko: HE(Humenne) - KE
Vek: 18

PríspevokZaslal: Ut 01.11.11 21:37Odpovedať s citátomNávrat hore

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 P5K CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 5-5-5-12 GPU: Saphire ATi Radeon HD5850 Toxic HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: Fortron Epsilon 700W LCD: LG L226W 1680x1050 2ms
Zobraziť informácie o autoroviOdoslať súkromnú správuOdoslať e-mailICQSkypeFacebookZobraziť autorove WWW stránky
Ďuri
Administrátor
Administrátor

Založený: 11.08.2007
Príspevky: 3785
Bydlisko: Brno

PríspevokZaslal: Ut 01.11.11 22:24Odpovedať s citátomNávrat hore

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.
Zobraziť informácie o autoroviOdoslať súkromnú správuJabberSkype
shaggy
Moderátor
Moderátor

Založený: 21.02.2006
Príspevky: 4627
Bydlisko: Bratislava

PríspevokZaslal: Ut 01.11.11 23:50Odpovedať s citátomNávrat hore

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.
Zobraziť informácie o autoroviOdoslať súkromnú správuOdoslať e-mailZobraziť autorove WWW stránky
Flety
Užívateľ
Užívateľ

Založený: 26.11.2006
Príspevky: 4109
Bydlisko: HE(Humenne) - KE
Vek: 18

PríspevokZaslal: St 02.11.11 1:23Odpovedať s citátomNávrat hore

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

_________________
Desktop: CASE: Cooler Master Centurion 532 MB: ASUS P5K CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 5-5-5-12 GPU: Saphire ATi Radeon HD5850 Toxic HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: Fortron Epsilon 700W LCD: LG L226W 1680x1050 2ms
Zobraziť informácie o autoroviOdoslať súkromnú správuOdoslať e-mailICQSkypeFacebookZobraziť autorove WWW stránky
chrono
Skúsený užívateľ
Skúsený užívateľ

Založený: 13.11.2007
Príspevky: 808

PríspevokZaslal: St 02.11.11 1:28Odpovedať s citátomNávrat hore

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ť).
Zobraziť informácie o autoroviOdoslať súkromnú správu
Flety
Užívateľ
Užívateľ

Založený: 26.11.2006
Príspevky: 4109
Bydlisko: HE(Humenne) - KE
Vek: 18

PríspevokZaslal: St 02.11.11 20:00Odpovedať s citátomNávrat hore

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 P5K CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 5-5-5-12 GPU: Saphire ATi Radeon HD5850 Toxic HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: Fortron Epsilon 700W LCD: LG L226W 1680x1050 2ms
Zobraziť informácie o autoroviOdoslať súkromnú správuOdoslať e-mailICQSkypeFacebookZobraziť autorove WWW stránky
Ďuri
Administrátor
Administrátor

Založený: 11.08.2007
Príspevky: 3785
Bydlisko: Brno

PríspevokZaslal: St 02.11.11 20:12Odpovedať s citátomNávrat hore

No lebo nemozes ty si mozes precitat nanajvys tak svoj token, ale ini uzivatelia maju iny token.
Zobraziť informácie o autoroviOdoslať súkromnú správuJabberSkype
Flety
Užívateľ
Užívateľ

Založený: 26.11.2006
Príspevky: 4109
Bydlisko: HE(Humenne) - KE
Vek: 18

PríspevokZaslal: St 02.11.11 20:14Odpovedať s citátomNávrat hore

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 P5K CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 5-5-5-12 GPU: Saphire ATi Radeon HD5850 Toxic HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: Fortron Epsilon 700W LCD: LG L226W 1680x1050 2ms
Zobraziť informácie o autoroviOdoslať súkromnú správuOdoslať e-mailICQSkypeFacebookZobraziť autorove WWW stránky
Ďuri
Administrátor
Administrátor

Založený: 11.08.2007
Príspevky: 3785
Bydlisko: Brno

PríspevokZaslal: St 02.11.11 20:17Odpovedať s citátomNávrat hore

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.
Zobraziť informácie o autoroviOdoslať súkromnú správuJabberSkype
chrono
Skúsený užívateľ
Skúsený užívateľ

Založený: 13.11.2007
Príspevky: 808

PríspevokZaslal: St 02.11.11 20:18Odpovedať s citátomNávrat hore

A ako by ten skript na stiahnutie formulára vyzeral?
Zobraziť informácie o autoroviOdoslať súkromnú správu
Flety
Užívateľ
Užívateľ

Založený: 26.11.2006
Príspevky: 4109
Bydlisko: HE(Humenne) - KE
Vek: 18

PríspevokZaslal: St 02.11.11 20:24Odpovedať s citátomNávrat hore

Ď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 P5K CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 5-5-5-12 GPU: Saphire ATi Radeon HD5850 Toxic HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: Fortron Epsilon 700W LCD: LG L226W 1680x1050 2ms
Zobraziť informácie o autoroviOdoslať súkromnú správuOdoslať e-mailICQSkypeFacebookZobraziť autorove WWW stránky
Ďuri
Administrátor
Administrátor

Založený: 11.08.2007
Príspevky: 3785
Bydlisko: Brno

PríspevokZaslal: St 02.11.11 20:29Odpovedať s citátomNávrat hore

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.
Zobraziť informácie o autoroviOdoslať súkromnú správuJabberSkype
Flety
Užívateľ
Užívateľ

Založený: 26.11.2006
Príspevky: 4109
Bydlisko: HE(Humenne) - KE
Vek: 18

PríspevokZaslal: St 02.11.11 20:33Odpovedať s citátomNávrat hore

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 P5K CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 5-5-5-12 GPU: Saphire ATi Radeon HD5850 Toxic HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: Fortron Epsilon 700W LCD: LG L226W 1680x1050 2ms
Zobraziť informácie o autoroviOdoslať súkromnú správuOdoslať e-mailICQSkypeFacebookZobraziť autorove WWW stránky
chrono
Skúsený užívateľ
Skúsený užívateľ

Založený: 13.11.2007
Príspevky: 808

PríspevokZaslal: St 02.11.11 20:37Odpovedať s citátomNávrat hore

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ť.
Zobraziť informácie o autoroviOdoslať súkromnú správu
Flety
Užívateľ
Užívateľ

Založený: 26.11.2006
Príspevky: 4109
Bydlisko: HE(Humenne) - KE
Vek: 18

PríspevokZaslal: St 02.11.11 20:40Odpovedať s citátomNávrat hore

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

_________________
Desktop: CASE: Cooler Master Centurion 532 MB: ASUS P5K CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 5-5-5-12 GPU: Saphire ATi Radeon HD5850 Toxic HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: Fortron Epsilon 700W LCD: LG L226W 1680x1050 2ms
Zobraziť informácie o autoroviOdoslať súkromnú správuOdoslať e-mailICQSkypeFacebookZobraziť autorove WWW stránky
Zobraziť príspevky z predchádzajúcich:    
Zaslať odpoveď
Nemôžete pridávať nové témy do tohto fóra.
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.
Nemôžete hlasovať v tomto fóre.

Powered by phpBB 2.x.x © 2005 - 2012 PCforum, webhosting by WebSupport, edited by JanoF

SEO - optimalizácia pre vyhľadávače

Freebsd