Soluție la sarcină cu pwnable.kr 25 - otp. Limită de dimensiune a fișierului în Linux

Soluție la sarcină cu pwnable.kr 25 - otp. Limită de dimensiune a fișierului în Linux
În acest articol vom rezolva a 25-a sarcină de pe site pwnable.kr.

informatii organizatoriceMai ales pentru cei care doresc să învețe ceva nou și să se dezvolte în orice domeniu al securității informaționale și informatice, voi scrie și voi vorbi despre următoarele categorii:

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

În plus, voi împărtăși experiența mea în criminalistica computerizată, analiză malware și firmware, atacuri asupra rețelelor wireless și rețelelor locale, desfășurarea de pentesturi și scrierea de exploit-uri.

Pentru a putea afla despre articole noi, software și alte informații, am creat Canalul Telegram и grup pentru a discuta orice probleme în zona IIKB. De asemenea, solicitările, întrebările, sugestiile și recomandările dvs. personale Voi arunca o privire și voi răspunde tuturor..

Toate informațiile sunt furnizate doar în scop educațional. Autorul acestui document nu își asumă nicio responsabilitate pentru orice daune cauzate cuiva ca urmare a utilizării cunoștințelor și metodelor obținute ca urmare a studierii acestui document.

Rezolvarea sarcinii otp

Să continuăm cu a doua secțiune. Voi spune imediat că este mai complicat decât primul, dar de data aceasta nu oferă codul sursă al programului. Nu uitați de discuția de aici (https://t.me/RalfHackerPublicChat) și de aici (https://t.me/RalfHackerChannel). Sa incepem.

Faceți clic pe pictograma cu semnătura otp. Ni se oferă o adresă și un port la care să ne conectăm.

Soluție la sarcină cu pwnable.kr 25 - otp. Limită de dimensiune a fișierului în Linux

Ne conectăm și ne uităm în jurul serverului.

Soluție la sarcină cu pwnable.kr 25 - otp. Limită de dimensiune a fișierului în Linux

Un steag pe care nu îl putem citi, un program și codul său sursă. Să ne uităm la sursă.

Soluție la sarcină cu pwnable.kr 25 - otp. Limită de dimensiune a fișierului în Linux

Să rezolvăm. Programul ia o parolă ca argument.

Soluție la sarcină cu pwnable.kr 25 - otp. Limită de dimensiune a fișierului în Linux

În continuare, 16 octeți aleatori sunt stocați în variabila otp.

Soluție la sarcină cu pwnable.kr 25 - otp. Limită de dimensiune a fișierului în Linux

Un fișier cu un nume aleatoriu este creat în folderul tmp (primii 8 octeți sunt otp) și se scriu în el 8 octeți aleatori (cei de-al doilea 8 octeți sunt otp).

Soluție la sarcină cu pwnable.kr 25 - otp. Limită de dimensiune a fișierului în Linux

Din anumite motive, valoarea fișierului creat este citită și comparată cu parola introdusă.

Soluție la sarcină cu pwnable.kr 25 - otp. Limită de dimensiune a fișierului în Linux

Aici intervine vulnerabilitatea. Constă în salvarea intermediară a numărului generat într-un fișier. Putem limita dimensiunea fișierului, de exemplu, la 0, apoi atunci când scrieți și citiți, 0 va fi comparat cu parola. Acest lucru se poate face astfel.

# ulimit -f 0

Soluție la sarcină cu pwnable.kr 25 - otp. Limită de dimensiune a fișierului în Linux

Acum să rulăm programul.

Soluție la sarcină cu pwnable.kr 25 - otp. Limită de dimensiune a fișierului în Linux

Primim o eroare. Nu contează, poate fi procesat folosind același python.

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

Soluție la sarcină cu pwnable.kr 25 - otp. Limită de dimensiune a fișierului în Linux

Primim steagul și cele 100 de puncte. Și continuăm: în articolul următor vom atinge pe Web. Ne poți alătura la Telegramă.

Sursa: www.habr.com

Adauga un comentariu