Toolverse
Wszystkie skille

fuzzing-dictionary

autor: trailofbits

Słowniki do fuzzingu — kieruj testerem ku głębokim ścieżkom kodu

Instalacja

Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.

Instalacja

Szybkie info

Wyświetlenia
10

O skillu

Fuzzing Dictionary to technika testowania, która dostarcza fuzzerowi słownika domenowo-specyficznych tokenów. Zamiast czystych losowych mutacji, fuzzer wykorzystuje znane słowa kluczowe, numery magiczne, komendy protokołów i ciągi znaków specyficzne dla formatu, aby dotrzeć do głębszych ścieżek kodu w parserach, obsługach protokołów i procesorach formatów plików. Używaj tej umiejętności, gdy testujesz parsery JSON, XML czy konfiguracyjne, implementacje protokołów HTTP, DNS czy niestandardowych, oraz obsługę formatów plików takich jak PNG czy PDF.

Jak używać

  1. Przygotuj plik słownika jako zwykły plik tekstowy zawierający cytowane ciągi znaków reprezentujące znaczące tokeny dla Twojego celu testowania. Każdy wpis może być prostym ciągiem w cudzysłowie (np. "keyword") lub parą klucz-wartość (np. kw="value"). Dla znaków niedrukowalnych użyj sekwencji heksadecymalnych, na przykład "\xF7\xF8".

  2. Zidentyfikuj, czy Twój fuzzer to libFuzzer, AFL++ czy cargo-fuzz, ponieważ każdy z nich obsługuje słowniki w tym samym formacie, ale z różnymi flagami wiersza poleceń.

  3. Jeśli używasz libFuzzer, uruchom fuzzer z flagą -dict wskazującą na plik słownika: ./fuzz -dict=./dictionary.dict wraz z innymi parametrami.

  4. Jeśli używasz AFL++, uruchom afl-fuzz z flagą -x przekazując ścieżkę do pliku słownika: afl-fuzz -x ./dictionary.dict oraz pozostałe opcje.

  5. Jeśli używasz cargo-fuzz, uruchom cel fuzzingu z flagą -dict: cargo fuzz run fuzz_target -- -dict=./dictionary.dict.

  6. Monitoruj postęp pokrycia kodu — słownik powinien pomóc fuzzerowi omijać wczesne kontrole walidacji i docierać do głębszych logik, zwłaszcza w parserach, obsługach protokołów i procesorach formatów plików.

Podobne skille