Jak hacknout zdroják
Jak snadné je procházet zdrojový kód backend aplikace? Zkusili jste k tomu využít API a neoprávněně si tak zobrazit soubory uložené na serveru? Podívejte se, jak se to dělá a rovnou to se mnou opravte.
Častým problémem aplikací je, že se každá její část chová trochu jinak. Jinak se chová web a jinak REST API. V tomto případě si na webu nemůžeme zobrazit soubory nebo adresáře, ale pomocí API už to udělat můžeme.
![Zobrazení zdrojáku na webu není možné](/img/haxing/zdrojak/zdrojak-web.png)
![Zobrazení zdrojáku přes API možné je](/img/haxing/zdrojak/zdrojak-api.png)
Útočník může procházet zdrojový kód, který je na serveru uložený a pomocí tečkové notace může cestovat napříč adresáři
až k souboru se systémovými hesly (/etc/passwd
).
![Zobrazení souboru /etc/passwd](/img/haxing/zdrojak/etc-passwd.png)
Toto chování je potřeba zakázat a umožnit uživateli pohybovat se jen v rámci určitého adresáře aplikace. Nejlepší je k tomu použít nějaký globalní middleware. Současný kód obsluhující tuto funkcionalitu vypadá takto:
![Současný kód obsluhující funkcionalitu](/img/haxing/zdrojak/soucasny-kod.png)
Funkce upravíme tímto způsobem:
![Nová, ošetřená funkcionalita](/img/haxing/zdrojak/novy-kod.png)
Dejte si pozor, jestli se vaše webová aplikace chová stejně jako API. V každém případě zakažte možnost procházení adresářů a souborů na serveru.
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. 👇