ctf-pwn
Znajdź i wykorzystaj luki w pamięci, aby rozwiązać wyzwania CTF
Instalacja
Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.
Instalacja
O skillu
Umiejętność do analizy i eksploatacji podatności związanych z uszkodzeniami pamięci w binarnych wyzwaniach CTF. Odkrywaj buffer overflow'e, format string'i, exploity heap'u i łańcuchy ROP, a następnie wykorzystuj je do odczytania flag'ów. Narzędzie uczy systematycznego podejścia: identyfikuj źródła danych kontrolowanych przez atakującego, mapuj przepływ do bufforów i zmiennych, analizuj założenia bezpieczeństwa programu, a na koniec manipuluj stanem pamięci aby zmienić kontrolę wykonania.
Jak używać
Zainstaluj umiejętność w swoim środowisku Claude/Copilot, wskazując repozytorium cyberkaida/reverse-engineering-assistant i ścieżkę ReVa/skills/ctf-pwn.
Przygotuj binarkę CTF lub kod źródłowy wyzwania. Jeśli masz dostęp do kodu, przeanalizuj go pod kątem miejsc, gdzie dane użytkownika są kopiowane do bufforów o stałym rozmiarze lub gdzie wskaźniki mogą być nadpisane.
Zdefiniuj trzy warstwy analizy: (a) warstwa przepływu danych — gdzie trafiają twoje dane wejściowe (stdin, argumenty, zmienne środowiskowe), (b) warstwa bezpieczeństwa pamięci — jakie założenia robi program o rozmiarach bufforów i ważności wskaźników, (c) warstwa eksploatacji — jak możesz nadpisać adresy powrotu, wskaźniki funkcji lub inne dane krytyczne.
Postaw sobie pytania w kolejności: Co mogę kontrolować? Gdzie trafia moja kontrolowana data? Jakie są granice bufforów? Jakie dane mogę nadpisać lub odczytać? Jak zmienić przepływ wykonania programu?
Opracuj payload eksploitacyjny na podstawie zidentyfikowanej podatności — np. buffer overflow do nadpisania adresu powrotu, format string do wycieku danych, lub ROP chain do wykonania kodu. Testuj payload iteracyjnie, obserwując zachowanie programu.
Uruchom exploit przeciwko binarce i odczytaj flag. Jeśli się nie powiedzie, powróć do kroku 3 i przeanalizuj nowe założenia lub źródła danych, które mogłeś przeoczyć.