V tomto článku vyriešime 25. úlohu zo stránky
organizačné informácieNajmä pre tých, ktorí sa chcú naučiť niečo nové a rozvíjať sa v akejkoľvek oblasti informačnej a počítačovej bezpečnosti, budem písať a hovoriť o nasledujúcich kategóriách:
- PWN;
- kryptografia (Crypto);
- sieťové technológie (Network);
- reverzné (reverzné inžinierstvo);
- steganografia (Stegano);
- vyhľadávanie a využívanie zraniteľností WEB.
Okrem toho sa podelím o svoje skúsenosti v oblasti počítačovej forenznej analýzy, analýzy malvéru a firmvéru, útokov na bezdrôtové siete a lokálne siete, vykonávania pentestov a písania exploitov.
Aby ste sa mohli dozvedieť o nových článkoch, softvéri a iných informáciách, vytvoril som
Všetky informácie sú poskytované len na vzdelávacie účely. Autor tohto dokumentu nepreberá žiadnu zodpovednosť za akúkoľvek škodu spôsobenú komukoľvek v dôsledku použitia vedomostí a metód získaných štúdiom tohto dokumentu.
Riešenie úlohy otp
Pokračujme v druhej časti. Hneď poviem, že je to komplikovanejšie ako prvé, ale tentoraz neposkytujú zdrojový kód programu. Nezabudnite na diskusiu tu (https://t.me/RalfHackerPublicChat) a tu (https://t.me/RalfHackerChannel). Poďme začať.
Kliknite na ikonu s podpisom otp. Dostaneme adresu a port, ku ktorému sa môžeme pripojiť.
Pripojíme sa a rozhliadneme sa po serveri.
Príznak, ktorý nevieme prečítať, program a jeho zdrojový kód. Pozrime sa na zdroj.
Poďme to vyriešiť. Program berie heslo ako argument.
Ďalej je do premennej otp uložených náhodných 16 bajtov.
V priečinku tmp sa vytvorí súbor s náhodným názvom (prvých 8 bajtov je otp) a zapíše sa doň náhodných 8 bajtov (druhých 8 bajtov je otp).
Z nejakého dôvodu sa načíta hodnota vytvoreného súboru a porovná sa so zadaným heslom.
Tu prichádza na scénu zraniteľnosť. Pozostáva z prechodného uloženia vygenerovaného čísla do súboru. Veľkosť súboru môžeme obmedziť napríklad na 0, potom sa pri zápise a čítaní bude porovnávať s heslom 0. Dá sa to urobiť takto.
# ulimit -f 0
Teraz spustíme program.
Dostaneme chybu. Nezáleží na tom, dá sa spracovať pomocou rovnakého pythonu.
python -c "import os, signal; signal.signal(signal.SIGXFSZ, signal.SIG_IGN); os.system('./otp 0')"
Získame vlajku a našich ľahkých 100 bodov. A pokračujeme: v ďalšom článku sa dotkneme webu. Môžete sa k nám pridať na
Zdroj: hab.com