Løsning af opgaven fra pwnable.kr 25 — otp. Filstørrelsesbegrænsning i Linux

Løsning af opgaven fra pwnable.kr 25 — otp. Filstørrelsesbegrænsning i Linux
I denne artikel løser vi opgave 25 fra hjemmesiden pwnable.kr.

Organisatorisk informationSpecielt til dem, der ønsker at lære noget nyt og udvikle sig inden for informations- og computersikkerhed, vil jeg skrive og fortælle om følgende kategorier:

  • PWN;
  • kryptografi (Crypto);
  • netværksteknologier (Network);
  • reverse engineering (Reverse Engineering);
  • steganografi (Stegano);
  • søgning og udnyttelse af web-sårbarheder.

Derudover vil jeg dele min erfaring inden for computerkriminalistik, malware-analyse og firmware, angreb på trådløse netværk og lokale netværk, udførelse af pentests og udarbejdelse af exploits.

For at du kan få oplysninger om nye artikler, software og anden information, har jeg oprettet en kanal på Telegram og en gruppe til diskussion af eventuelle spørgsmål inden for IuKBS. Dine personlige anmodninger, spørgsmål, forslag og anbefalinger vil jeg se på personligt og svare alle.

Al information præsenteres udelukkende med uddannelsesmæssige formål. Forfatteren af dette dokument påtager sig intet ansvar for eventuelle skader, der måtte opstå som følge af anvendelsen af de viden og metoder, der opnås ved at studere dette dokument.

Løsningen på opgaven otp

Vi fortsætter med anden sektion. Jeg vil sige med det samme, at den er sværere end den første, men denne gang giver de os ikke kildekoden til programmet. Glem ikke diskussionen her (https://t.me/RalfHackerPublicChat) og her (https://t.me/RalfHackerChannel). Lad os komme i gang.

Vi klikker på ikonet mærket otp. Vi får en adresse og en port til at forbinde.

Løsning af opgaven fra pwnable.kr 25 — otp. Filstørrelsesbegrænsning i Linux

Vi forbinder og undersøger serveren.

Løsning af opgaven fra pwnable.kr 25 — otp. Filstørrelsesbegrænsning i Linux

Flaget, som vi ikke kan læse, programmet og dets kildekode. Lad os se på kildekoden.

Løsning af opgaven fra pwnable.kr 25 — otp. Filstørrelsesbegrænsning i Linux

Vi analyserer den. Programmet modtager et password som argument.

Løsning af opgaven fra pwnable.kr 25 — otp. Filstørrelsesbegrænsning i Linux

Derefter gemmes 16 tilfældige bytes i variablen otp.

Løsning af opgaven fra pwnable.kr 25 — otp. Filstørrelsesbegrænsning i Linux

I mappen tmp oprettes en fil med et tilfældigt navn (de første 8 bytes af otp) og der skrives 8 tilfældige bytes (de sidste 8 bytes af otp) ind i den.

Løsning af opgaven fra pwnable.kr 25 — otp. Filstørrelsesbegrænsning i Linux

Af en eller anden grund læses værdien fra den oprettede fil og sammenlignes med det indtastede password.

Løsning af opgaven fra pwnable.kr 25 — otp. Filstørrelsesbegrænsning i Linux

Her findes sårbarheden. Den består i den midlertidige lagring af det genererede nummer i filen. Vi kan begrænse filens størrelse, for eksempel til 0, så når der skrives og læses med passwordet, vil der blive sammenlignet 0. Dette kan gøres sådan.

# ulimit -f 0

Løsning af opgaven fra pwnable.kr 25 — otp. Filstørrelsesbegrænsning i Linux

Lad os nu køre programmet.

Løsning af opgaven fra pwnable.kr 25 — otp. Filstørrelsesbegrænsning i Linux

Vi får en fejl. Ikke noget problem, det kan håndteres med samme python.

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

Løsning af opgaven fra pwnable.kr 25 — otp. Filstørrelsesbegrænsning i Linux

Vi får flaget og nemme 100 point. Og vi fortsætter: i næste artikel vil vi berøre Web. Du kan slutte dig til os i Telegram.

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster