Feedback Form
Feed subscription » blog | » comments | » irc | » fórum | » mobi | » twitter

FD: Hacknite si blog.sme.sk za pomoci XSS

FD: Hacknite si blog.sme.sk za pomoci XSSOd kedy som začal písať tento blog prešlo len 5 mesiacov. V začiatkoch som sa nevedel rozhodnúť, aký rozsah tém by som rád pokrýval, no dnes to už viem presne. Rozhodol som sa skúsiť vzdelať lokálnych vývojárov a administrátorov v otázkach bezpečnosti a moje Full Disclosure články by tomu mali dopomôcť.

Ten prvý o portáli T-Station vyšiel len pred niekoľkými dňami, no tvorcovia portálu zareagovali celkom promptne a chybu odstránili. Bohužiaľ, to bolo tak všetko. Ďalšie chyby, ktoré som nereportoval odstránené nie sú, aj keď sa nachádzajú na miestach, ktoré doslova bijú do očí. Možno sa aj ja dočkám doby, keď jedinou odpoveďou na môj email upozorňujúci na chybu nebude len stručné poďakovanie, ale záplava otázok, ktorými sa budú chcieť autori projektu dozvedieť viac o ošetrení prípadných zraniteľností, poprípade nás nikto nenapadne slovami:

Pokud by jste znal tochnoligi Lotus Notes, vedel by jste, ze se v zadnem pripade nejedna o bezpecnostni chybu, pouze kosmetickou na strane uzivatele.
Zdroj: forum@synopsi

Nateraz verím, že sa situácia zlepší a tak prinášam ďalšie úplne odhalenie zraniteľnosti, tentokrát v systéme blogov na portáli sme.sk. Napriek tomu, že som zraniteľnosť nahlásil pánovi Kotovi a dokonca keď sa po dvoch dňoch neozval aj cez formulár na stránkach sme, dodnes sa nič nezmenilo a zraniteľnosť stále funguje. Či sa jedná o ignoráciu problému, alebo sa jednoducho dva emaily stratili neviem, každopádne snáď odhalenú zraniteľnosť odstránia v čo najkratšom čase.

Systém správ

