(Ne)bezpečné ankety Blueboard.cz

Kategorie: IT/Security | Zobrazen: 35974x Datum: 5.8.2007

Ankety společnosti Blueboard.cz jsou náchylné k vícenásobnému hlasování bez nutnosti změny IP. Chcete vědet jak na to? Čtěte.

Logo Blueboard.cz Včera se mi podařilo nalézt bezpečností chybu ve webovém rozhraní poměrně významného serveru. Tu však z určitých důvodů (alespoň pro zatím) zveřejnit nehodlám. Tento "úspěch" mě však povzbudil v tom, že žádný systém není bez chyb a když člověk hledá, občas i najde ;)

Dnes ráno jsem se rozhodl zaměřit na ankety společnosti Blueboard.cz, konkrétně na možnost vícenásobného hlasování. Už jen z toho důvodu, že píši tento článek, je vám asi jasné, že se mi to povedlo. Co se týče anket obecně, je zde způsob, který vám umožňuje vícenásobné hlasování a před kterým není ze strany vlastníka ankety téměř obrany. Mluvím o změně IP adresy po každém odhlasovaní. Tento způsob je však poměrně nepohodlný a abyste hlasovali stokrát, je nutné nalézt sto proxy serverů, což je zbytečně úmorná práce. Můžete namítnout, že s použitím programů typu Hide IP se situace trochu zjednoduší, ale přesto to stále nemá na pohodlnost způsobu, který zde popíši.

Ano, proč se mořit s tolika proxynami, když můžete "donutit" ostatní uživatele, aby hlasovali pro konkrétní, vámi vybranou, volbu. Znalí již asi tuší, že se bude stejně jako v případě chyby na Linkuj.cz jednat o Cross-site request forgery. Ohledně principu chyby vás opět odkáži na Wikipedii a .cCuMiNn.ův článek.

Realizace je opravdu jednoduchá, jak už to u tohoto typu chyby bývá. Nejdříve si vyhlédneme anketu a zjistíme přesnou URL odpovědi, pro kterou chceme vícenásobně hlasovat. Blueboard ankety používají typ požadavku GET, čímž vám ještě více usnadňují situaci. Danou URL získáte pouhým zkopírováním adresy odkazu. Viz obrázek:

Získání URL odpovědi z ankety

V případě, že by se data odesílala pomocí požadavku POST, mohli byste danou URL zjistit například pomocí Firefox pluginu LiveHTTPHeaders. Viz obrázek:

Získání URL odpovědi z ankety

Nyní si musíme udělat fake "hlasovaní zařízení":

<iframe src="http://blueboard.cz/anketa_0.php?id=ID_ANKETY&r1=VOLBA ODPOVĚDI&pid=" width="0" height="0" frameborder="0"></iframe>

To je ukryto v neviditelném iframu. Upozorňuji, že odpovědi (parametr r1) jsou číslovány od nuly, tzn, že pro první odpověď platí r1=0, pro desátou r1=9 pro n-tou r1=n-1. Pokud tedy uživatel navštíví stránku obsahující tento kód, pošle svůj hlas na vámi zvolenou možnost odpovědi, aniž by o tom měl tušení. Nyní zbývá poslední otázka a to, kam tento kousek kódu umístit. Nejlepším řešením je vložit jej na stránku, kam chodí velké množství lidí. Tou může být například titulní strana vašeho webu. Pokud nemáte příliš navštěvovaný web, stačí tento kód umístit například do stránky spolu s nějakým obrázkem a odkaz na tuto stránku rozeslat známým či umístit na nějaké fórum. Každý příchozí, pokud již nehlasoval, přičte právě jeden hlas do ankety. Takto vypadala má testovací anketa po tom, co fake hlasování bylo umístěno na titulní straně Stoyan's Page po dobu asi osmi hodin:

Hacked anketa

Řešení tohoto problému je přitom triviální. Méně spolehlivé, přesto ne tak špatné, by bylo kontrolování hodnoty REFERER. Při registraci do systému Blueboard totiž uvádíte mimo jiné i adresu webu, na kterém hodláte jejich služby využívat. Tento údaj by se poté mohl porovnávat s údajem v hlavičce REFERER. Spolehlivějším řešením by ale bylo generování unikátního tokenu pro každé hlasování, což by tento útoku téměř zcela znemožnilo. Toto není poprvé, kdy se na webu či v systému společnosti Blueboard našla chyba, viz MzKovo získání kompletní databáze či cURLyho PHP inclusion. Současně s uveřejněním tohoto článku posílám email společnosti Blueboard s upozorněním.

Stoyan's signature

Předcházející článek: Nový redakční systém

Následující článek: Zaostřeno na Programujte.com

Libí se vám tento článek? Zalinkujte ho: Linkuj tento článek

