V tomto článku vyřešíme 25. úkol ze stránky
organizační informaceZejména pro ty, kteří se chtějí naučit něco nového a rozvíjet se v jakékoli oblasti informační a počítačové bezpečnosti, budu psát a mluvit o následujících kategoriích:
- PWN;
- kryptografie (Crypto);
- síťové technologie (síť);
- reverzní (reverzní inženýrství);
- steganografie (Stegano);
- vyhledávání a zneužívání zranitelností WEB.
Kromě toho se podělím o své zkušenosti v oblasti počítačové forenzní analýzy, analýzy malwaru a firmwaru, útoků na bezdrátové sítě a lokální sítě, provádění pentestů a psaní exploitů.
Abyste se mohli dozvědět o nových článcích, softwaru a dalších informacích, vytvořil jsem
Veškeré informace jsou poskytovány pouze pro vzdělávací účely. Autor tohoto dokumentu nepřebírá žádnou odpovědnost za jakékoli škody způsobené komukoli v důsledku použití znalostí a metod získaných studiem tohoto dokumentu.
Řešení úlohy otp
Pokračujme druhou částí. Hned řeknu, že je to složitější než ten první, ale tentokrát neposkytují zdrojový kód programu. Nezapomeňte na diskuzi zde (https://t.me/RalfHackerPublicChat) a zde (https://t.me/RalfHackerChannel). Pojďme začít.
Klikněte na ikonu s podpisem otp. Dostaneme adresu a port, ke kterému se máme připojit.
Připojíme se a rozhlédneme se po serveru.
Příznak, který nemůžeme přečíst, program a jeho zdrojový kód. Podívejme se na zdroj.
Pojďme to vyřešit. Program bere jako argument heslo.
Dále je do proměnné otp uloženo náhodných 16 bajtů.
Ve složce tmp se vytvoří soubor s náhodným názvem (prvních 8 bajtů je otp) a zapíše se do něj náhodných 8 bajtů (druhých 8 bajtů je otp).
Z nějakého důvodu je načtena hodnota vytvořeného souboru a porovnána se zadaným heslem.
Zde přichází na řadu zranitelnost. Spočívá v přechodném uložení vygenerovaného čísla do souboru. Velikost souboru můžeme omezit např. na 0, při zápisu a čtení se pak bude s heslem porovnávat 0. Dá se to udělat takto.
# ulimit -f 0
Nyní spustíme program.
Dostaneme chybu. Nezáleží na tom, lze to zpracovat pomocí stejného pythonu.
python -c "import os, signal; signal.signal(signal.SIGXFSZ, signal.SIG_IGN); os.system('./otp 0')"
Získáme vlajku a našich 100 bodů. A pokračujeme: v příštím článku se dotkneme webu. Můžete se k nám přidat na
Zdroj: www.habr.com