
V tomto článku vyřešíme 25. úkol z webu .
Organizační informaceSpeciálně pro ty, kteří se chtějí dozvědět něco nového a rozvíjet se v jakékoli oblasti informační a počítačové bezpečnosti, budu psát a vyprávět o následujících kategoriích:
- PWN;
- kryptografie (Crypto);
- síťové technologie (Network);
- reverzní inženýrství (Reverse Engineering);
- steganografie (Stegano);
- vyhledávání a exploatace WEB zranitelností.
Kromě toho se podělím o své zkušenosti v počítačové kriminalistice, analýze malwaru a firmwaru, útocích na bezdrátové sítě a místní výpočetní sítě, provádění penetračních testů a psaní exploitů.
Abychom vás mohli informovat o nových článcích, softwaru a dalších informacích, vytvořil jsem a v oblasti IKT. Také vaše osobní žádosti, otázky, návrhy a doporučení .
Veškeré informace jsou poskytovány výhradně pro vzdělávací účely. Autor tohoto dokumentu nenese žádnou odpovědnost za jakoukoli škodu způsobenou komukoli v důsledku použití znalostí a metod získaných studií tohoto dokumentu.
Řešení úkolu otp
Pokračujeme do druhé části. Hned řeknu, že je to složitější než první, ale tentokrát nám neposkytují zdrojový kód programu. Nezapomeňte na diskuzi zde(https://t.me/RalfHackerPublicChat) a zde (https://t.me/RalfHackerChannel). Začněme.
Klikneme na ikonu s nápisem otp. Dávají nám adresu a port pro připojení.

Připojíme se a prozkoumáme server.

Flag, který nemůžeme přečíst, program a jeho zdrojový kód. Pojďme se podívat na zdroj.

Rozebíráme jej. Program přijímá jako argument heslo.

Dále se do proměnné otp ukládá náhodných 16 bytů.

V adresáři tmp se vytváří soubor se náhodným názvem (prvních 8 bytů otp) a do něj se zapisuje náhodných 8 bytů (druhých 8 bytů otp).

Z nějakého důvodu se ze vytvořeného souboru čte hodnota a porovnává se se zadaným heslem.

Zde se nachází zranitelnost. Týká se meziukládání generovaného čísla do souboru. Můžeme omezit velikost souboru, například na 0, a tak bude při zápisu a čtení s heslem porovnáváno 0. Můžeme to udělat takto.
# ulimit -f 0 ![]()
Nyní spustíme program.
![]()
Dostáváme chybu. Nic se neděje, může být zpracována pomocí stejný Python.
python -c "import os, signal; signal.signal(signal.SIGXFSZ, signal.SIG_IGN); os.system('./otp 0')" ![]()
Získáváme vlajku a snadných 100 bodů. Pokračujeme: v příštím článku se zaměříme na Web. Můžete se k nám připojit na .
Zdroj: habr.com
