Zápisky hackera – Neskoro na prihlásenie obedu?

Gray-hat hacking prináša veľa zaujímavých systémov ku ktorým má útočník prístup. V tomto seriály poukážem na niekoľko najexotickejších systémov s najabsurdnejšími chybami aké som videl. Poďme teda začať nie veľmi ďaleko a to na mojej (teraz už bývalej) strednej škole a systéme, ktorý využíva na prihlasovanie obedov.

Zápisky hackera – Časť 1

 phpBox – správa obedov

Naša škola využíva na správu obedov systém phpBox, vyvíjaný spoločnosťou APIS. Je to jednoduchý, dobre použiteľný systém v ktorom sa ľahko orientuje a má nesporné množstvo výhod. Žiak si môže prihlásiť obed online, a v prípade že sa mu zmenia plány tak môže vložiť obed do burzy. Potom stačí že sa nájde žiak, ktorý si obed zabudol prihlásiť (a stáva sa to pravidelne), a vyberie obed z burzy. Žiakovi, ktorý na obed nemal čas sa vráti kredit a žiak, ktorý si zabudol prihlásiť obed nie je hladný. Klasická WIN-WIN situácia.

Problém nastáva keď sa programátori pozabudnú a neošetria takú vec ako login bypass. Potom stačí už len dobre mierený dotaz na databázu a situácia vyzerá nasledovne:

V čom je ale problém? Povedzme že príde na stránku žiak, ktorý je hladný, zabudol si prihlásiť obed a burza je prázdna. Vie, že stránka je zraniteľná na login bypass. Prihlási sa teda ako správca systému a následne sa prihlási bez znalosti hesla za ľubovolného používateľa. Pozrie si, čo má používateľ za obed a ak sa mu páči tak ho vloží do burzy a cez svoj účet ho zase príjme. Už to nie je WIN-WIN situácia. Taktiež je tu potom drobný problém, s osobnými údajmi ako meno, priezvisko, čas kedy je daný užívateľ zvyčajne na obede (dobré pre zlodejov) a ďalšie informácie. Taktiež ak sa mu nepáči ponuka jedál, vedel by ju zameniť za vlastnú (zaujímavé by bolo pozorovať ako by na to reagovalo vedenie jedálne, keby si žiaci objednali úplne niečo iné ako v skutočnosti bolo v pláne). Jednoducho útočník by si mohol robiť čo sám uzná z vhodné.

 

Poďme ale teda k tomu, čo bolo treba spraviť. V podstate nič zložité. Ako login sa zadalo ID existujúceho užívateľa + „or 1=1“. Nie som si úplne istý ako je konštruovaný SQL dotaz v zdrojovom kóde, nakoľko pri danom tipe bypassu by malo stačiť zadať aj neexistujúceho užívateľa a logický operátor OR sa postará o to, aby takýto dotaz prešiel avšak tu to neplatilo. Bol to však len drobný problém. Stačilo si sadnúť na obed ku stolu blízko objednávaciemu panelu a zrazu máte desiatky funkčný IDčiek žiakov. Potom už stačilo testovať jednotlivé login bapassy a nájsť ten vyhovujúci. Pekný článok o fungovaní login bypassov bol uverejnený na portáli Security Portal preto všetkých záujemcov o problematiku odkážem na tento článok skorej, ako by som mal písať to isté, čo niekto už napísal a myslím si že dostatočne kvalitne.

 

Aby toho nebolo málo, vieme si pozrieť na koľkých ďalších školách sa nachádza a využíva ten istý pravdepodobne zraniteľný systém. Stačí skopírovať názov produktu a text, ktorý sa určite nachádza na všetkých úvodných stránkach (aby sme zabránili zobrazeniu referencii na produkt). Potom tieto dva dotazy vložíte do úvodzoviek a do Google search baru. Výsledok je viac než uspokojivý

google-fu

Tak ako každý dobrý príbeh, aj tento má šťastný koniec. Krátko po tom, ako som napísal spoločnosti APIS o objavenej zraniteľnosti bola chyba odstránená a jej zneužitie už nie je naďalej možné. Čo sa mne osobne páčilo na spoločnosti najviac, bola krátka doba do vydania záplaty a prijemná komunikácia zo strany spoločnosti. Skrátka ukážkový príklad ako má gray-hat hacking vyzerať.

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *