Rozwiązanie zadania z pwnable.kr 25 - otp. Limit rozmiaru pliku w systemie Linux

Rozwiązanie zadania z pwnable.kr 25 - otp. Limit rozmiaru pliku w systemie Linux
W tym artykule rozwiążemy 25. zadanie z witryny pwnable.kr.

informacje organizacyjneSpecjalnie dla tych, którzy chcą nauczyć się czegoś nowego i rozwijać w dowolnym obszarze informacji i bezpieczeństwa komputerowego, napiszę i opowiem o następujących kategoriach:

  • PWN;
  • kryptografia (krypto);
  • technologie sieciowe (Sieć);
  • rewers (Inżynieria Odwrotna);
  • steganografia (Stegano);
  • wyszukiwanie i wykorzystywanie luk w zabezpieczeniach sieci WWW.

Oprócz tego podzielę się swoim doświadczeniem w kryminalistyce komputerowej, analizie złośliwego oprogramowania i oprogramowania sprzętowego, atakach na sieci bezprzewodowe i sieci lokalne, przeprowadzaniu pentestów i pisaniu exploitów.

Stworzyłem, abyś mógł dowiedzieć się o nowych artykułach, oprogramowaniu i innych informacjach Kanał telegramu и grupę, aby omówić wszelkie kwestie na terenie IIKB. Również Twoje osobiste prośby, pytania, sugestie i zalecenia Zajrzę i każdemu odpowiem..

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

Rozwiązanie zadania otp

Kontynuujmy drugą część. Od razu powiem, że jest bardziej skomplikowany niż pierwszy, ale tym razem nie podają kodu źródłowego programu. Nie zapomnij o dyskusjach tutaj (https://t.me/RalfHackerPublicChat) i tutaj (https://t.me/RalfHackerChannel). Zaczynajmy.

Kliknij na ikonkę z podpisem otp. Podajemy adres i port, z którym możemy się połączyć.

Rozwiązanie zadania z pwnable.kr 25 - otp. Limit rozmiaru pliku w systemie Linux

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

Rozwiązanie zadania z pwnable.kr 25 - otp. Limit rozmiaru pliku w systemie Linux

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

Rozwiązanie zadania z pwnable.kr 25 - otp. Limit rozmiaru pliku w systemie Linux

Uporządkujmy to. Program jako argument przyjmuje hasło.

Rozwiązanie zadania z pwnable.kr 25 - otp. Limit rozmiaru pliku w systemie Linux

Następnie losowe 16 bajtów jest przechowywanych w zmiennej otp.

Rozwiązanie zadania z pwnable.kr 25 - otp. Limit rozmiaru pliku w systemie Linux

W folderze tmp tworzony jest plik o losowej nazwie (pierwsze 8 bajtów to otp) i zapisywanych jest do niego losowe 8 bajtów (drugie 8 bajtów to otp).

Rozwiązanie zadania z pwnable.kr 25 - otp. Limit rozmiaru pliku w systemie Linux

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

Rozwiązanie zadania z pwnable.kr 25 - otp. Limit rozmiaru pliku w systemie Linux

Tutaj pojawia się luka. Polega na pośrednim zapisaniu wygenerowanego numeru do pliku. Możemy ograniczyć rozmiar pliku np. do 0, wtedy przy zapisie i czytaniu z hasłem porównywane będzie 0. Można to zrobić w ten sposób.

# ulimit -f 0

Rozwiązanie zadania z pwnable.kr 25 - otp. Limit rozmiaru pliku w systemie Linux

Teraz uruchommy program.

Rozwiązanie zadania z pwnable.kr 25 - otp. Limit rozmiaru pliku w systemie Linux

Otrzymujemy błąd. Nie ma to znaczenia, można to przetworzyć przy użyciu tego samego 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. Limit rozmiaru pliku w systemie Linux

Dostajemy flagę i łatwe 100 punktów. I kontynuujemy: w następnym artykule dotkniemy sieci. Możesz do nas dołączyć o godz Telegram.

Źródło: www.habr.com

Dodaj komentarz