Opätovne sa chyba nachádza v systéme správ (v administrácii blogu), tak ako pri portáli T-Station, tentokrát sú však možnosti infikácie ďaleko väčšie, pretože systém zobrazuje správu hneď v úvode po prihlásení a to bez orezania znakov, teda sa správa načítava v plnej dĺžke! Pre hackera vysnený prípad. Správy sa posielajú na nick, ktorý nie je problém získať jednoduchým robotom, chýba však adresár, ktorý by celý proces značne uľahčil. Napriek tomu je získanie nickov veľmi jednoduchá záležitosť, keďže prihlasovacie meno je vždy časťou url blogera (príklad http://michalsvab.blog.sme.sk). Urobiť si zoznam bloggerov by potencionálnemu hackerovi trvalo maximálne niekoľko minút, mne to trvalo asi minútu aj s odladením.

Skript dávam k dispozícii ako určitý POC. Je napísaný v mojom obľúbenom jazyku python. Netvrdím, že sa nedal napísať aj inak, lepšie, ale to čo som chcel ukázať robí dostatočne a jeho syntax je vážne veľmi jednoduchá, takže mu porozumie aj začiatočník.

Exploit

Na vytvorenie exploitu nepotrebujete vedieť nič ďalšie. Tentokrát som pre demonštráciu zvolil možnosť zmeniť si farebnú schému administrácie blogu. Vizuálny efekt je skutočne to najlepšie riešenie a nemôže prakticky nikomu ublížiť. Rozmýšľal som aj nad inými možnosťami, no autori systému si dali, na moje veľmi príjemne prekvapenie, záležať na ochrane zmeny hesla vyžiadaním si pôvodného. Pre získanie, či zmenu hesla, by musel útočník využiť trošku sociálneho inžinierstva. Scénar by bol asi nasledovný. Útočník pošle obeti správu obsahujúci červa (opätovne som pri teórii vytvoriť samovoľne šíriaceho sa červa). Tá sa prihlási do systému a systém pri načítavaní úvodnej stránky spustí útočníkov kód. Ten zobrazí výstražné okno, že pri prihlásení došlo k chybe, čo nie je užívateľova chyba a nech sa opätovne prihlási. Celý dizajn sa prekryje dizajnom prihlasovacieho formuláru, pričom užívateľ bude vyzvaný k opätovnému prihláseniu. Ten tak v dobrej vôli urobí a kód si zapíše do cookies hodnotu, aby vedel, že sa nemá opätovne inicializovať, pričom heslo obete spolu s nickom pošle útočníkovi ako správu. Takto by sa hacker mohol veľmi jednoducho dostať k prihlasovacím údajom všetkých užívateľov bez toho, aby nadobudli pocit, že ich niekto okráda. Veľmi zaujímavé by bolo však získanie hesla napríklad Tomáša Bellu, ktorého heslo bude pravdepodobne zhodné aj s inými časťami portálu sme, možno rovnaké aj k emailom, či kontu na google.

Toto je však len teória, ja som vo svojom výskume nezašiel tak ďaleko. Ako ilustráciu som vytvoril kód, ktorý po inicializácii zmení vybranú farbu pozadia. Je to asi najlepšia demonštrácia zraniteľnosti, akú vám môžem poskytnúť a preto som k celému exploitu urobil aj doprovodné video. Jeho kvalita je v online prehliadači dosť mizerná, nie je možné rozoznať text, ktorý vkladám do formulárových polí. Ak máte záujem video vidieť v plnej kvalite, môžete si ho po registrácii stiahnuť priamo z portálu vimeo (na spodku stránky vpravo, 18 MB)

A tu je konečne kód celého exploitu.
<script>
var x = new XMLHttpRequest();
x.open('GET','http://blog.sme.sk/oper/set_param.asp?t=cs&h=6',true);
x.send(null);
</script>

Zaiste ste si vo videu všimli perličku na koniec. Áno, aj formulár pre poslanie správy je zraniteľný na XSS, ale to už snáď prekvapivé nie je.
http://blog.sme.sk/oper/blog_msg.asp?to="><script>alert(1)</script>

XSS Červ

Aj tentokrát sa nevyhnem téme XSS červa, ktorý by sa mohol šíriť týmto systémom. Tento červ by oproti T-Station mal aj niekoľko pozitív, hlavne čo sa týka šírenia. Viem si predstaviť kód, ktorý by zbieral heslá (aby sa útočník mohol dostať do administrácie užívateľa) no zároveň by mohol zbierať emailové kontá, ktoré sú vypisované v administrácii ako plain/text a ktoré sa nedajú zmeniť. Predpokladám, že väčšina užívateľov používa rovnaké heslo pre blog ako aj pre emailové konto. Úspešnosť takéhoto zásahu by mohla byť niekde okolo 70%-80%. Červ by sa taktiež mohol po prijatí veľmi jednoducho odstrániť, slúži na to jednoduchá linka.
http://blog.sme.sk/oper/blog_msg_resp.asp?op=del&id=ID&st=1&r=1Postup ako získať ID som už popisoval v minulom článku, nepovažoval som to v tomto prípade za nutné. Červ by si mohol aj veľmi jednoducho vytvárať databázu už infikovaných užívateľov, ktorý by si ukladal niekde na serveri útočníka a tak by sa nestalo, že by sa náhodou ocitol v schránke obete viackrát. Takto by sa pravdepodobne červ po niekoľkých hodinách prestal šíriť, resp. by rapídne klesla jeho aktivita a vyzbieral by informácie pravdepodobne všetkých aktívnych užívateľov. Dalo by sa to nazvať aj “dokonalý zločin” (viem, že taký neexistuje, ale nedalo mi to :) ). Kód by mohol byť opätovne polymorfný a mohol obsahovať zakódované časti, ktoré by aj pri bližšej analýze užívateľom neboli pre neho čitateľné. Ďalších možností je celkom dosť veľa, je to len otázka nápaditosti.

Záver

Myslím, že si už každý mohol urobiť dostatočný obraz o popisovanej zraniteľnosti. Spoločnosti Pettit Press odporúčam viac sa zamerať na ochranu svojich užívateľov a na odstránenie popisovaných zraniteľností. Taktiež odporúčam prejsť všetky časti portálu, ako aj všetky časti administrácie blogovacieho systému, pretože popisovaná zraniteľnosť je jedna z mnohých, ktoré som pri svojom pátraní objavil. Trošku ma mrzí, že som portál sme už hodnotil vo veľkom teste bezpečnosti Slovenských a Českých webov, no napriek tomu neboli vykonané potrebné opatrenia.

Rád by som vyzval všetkých čitateľov, ktorí sa chcú zapojiť do odhaľovania zraniteľností, aby nezabudli na naše fórum, kde neustále pribúdajú weby, ktoré majú niektorú zo zraniteľností. Ak bude zraniteľnosť zaujímavá, rád o nej napíšem a vy samozrejme získate kredit, pretože budete uvedení ako objaviteľ popisovanej zraniteľnosti.



Príbuzné články:

Žiadne príbuzné články neboli nájdené.



8 Responses to “FD: Hacknite si blog.sme.sk za pomoci XSS”


  1. 1 duro May 11th, 2008 at 08:13

    no krasa nebeska, toto by mal niekto riadne vyuzit za trest vsetkym spravcom blog.sme.sk, aj ked chudaci uzivatelia…:)

  2. 2 name May 12th, 2008 at 10:47

    nerozumiem ako niekomu inemu moze ublizit ten doocibijuci link zo stationu;

  3. 3 oooo May 12th, 2008 at 10:50

    to nevadi ze nerozumies, nemoze predsa kazdy rozumiet

  4. 4 name May 12th, 2008 at 14:55

    oki o velky XSS guru; pouc teda aj nas - veci neznalych;

  5. 5 oooo May 12th, 2008 at 15:09

    nie, dakujem :) uz sa o xss popisalo tolko ze ak nepoznas jeho silu, pravdepodobne ta nezachranim ani ja. skus si precitat moje clanky, alebo niekoho ineho, myslim ze ich najdes uz cez par tisic. mozno http://www.gnucitizen.org je pre teba to prave miesto

  6. 6 lump May 12th, 2008 at 15:53

    name myslim ze to suvisi s textom Boli ste automaticky odhlasený. Prosím, prihláste sa znovu.

  7. 7 oooo May 12th, 2008 at 16:08

    nesuvisi, teda ani netusim o com to hovoris, err pises

    doplnene: az teraz po vysvetleni dalsou osobou som pochopil. ta linka funguje len ak ste prihlaseni, vobec mi nedoslo, ze by to mohlo nefungovat, nejak som sa na to dost nezameral. ospravedlnujem sa za moje podrazdene reakcie

  8. 8 matushiq May 13th, 2008 at 11:00

    Ja mam na email unique heslo ;_)

Leave a Reply