Resoldre la tasca amb pwnable.kr 25 - otp. Límit de mida de fitxer de Linux

Resoldre la tasca amb pwnable.kr 25 - otp. Límit de mida de fitxer de Linux
En aquest article resoldrem la 25a tasca des del lloc pwnable.kr.

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 Canal de Telegram и grup per discutir qualsevol qüestió a la zona de IIKB. També les vostres peticions, preguntes, suggeriments i recomanacions personals Ho miraré personalment i respondré a tothom..

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.

Resoldre la tasca amb pwnable.kr 25 - otp. Límit de mida de fitxer de Linux

Ens connectem i mirem al voltant del servidor.

Resoldre la tasca amb pwnable.kr 25 - otp. Límit de mida de fitxer de Linux

Una bandera que no podem llegir, un programa i el seu codi font. Mirem la font.

Resoldre la tasca amb pwnable.kr 25 - otp. Límit de mida de fitxer de Linux

Arreglem-ho. El programa pren una contrasenya com a argument.

Resoldre la tasca amb pwnable.kr 25 - otp. Límit de mida de fitxer de Linux

A continuació, s'emmagatzemen 16 bytes aleatoris a la variable otp.

Resoldre la tasca amb pwnable.kr 25 - otp. Límit de mida de fitxer de Linux

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).

Resoldre la tasca amb pwnable.kr 25 - otp. Límit de mida de fitxer de Linux

Per alguna raó, el valor del fitxer creat es llegeix i es compara amb la contrasenya introduïda.

Resoldre la tasca amb pwnable.kr 25 - otp. Límit de mida de fitxer de Linux

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

Resoldre la tasca amb pwnable.kr 25 - otp. Límit de mida de fitxer de Linux

Ara anem a executar el programa.

Resoldre la tasca amb pwnable.kr 25 - otp. Límit de mida de fitxer de Linux

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')" 

Resoldre la tasca amb pwnable.kr 25 - otp. Límit de mida de fitxer de Linux

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 telegram.

Font: www.habr.com

Afegeix comentari