Rozwiązanie zadania z pwnable.kr 25 — otp. Ograniczenie rozmiaru pliku w Linux

Rozwiązanie zadania z pwnable.kr 25 — otp. Ograniczenie rozmiaru pliku w Linux
W tym artykule rozwiążemy 25. zadanie z strony pwnable.kr.

Informacje organizacyjneSpecjalnie dla tych, którzy chcą poznawać coś nowego i rozwijać się w dowolnej dziedzinie bezpieczeństwa informacyjnego i komputerowego, będę pisać i mówić o następujących kategoriach:

  • PWN;
  • kryptografia (Crypto);
  • technologie sieciowe (Network);
  • odwracanie (Reverse Engineering);
  • steganografia (Stegano);
  • szukanie i eksploatacja WYPADKÓW WEB.

Dodatkowo podzielę się swoim doświadczeniem w dziedzinie kryminalistyki komputerowej, analizie złośliwego oprogramowania i oprogramowania, atakach na sieci bezprzewodowe i lokalne sieci komputerowe, przeprowadzaniu testów penetracyjnych i pisaniu exploitów.

Abyście mogli poznawać nowe artykuły, oprogramowanie i inne informacje, stworzyłem kanał w Telegramie i grupę do dyskusji na wszelkie pytania w dziedzinie ITE CB. Również Wasze osobiste prośby, pytania, sugestie i zalecenia rozważę osobiście i odpowiem wszystkim.

Wszystkie informacje przedstawione są wyłącznie w celach edukacyjnych. Autor tego dokumentu nie ponosi żadnej odpowiedzialności za jakiekolwiek szkody wyrządzone komukolwiek w wyniku wykorzystania wiedzy i metod uzyskanych w wyniku studiowania tego dokumentu.

Rozwiązanie zadania otp

Kontynuujemy drugą część. Poinformuję, że jest trudniejsze od pierwszej, ale tym razem nie dostarczono kodu źródłowego programu. Nie zapominajcie o dyskusji tutaj(https://t.me/RalfHackerPublicChat) i tutaj (https://t.me/RalfHackerChannel). Zaczynajmy.

Klikamy na ikonę oznaczoną otp. Otrzymujemy adres i port do połączenia.

Rozwiązanie zadania z pwnable.kr 25 — otp. Ograniczenie rozmiaru pliku w Linux

Łączymy się i rozglądamy po serwerze.

Rozwiązanie zadania z pwnable.kr 25 — otp. Ograniczenie rozmiaru pliku w Linux

Flaga, której nie możemy odczytać, program i jego kod źródłowy. Zobaczmy kod źródłowy.

Rozwiązanie zadania z pwnable.kr 25 — otp. Ograniczenie rozmiaru pliku w Linux

Rozdzielamy go. Program przyjmuje jako argument hasło.

Rozwiązanie zadania z pwnable.kr 25 — otp. Ograniczenie rozmiaru pliku w Linux

Następnie w zmiennej otp przechowywane są losowe 16 bajtów.

Rozwiązanie zadania z pwnable.kr 25 — otp. Ograniczenie rozmiaru pliku w Linux

W folderze tmp tworzony jest plik o losowej nazwie (pierwsze 8 bajtów otp) i zapisuje się w nim losowe 8 bajtów (drugie 8 bajtów otp).

Rozwiązanie zadania z pwnable.kr 25 — otp. Ograniczenie rozmiaru pliku w Linux

Z jakiegoś powodu odczytywana jest wartość z utworzonego pliku i porównywana z wprowadzonym hasłem.

Rozwiązanie zadania z pwnable.kr 25 — otp. Ograniczenie rozmiaru pliku w Linux

Tutaj pojawia się luka. Polega ona na pośrednim zapisywaniu generowanej liczby w pliku. Możemy ograniczyć rozmiar pliku, na przykład do 0, wtedy podczas zapisu i odczytu hasła będzie porównywane 0. Można to zrobić w ten sposób.

# ulimit -f 0

Rozwiązanie zadania z pwnable.kr 25 — otp. Ograniczenie rozmiaru pliku w Linux

Teraz uruchomimy program.

Rozwiązanie zadania z pwnable.kr 25 — otp. Ograniczenie rozmiaru pliku w Linux

Otrzymujemy błąd. Nie ma problemu, możemy go obsłużyć za pomocą Pythona.

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

Rozwiązanie zadania z pwnable.kr 25 — otp. Ograniczenie rozmiaru pliku w Linux

Zdobywamy flagę i łatwe 100 punktów. Kontynuujemy: w następnym artykule omówimy Web. Możesz dołączyć do nas w Telegram.

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster