Přeskočit na hlavní obsah

Jak zneužít chybnou autorizaci

Chybná a chybějící autorizace je jednou z nejčastějších zranitelností současných aplikací a API. Pojďme se naučit tuto zranitelnost hacknout, rovnou ji v kódu opravit a do budoucna jí efektivně předcházet.

Aplikace obsahuje REST API endpoint, pomocí kterého se můžeme podívat na nějaké aplikační statistiky. Pro využití této funkcionality se nejdřív musíme přihlásit.

Přihlášení běžného uživatele do aplikace přes API

Vzhledem k tomu, že jde o aplikační statistiku, tak by tam měl mít přístup jenom admin, protože jde o citlivou funkci. V tomhle případě tam má ale přístup každý uživatel, což je špatně a musíme to nějakým způsobem opravit.

Zobrazení aplikačních statistik běžným uživatelem

V kódu si najdeme příslušnou funkci, která tuto funkcionalitu obsluhuje. Přidáme další middleware, který kromě toho, že zkontroluje, jestli je uživatel přihlášený, tak zkontroluje, jestli jde opravdu o admin.

Obslužná metoda pro zobrazení statistik v kódu Kód check_admin middlewaru

Pokud teď zkusíme znovu přistoupit jako běžný uživatel k aplikačním statistikám, tak už by funkcionalita pro tohoto uživatela neměla fungovat, ale pro admina ano.

Tento typ zranitelností je v aplikacích velmi častý a vzniká většinou proto, že je autorizační logika roztříštěná po celé aplikaci.

Doporučuju tedy používat nějaký middleware, kde je veškerá autorizační logika na jednom místě.

Podívejte se na video, kde tuto funkcionalitu hackuju a rovnou v kódu opravuju:

Dej odběr a žádné další video už ti neunikne. 👇