En aquest article resoldrem la 25a tasca des del lloc
Informació organitzativaEspecialment per a aquells que vulguin aprendre alguna cosa nova i desenvolupar-se en qualsevol àrea de la informació i la seguretat informàtica, escriuré i parlaré de les següents categories:
- PWN;
- criptografia (Crypto);
- tecnologies de xarxa (Xarxa);
- inversa (Enginyeria inversa);
- esteganografia (Stegano);
- cerca i explotació de vulnerabilitats WEB.
A més d'això, compartiré la meva experiència en informàtica forense, anàlisi de programari maliciós i firmware, atacs a xarxes sense fil i xarxes d'àrea local, realització de pentests i escriptura d'explotacions.
Perquè pugueu conèixer nous articles, programari i altra informació, vaig crear
Tota la informació es proporciona només amb finalitats educatives. L'autor d'aquest document no assumeix cap responsabilitat pels danys causats a ningú com a conseqüència de l'ús dels coneixements i mètodes obtinguts com a resultat de l'estudi d'aquest document.
Resolució de la tasca otp
Continuem amb el segon apartat. De seguida diré que és més complicat que el primer, però aquesta vegada no proporcionen el codi font del programa. No us oblideu de la discussió aquí (https://t.me/RalfHackerPublicChat) i aquí (https://t.me/RalfHackerChannel). Anem a començar.
Feu clic a la icona amb la signatura otp. Ens donen una adreça i un port per connectar-nos.
Ens connectem i mirem al voltant del servidor.
Una bandera que no podem llegir, un programa i el seu codi font. Mirem la font.
Arreglem-ho. El programa pren una contrasenya com a argument.
A continuació, s'emmagatzemen 16 bytes aleatoris a la variable otp.
Es crea un fitxer amb un nom aleatori a la carpeta tmp (els primers 8 bytes són otp) i s'escriuen 8 bytes aleatoris (els segons 8 bytes són otp).
Per alguna raó, el valor del fitxer creat es llegeix i es compara amb la contrasenya introduïda.
Aquí és on entra la vulnerabilitat. Consisteix a desar de manera intermèdia el número generat en un fitxer. Podem limitar la mida del fitxer, per exemple, a 0, i en escriure i llegir, es compararà 0 amb la contrasenya. Això es pot fer així.
# ulimit -f 0
Ara anem a executar el programa.
Tenim un error. No importa, es pot processar amb el mateix python.
python -c "import os, signal; signal.signal(signal.SIGXFSZ, signal.SIG_IGN); os.system('./otp 0')"
Aconseguim la bandera i els nostres 100 punts fàcils. I seguim: en el proper article tocarem a la Web. Pots unir-te a nosaltres a
Font: www.habr.com