En ĉi tiu artikolo ni solvos la 25-an taskon de la retejo
organizaj informojPrecipe por tiuj, kiuj volas lerni ion novan kaj disvolviĝi en iu ajn el la kampoj de informa kaj komputila sekureco, mi skribos kaj parolos pri la sekvaj kategorioj:
- PWN;
- kriptografio (Crypto);
- retaj teknologioj (Reto);
- reverso (Reverse Engineering);
- steganografio (Stegano);
- serĉo kaj ekspluato de RETEJ-vunereblecoj.
Krome, mi dividos mian sperton en komputila jurmedicina, malware kaj firmware-analizo, atakoj kontraŭ sendrataj retoj kaj lokaj retoj, pentestado kaj skribaj ekspluatoj.
Por ke vi eksciu pri novaj artikoloj, programaro kaj aliaj informoj, mi kreis
Ĉiuj informoj estas provizitaj nur por edukaj celoj. La aŭtoro de ĉi tiu dokumento prenas neniun respondecon pri ajna damaĝo kaŭzita al iu ajn kiel rezulto de uzado de la scioj kaj metodoj akiritaj kiel rezulto de studado de ĉi tiu dokumento.
Solvante la otp-taskon
Ni daŭrigas kun la dua sekcio. Mi tuj diros, ke ĝi estas pli malfacila ol la unua, sed ĉi-foje ili ne provizas la fontkodon de la programo. Ne forgesu la diskuton ĉi tie (https://t.me/RalfHackerPublicChat) kaj ĉi tie (https://t.me/RalfHackerChannel). Ni komencu.
Alklaku la ikonon kun la subskribo otp. Ni ricevas adreson kaj havenon por konektiĝi.
Ni konektas kaj ĉirkaŭrigardas sur la servilo.
La flago, kiun ni ne povas legi, estas la programo kaj ĝia fontkodo. Ni vidu la fonton.
Ni prenu ĝin. La programo prenas pasvorton kiel argumenton.
Plue, hazardaj 16 bajtoj estas stokitaj en la otp-variablo.
Dosiero kun hazarda nomo estas kreita en la tmp-dosierujo (la unuaj 8 bajtoj estas otp) kaj hazardaj 8 bajtoj estas skribitaj al ĝi (la duaj 8 bajtoj estas otp).
Ial, la valoro de la kreita dosiero estas legita kaj komparata kun la enigita pasvorto.
Estas vundebleco ĉi tie. Ĝi konsistas en la meza konservado de la generita numero al dosiero. Ni povas limigi la dosiergrandecon, ekzemple, al 0, tiam dum skribado kaj legado, 0 estos komparita kun la pasvorto.Vi povas fari ĝin tiel.
# ulimit -f 0
Nun ni rulu la programon.
Ni ricevas eraron. Ne gravas, ĝi povas esti prilaborita per la sama pitono.
python -c "import os, signal; signal.signal(signal.SIGXFSZ, signal.SIG_IGN); os.system('./otp 0')"
Ni ricevas la flagon kaj niajn facilajn 100 poentojn. Kaj ni daŭrigas: en la sekva artikolo ni tuŝos la Reton. Vi povas aliĝi al ni ĉe
fonto: www.habr.com