
Ebben a cikkben az 25-ös feladatot oldjuk meg a weboldalról .
Szervezeti információKifejezetten azok számára, akik szeretnének új dolgokat tanulni és fejlődni az informatikai és számítógép-biztonság bármely területén, írok és beszélek a következő kategóriákról:
- PWN;
- kriptográfia (Crypto);
- hálózati technológiák (Network);
- fordítás (Reverse Engineering);
- steganográfia (Stegano);
- WEB sebezhetőségek keresése és kihasználása.
Ezenkívül megosztom tapasztalataimat a számítógépes kriminalisztikában, malware-analízisben és firmware-elemzésben, vezeték nélküli hálózatokkal és helyi számítástechnikákkal kapcsolatos támadásokban, penetrációs tesztek végzésében és exploitok írásában.
Annak érdekében, hogy értesüljön az új cikkekről, szoftverekről és egyéb információkról, létrehoztam és az I és K biztonság területén. Személyes kéréseket, kérdéseket, javaslatokat és ajánlásokat .
Minden információ kizárólag oktatási célokra van bemutatva. A dokumentum szerzője semmilyen felelősséget nem vállal senkinek okozott károkért, amely az e dokumentumban szereplő ismeretek és módszerek alkalmazásából ered.
A feladat megoldása otp
Folytatjuk a második részt. Elmondom rögtön, hogy nehezebb az elsőnél, de ezúttal nem adnak meg programkódot. Ne felejtsük el a beszélgetést itt (https://t.me/RalfHackerPublicChat) és itt (https://t.me/RalfHackerChannel). Kezdjük.
Megnyomjuk az otp feliratú ikont. Címet és portot kapunk a csatlakozáshoz.

Csatlakozunk és felfedezzük a szervert.

A zászlót, amit nem tudunk elolvasni, a program és annak forráskódja. Nézzük meg a forrást.

Elemzi a kódot. A program egy jelszót vár paraméterként.

Ezután az otp változóban tárolódik egy véletlenszerű 16 bájt.

A tmp mappában létrejön egy fájl véletlenszerű névvel (az első 8 bájt otp), és ebbe íródik egy véletlenszerű 8 bájt (otp második 8 bájtja).

Valamilyen okból az elkészített fájlból olvassuk az értéket, és ezt összehasonlítjuk a megadott jelszóval.

Itt van a sebezhetőség. A generált szám közvetlen tárolásán alapul a fájlban. Korlátozhatjuk a fájl méretét például 0-ra, így amikor a jelszóval írunk és olvasunk, akkor 0-val fog a beírás és beolvasás összehasonlítani. Ezt így tehetjük meg.
# ulimit -f 0 ![]()
Most futtassuk a programot.
![]()
Hibát kapunk. Nem gond, ezt a python segítségével kezelhetjük.
python -c "import os, signal; signal.signal(signal.SIGXFSZ, signal.SIG_IGN); os.system('./otp 0')" ![]()
Megkapjuk a zászlót és a magunk 100 könnyű pontját. Folytatjuk: a következő cikkben a Web-et érintjük. Csatlakozhatsz hozzánk itt .
Forrás: habr.com