Přidej svůj komentář

kamil
kamik2(zavinac)azet.sk
Cau Stoyan kde si bol doteraz z esi nepridaval clanky...?
fakt bomba clanok cely web sa mi paci, pekne prostredie, dobre clanky, programy na stiahnutie...
BTW: mozem aj ja niekedy pridat nejaky clanok o webe a o security...?
6.8.2007 11:24:33
 
194.73.99.*
Stoyan
stoyan(zavinac)tiscali.cz
kamil: Kratce po maturite jsem slavil a nasledne si uzival prazdniny. Pak jsem se pustil do programovani a nyni jsem si dal kratkou pauzu, takze toto urcite neni posledni clanek do konce prazdnin. Ohledne tveho clanku, posli mi ho na mail i s ostatnimi okazkami tve prace a pokud se mi budou libit, muzeme se dohodnout.
6.8.2007 12:10:22
 
195.47.46.*
kamil
kamik2(zavinac)azet.sk
OK budem sa snazit lebo teraz ti robim reklamu v Anglicku
kamil
6.8.2007 12:55:03
 
194.73.99.*
kamil
kamik2(zavinac)azet.sk
Teraz pripravujem pre teba clanok o security na AZETE, nasiel som chyby, aj s obrazkami...
kamil
6.8.2007 12:56:43
 
194.73.99.*
Stoyan
stoyan(zavinac)tiscali.cz
kamil: Ok, budu se tesit.
6.8.2007 13:00:25
 
195.47.46.*
mp
to je docela starý, btw šlo to i na soomu
6.8.2007 15:39:15
 
89.103.33.*
Script
Stoyan:
<iframe src="http://www.soom.cz/index.php?name=user/poll/vote&odp=5&id=9" width="0" height="0" frameborder="0"></iframe>
11.8.2007 18:53:04
 
89.103.33.*
Tom@sQo
kazdopadne by blueboardu pomohlo aj to, keby sa anketa odosialala cez POST. kazdopadne aspon by si nemal hned v stavovom riadku napisane url imho vsetky veci, ktore nechces, aby user modifikoval by sa mali odosielat cez post;)
20.8.2007 17:22:20
 
88.212.21.*
Stoyan
stoyan(zavinac)tiscali.cz
Tom@sQo: Odesilani pres post pozadavek je jen zdanliva ochrana, data si i tak lehce vyslidis sniffingem nebo pomoci meho oblibeneho FF pluginu LiveHTTPHeaders
20.8.2007 21:34:34
 
195.47.46.*
Tom@sQo
jj, ale aj tak by ti to potom dlhsie trvalo, uznaj ;) hlavne odoslanie dat by si nemal len napisanim urlcka ;) ja osobne neviem odoslat moje post udaje na server inac, ako vytvorenim "falosneho" formu s actionom zhodnym, ako je v scripte, a vytvorenie takeho formu uz trva minuty, nie sekundy
21.8.2007 12:32:56
 
88.212.21.*
Stoyan
stoyan(zavinac)tiscali.cz
Tom@sQo: To zabere to asi 30 vterin navic, takze ochrana nic moc Falesny post pozadavek si muzes sam vyrobit na miru. A s tim casem to opravdu neni tak hrozny. Priklad: Uvidim anketu, chci hlasovat vickrat, podivam se do zdrojaku, vidim post pozadavek, aktivuji LiveHTTPHeader, odhlasuji, podivam se do L.HTTP.H jak vypada onen pozadavek, ctrl+C, ctrl+V do poznakoveho bloku, ulozim a napriklad pres netcat odeslu na server na port 80. Tak 3 - 4 minuty. Btw, je nesmyslne bavit se u hackingu na case, pokud nekdo chce neco opravdu udelat, nezastavi ho ani to zeby to melo trvat treba hodinu
21.8.2007 17:29:01
 
195.47.46.*
Tom@sQo
ked sa uz tak velmi nudis, tak vyskusaj najst nejaku chybu na stranke http://talker.txx.sk/ ;) je tam ohromne mnozstvo vstupov, ale chyba ani jedna. aspon ja som nenasiel ;) je to v podstate NUTS-like (snad poznas zdrojaky popularneho ceckarskeho talkra, tak toto je jeho PHP obdoba) PHP verzia robena jednym velmi dobrym javascriptarom(a koderom celkovo), takze podla mna nic nenajdes, ale pozri si to, ako priklad dokonaleho projektu ;-]
23.8.2007 15:25:45
 
88.212.21.*
Stoyan
stoyan(zavinac)tiscali.cz
Kdo kde rikal ze se nudim? To rozhodne nehrozi
23.8.2007 17:32:30
 
195.47.46.*
Tom@sQo
vidim to na tebe cely den si pri pc a sa nudis
23.8.2007 20:19:47
 
