V dnešním díle se budeme věnovat správě uživatelů a přístupových práv, tedy autentizaci a autorizaci. Pomocí frameworku web.py a rozšiřujícího modulu si vytvoříme jednoduchou aplikaci vyžadující přihlášení. Také si popíšeme základy přechovávání uživatelských jmen a hesel.
Archiv pro štítek: bezpečnost
V dnešnej dobe plnej webových frameworkov, databázových knižníc a ORM by som tak trochu čakal, že webov náchylných na SQL Injection už nebude veľmi veľa. Opak je však pravdou a zaútočiť na tieto weby pomocou SQL Injection už môže naozaj ktokoľvek, stačí mu len vhodný nástroj a trochu trpezlivosti.
Je to už nějaká chvíle, co se Internetem šířila zpráva o chybě Heartbleed. Mimo jiné ukázala, že autentizace pomocí hesel není dokonalá. Pojďme si ukázat, jak implementovat autentizaci, která hesla nevyžaduje.
Čtvrtkon je pravidelná akce českobudějovické webové komunity. Dnešní, v pořadí páté, setkání nabídne přednášku Michala Špačka o bezpečnostních útocích na webové aplikace a přednášku Tomáše Kuby o moderním workflow tvorby webu. Akce začíná…
Nespoléhejte se na to, že do kódu nezapomenete na všechna místa připsat ošetření dat. Snažte se aplikaci navrhnout tak, aby se na nic zapomenout nedalo. Za cenu o něco složitějšího jádra bude veškerý kód, který ho používá, obvykle taky mnohem jednodušší.
V posledních dnech, týdnech a měsících jsem několikrát slyšel a četl o tom, že velkým hráčům unikla nějaká data, případně se někdo dostal k informacím, které vidět neměl, a to naprosto jednoduchým způsobem. „Útočník“ pouze změnil nějaké číslo v adrese stránky a v prohlížeči se mu najednou ukázaly údaje, k jejichž prohlížení nebyl autorizován. Jak je to jen možné?
Krátce poté, co zde vyšel seriál Jdu hacknout váš server, máme další článek na stejné téma. Tentokrát ale „žhavě aktuální“ o tom, jak jeden ruský programátor hacknul github (a poukázal na chybu v Rails, která se projevuje i na dalších serverech). A přitom stačilo, aby tým vývojářů Rails naslouchal…
Naposledy jsem na cílovém serveru získal omezený přístup přes PHP shell. Pro připomenutí – jedná se o krátký skript, který přes exec/passthru pouští příkazy, které mu zadáme pomocí GET nebo POST požadavku. Na server jsem ho v tomto příkladu dostal přes SQL injection, další možností mohlo být třeba nesprávně ošetřené nahrávání souborů.
V minulém díle jsem na cílovém serveru objevil bezpečnostní trhlinu (SQL injection) a připravil jsme si další postup. Nyní si z databáze konečně něco vypíšu – rozhodně seznam uživatelů (a hesla, pravděpodobně zahashovaná), s trochou štěstí systémové soubory. Prozatím ale skromně začnu zjištěním metadat: verze a typ databáze a názvy důležitých tabulek a sloupců.
Jsem hacker a chci váš server. Přečtěte si, jak postupuji, čeho se snažím vyvarovat a jak mě naopak můžete odhalit. Možná jsem se přes bezpečnostní díru ve formuláři dostal na vaše SSH. Jako root. Nebo jenom k celé databázi, to přes sql injekce. Dnes začnu přípravou průniku. Pojďte mi nakouknout přes rameno.




