Løser oppgaven med pwnable.kr 25 - otp. Linux-filstørrelsesgrense

Løser oppgaven med pwnable.kr 25 - otp. Linux-filstørrelsesgrense
I denne artikkelen skal vi løse den 25. oppgaven fra nettstedet pwnable.kr.

OrganisasjonsinformasjonSpesielt for de som ønsker å lære noe nytt og utvikle seg innen ethvert område av informasjon og datasikkerhet, vil jeg skrive og snakke om følgende kategorier:

  • PWN;
  • kryptografi (Crypto);
  • nettverksteknologier (nettverk);
  • revers (Reverse Engineering);
  • steganografi (Stegano);
  • søk og utnyttelse av WEB-sårbarheter.

I tillegg til dette vil jeg dele min erfaring innen dataetterforskning, malware- og fastvareanalyse, angrep på trådløse nettverk og lokalnettverk, gjennomføring av pentests og skriving av utnyttelser.

For å hjelpe deg med å holde deg oppdatert med nye artikler, programvare og annen informasjon, har jeg laget Telegram kanal и gruppe for å diskutere eventuelle problemer innen I&KB. Også dine personlige forespørsler, spørsmål, forslag og anbefalinger Jeg skal se på det personlig og svare alle..

All informasjon presenteres kun for pedagogiske formål. Forfatteren av dette dokumentet påtar seg ikke noe ansvar for skader forårsaket av noen som følge av bruk av kunnskap og teknikker som er oppnådd ved å studere dette dokumentet.

Løser otp-oppgaven

La oss fortsette med den andre delen. Jeg vil si med en gang at det er mer komplisert enn den første, men denne gangen gir de ikke kildekoden til programmet. Ikke glem diskusjonen her (https://t.me/RalfHackerPublicChat) og her (https://t.me/RalfHackerChannel). La oss begynne.

Klikk på ikonet med signaturen otp. Vi får en adresse og port å koble til.

Løser oppgaven med pwnable.kr 25 - otp. Linux-filstørrelsesgrense

Vi kobler til og ser oss rundt på serveren.

Løser oppgaven med pwnable.kr 25 - otp. Linux-filstørrelsesgrense

Et flagg som vi ikke kan lese, et program og dets kildekode. La oss se på kilden.

Løser oppgaven med pwnable.kr 25 - otp. Linux-filstørrelsesgrense

La oss ordne opp i det. Programmet tar et passord som et argument.

Løser oppgaven med pwnable.kr 25 - otp. Linux-filstørrelsesgrense

Deretter lagres tilfeldige 16 byte i otp-variabelen.

Løser oppgaven med pwnable.kr 25 - otp. Linux-filstørrelsesgrense

En fil med et tilfeldig navn opprettes i tmp-mappen (de første 8 bytene er otp) og tilfeldige 8 byte skrives til den (de andre 8 bytene er otp).

Løser oppgaven med pwnable.kr 25 - otp. Linux-filstørrelsesgrense

Av en eller annen grunn blir verdien av den opprettede filen lest og sammenlignet med det angitte passordet.

Løser oppgaven med pwnable.kr 25 - otp. Linux-filstørrelsesgrense

Det er her sårbarheten kommer inn. Det består av å lagre det genererte nummeret mellomværende i en fil. Vi kan begrense filstørrelsen f.eks til 0, så ved skriving og lesing vil 0 sammenlignes med passordet Dette kan gjøres slik.

# ulimit -f 0

Løser oppgaven med pwnable.kr 25 - otp. Linux-filstørrelsesgrense

La oss nå kjøre programmet.

Løser oppgaven med pwnable.kr 25 - otp. Linux-filstørrelsesgrense

Vi får en feil. Det spiller ingen rolle, det kan behandles med samme python.

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

Løser oppgaven med pwnable.kr 25 - otp. Linux-filstørrelsesgrense

Vi får flagget og våre enkle 100 poeng. Og vi fortsetter: i neste artikkel skal vi berøre nettet. Du kan bli med oss ​​på Telegram.

Kilde: www.habr.com

Legg til en kommentar