88.212.21.*
Stoyan
stoyan(zavinac)tiscali.cz
Tom@sQo: Tak to mas naprosto spatne informace
23.8.2007 22:41:39
 
195.47.46.*
zmrdi
lol myslím že neumíte hackovat pochybuju že se dostanete do mího pc když mám 4 firewalli skušejte moje ip
193.165.178.10
8.10.2007 13:09:52
 
193.165.178.*
sry za spam, ale nerknu
Uz jen podle toho, jak pises tak to taky neumi. Kdyby jsi to umel tak nemas 4fw a nelezes sem, pac to uz znas par let Zdar
14.10.2007 22:36:58
 
88.102.139.*
Gyro
Kde sa dva FW biju, treti hacker vitazi
30.12.2007 16:36:58
 
213.81.217.*
sg11
pro toho typka co se nazyva zmrdem:
trapnej pokus o SI. Typuju te na zaka ZS.
Doporucoval bych ti trochu poklabosit s Mr$ Wordem, a nadatlit do neho ty tvoje srcky nez to hodis sem.
18.9.2008 9:14:46
 
81.169.137.*
Stoyan
sg11: Trochu se mirni, tohle neni soom...
19.9.2008 16:57:29
 
195.47.46.*
sQuo
mozno je to trosku OT, ale nastastie vznikol na google summer of code velmi zaujimavy projekt, ktoreho vysledkom je addon na https://addons.mozilla.org/cs/firefox/addon/6647 . je neporovnatelne lepsi, ako liveHttpHeader. takze ak si zmenu nepotrehol, tak si ju vsimni
20.9.2008 0:00:50
 
88.212.23.*
Stoyan
sQuo: Diky za info, vyzkousel jsem a opravdu je HttpFox vice privetivy nez Live HTTP Headers.
20.9.2008 13:55:47
 
195.47.46.*
piduch
nice
25.9.2008 11:59:30
 
217.66.172.*
tereza
je to strasne složite... nevim kam mam ty adresy co zkopiruju zadat jestli mam neco delat s timhle..:<iframe src="http://blueboard.cz/anketa_0.php?id=ID_ANKETY&r1=VOLBA ODPOVĚDI&pid=" width="0" height="0" frameborder="0"></iframe>----------------fakt nevim co s tim, nemohli byste to nejak zjednodusit??
27.2.2009 16:24:26
 
62.168.44.*
prosíím
když to nekdo umite zkuste hlasovat na tehle adrese hodněkrat pro čislo 6! please http://hranicky.denik.cz/zpravy_region/ctenari-deniku-mohou-hlasovat-o-divce-roku-.html
27.2.2009 16:29:56
 
62.168.44.*
sg11.tk
Pravda je, že ta 6. se mi líbí nejvíc Tak snad bude stačit jeden hlas
28.2.2009 11:05:27
 
83.208.167.*
Stoyan
Ty holky jsou vsechny jeste pod zakonem, cekal jsem tam teda jiny vyber Zrovna nedavno jsem si napsal skript v Pythonu, ktery z urcitych webu stahne seznam http proxy serveru (radove stovky), vyfiltruje ty nefunkcni a ty funkcni pouzije k urcitemu ucelu (napriklad hlasovani v ankete). Jenze proc podvadet, ze ano? Nevite, ktery z tech holek si to opravdu zaslouzi. Ani je neznate a soudit podle vzhledu je dost povrchni...
3.3.2009 12:59:36
 
195.47.46.*
duigha
"a soudit podle vzhledu je dost povrchni..."
Stoyan je dokonce romantická duše ;)
(mimochodem, jsem taky napů, poslouchám Norah Jones ;) )l
3.3.2009 17:36:42
 
90.178.235.*
Johny
hmmm........
Klasicky csrf...
a jeste nezapomen na jedno xssko a na to ze tam driv ke zmene hesla stacilo zadat dvakrat nove
21.9.2009 16:25:30
 
89.190.52.*
Johny
sry 2 xsska
21.9.2009 16:26:51
 
89.190.52.*
anti-johny
vsichni delate machry machry ale ze tam maji nekolik (vim o dvou) sql injekci plne vyuzitelnych pro remote code execution o tom uz nevite. tak to dopada kdyz banda deti bezhlave vyuziva step-by-step materialy. skidds vladnou svetu!!!
23.9.2009 17:33:54
 
158.194.92.*
Nový komentář
Nick: 716" />

Smajlíci:

:-D :-) :-/ :-( ;-) :-P 8-) [b][/b] [i][/i] [url][/url]
Web:
Email:
Komentář:
Opište prosím číslo 716 (ochrana proti SPAMu)
 
       * Pole Komentář podporuje BBCode tagy
© Stoyan, 2006 - 2010