Soluția pentru sarcina de pe pwnable.kr 25 — otp. Limitarea dimensiunii fișierului în Linux

Soluția pentru sarcina de pe pwnable.kr 25 — otp. Limitarea dimensiunii fișierului în Linux
În acest articol, vom rezolva exercițiul 25 de pe site pwnable.kr.

Informații organizaționaleSpecial pentru cei care doresc să învețe ceva nou și să se dezvolte în oricare dintre domeniile securității informației și a calculatoarelor, voi scrie și povesti despre următoarele categorii:

  • PWN;
  • criptografie (Crypto);
  • tehnologii de rețea (Network);
  • inginerie inversă (Reverse Engineering);
  • steganografie (Stegano);
  • căutarea și exploatarea vulnerabilităților WEB.

Pe lângă asta, voi împărtăși experiența mea în criminalistica computerizată, analiza malware-ului și firmwar-ului, atacurile asupra rețelelor wireless și a rețelelor locale, desfășurarea testelor de penetrare și scrierea exploiturilor.

Pentru ca voi să puteți afla despre articole noi, software și alte informații, am creat un canal pe Telegram și o grupă pentru discutarea oricăror întrebări în domeniul IiiKB. De asemenea, solicitările, întrebările, sugestiile și recomandările voastre le voi analiza personal și voi răspunde tuturor.

Toate informațiile sunt prezentate exclusiv în scopuri educaționale. Autorul acestui document nu își asumă nicio responsabilitate pentru daunele cauzate oricărei persoane ca urmare a utilizării cunoștințelor și metodelor obținute din studierea acestui document.

Soluția exercițiului otp

Continuăm cu a doua secțiune. Voi spune de la început că este mai dificilă decât prima, dar de data aceasta nu ne oferă codul sursă al programului. Nu uitați de discuția aici(https://t.me/RalfHackerPublicChat) și aici (https://t.me/RalfHackerChannel). Să începem.

Facem clic pe pictograma cu denumirea otp. Ni se oferă o adresă și un port pentru conectare.

Soluția pentru sarcina de pe pwnable.kr 25 — otp. Limitarea dimensiunii fișierului în Linux

Ne conectăm și ne uităm în server.

Soluția pentru sarcina de pe pwnable.kr 25 — otp. Limitarea dimensiunii fișierului în Linux

Steagul pe care nu-l putem citi, programul și codul său sursă. Să ne uităm la sursa acestuia.

Soluția pentru sarcina de pe pwnable.kr 25 — otp. Limitarea dimensiunii fișierului în Linux

Să-l disecăm. Programul primește ca argument o parolă.

Soluția pentru sarcina de pe pwnable.kr 25 — otp. Limitarea dimensiunii fișierului în Linux

Apoi, în variabila otp se salvează 16 bytes aleatorii.

Soluția pentru sarcina de pe pwnable.kr 25 — otp. Limitarea dimensiunii fișierului în Linux

În folderul tmp se creează un fișier cu un nume aleatoriu (primele 8 bytes otp) și în el se scriu 8 bytes aleatorii (următoarele 8 bytes otp).

Soluția pentru sarcina de pe pwnable.kr 25 — otp. Limitarea dimensiunii fișierului în Linux

Dintr-un motiv anume, din fișierul creat se citește o valoare și se compară cu parola introdusă.

Soluția pentru sarcina de pe pwnable.kr 25 — otp. Limitarea dimensiunii fișierului în Linux

Aici se află vulnerabilitatea. Aceasta constă în salvarea intermediară a numărului generat în fișier. Putem limita dimensiunea fișierului, de exemplu, la 0, astfel încât, la scrierea și citirea cu parola, se va compara 0. Se poate face astfel.

# ulimit -f 0

Soluția pentru sarcina de pe pwnable.kr 25 — otp. Limitarea dimensiunii fișierului în Linux

Acum să rulăm programul.

Soluția pentru sarcina de pe pwnable.kr 25 — otp. Limitarea dimensiunii fișierului în Linux

Obținem o eroare. Nu-i nimic, pentru că poate fi gestionată cu același Python.

python -c "import os, signal; signal.signal(signal.SIGXFSZ, signal.SIG_IGN); os.system('./otp 0')" 

Soluția pentru sarcina de pe pwnable.kr 25 — otp. Limitarea dimensiunii fișierului în Linux

Obținem steagul și cele 100 de puncte ușoare. Și continuăm: în următorul articol ne vom axa pe Web. Puteți să vă alăturați nouă în Telegram.

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster