FiddlerExtensions
Rozszerzenia FiddlerExtensions dodają do narzędzia Fiddler kilka dodatkowych funkcji, które uważam za pomocne. Dodatkowe funkcje działają, korzystam z nich, ale najlepiej opisuje je stwierdzenie quick&dirty, o czym lojalnie uprzedzam. Ich opis znajduje się w dalszej części tekstu.
Instalacja
Instalacja rozszerzeń polega na skopiowaniu pliku FiddlerExtensions.dll do katalogu \My Documents\Fiddler2\Scripts (lub innego właściwego dla wersji językowej systemu operacyjnego).
- Pobierz plik: FiddlerExtensions-0.1.4236.38959 (2011-08-07)
Dodatkowo należy zainstalować:
- WinMerge: http://winmerge.org/
- ssdeep: http://ssdeep.sourceforge.net/
UWAGA: w przypadku ssdeep należy skopiować plik fuzzy.dll do tego katalogu, w którym znajduje się plik FiddlerExtensions.dll.
Funkcje
W skład rozszerzeń wchodzi:
- Opcja Replay and break w menu kontekstowym,
- Opcja porównywania wybranych sesji (response body) przy pomocy WinMerge,
- Porównywanie sesji z wykorzystaniem fuzzy hashing (patrz: ssdeep),
- Zaimplementowanych kilka akcji dla QuickExec:
- ssdeep - liczenie fuzzy hash dla sesji,
- cc - kopiowanie wartości dowolnej flagi sesji do kolumny Custom,
- clear - czyszczenie zawartości dowolnej flagi sesji,
- sha1 - liczenie sha1 dla sesji,
- colorize - kolorowanie listy sesji na podstawie zawartości kolumny Custom,
- ac - wspomaganie testowania kontroli dostępu,
Replay and break
Opcja ta pozwala ponownie wysłać wybraną sesję i zatrzymać ją do edycji przed przesłaniem do serwera. Nie musi być włączone przechwytywanie wszystkich sesji. Jest to wygodne w przypadku aplikacji, które automatycznie generują okresowo żądania (np. korzystających intensywnie z AJAX)
Porównywanie sesji
Porównywanie sesji przy pomocy WinMerge oraz ssdeep dostępne jest z poziomu menu kontekstowego dla sesji:
W przypadku porównywania sesji z wykorzystaniem WinMerge na liście sesji należy zaznaczyć co najmniej dwie sesje. W przypadku, gdy zostanie zaznaczonych więcej niż dwie sesje, jako podstawowa zostanie wykorzystana sesja pierwsza i wszystkie pozostałe sesje zostaną porównane z nią.
W przypadku porównywania sesji z wykorzystaniem ssdeep na liście sesji należy zaznaczyć jedną sesję, która zostanie wykorzystana jako sesja bazowa, z którą porównane zostaną wszystkie pozostałe sesje. W przypadku, gdy zostanie zaznaczona więcej niż jedna sesja, pierwsza zaznaczona sesja na liście zostanie wykorzystana jako sesja bazowa i z nią zostaną porównane pozostałe zaznaczone sesje.
Rezultat porównania jest prezentowany w kolumnie Custom jako liczba z przedziału 0 - 100 gdzie 0 oznacza bardzo podobne pliki, natomiast 100 pliki bardzo niepodobne. Sesja wykorzystana jako sesja bazowa zostaje pogrubiona.
Poniższy screen pokazuje rezultat porównania sesji bazowej z pozostałymi zaznaczonymi sesjami:
UWAGA: dla danych o niewielkim rozmiarze ssdeep nie zachowuje się zbyt dobrze. W szczególności sesja bazowa może zostać uznana za niepodobną sama do siebie.
Akcje QuickExec
ssdeep
Akcja ssdeep powoduje wyliczenie fuzzy hash. Rezultat jest zapisany w fladze ssdeep. Akcja ta wykonuje się automatycznie przy porównywaniu sesji z wykorzystaniem ssdeep jeśli sesja wybrana jako bazowa nie posiada ustawionej tej flagi.
sha1
Akcja sha1 powoduje wyliczenie hasha SHA1 z odpowiedzi serwera (session body). Rezultat jest zapisany w fladze sha1.
cc
Akcja cc pozwala skopiować wartość dowolnej flagi do flagi ui-customcolumn. Zawartość flagi ui-customcolumn jest wyświetlana w kolumnie Custom w GUI. Przykład skopiowania flagi ssdeep:
cc ssdeep
Rezultat widoczny w GUI:
Zobacz też: Configuring Columns.
clear
Akcja clear pozwala usunąć dowolną flagę z wszystkich sesji. Przykład:
clear ui-backcolor
Zapoznaj się też z opisem podstawowych flag: Fiddler SessionFlags.
colorize
Akcja colorize powoduje ustawienie koloru tła zależnego od zawartości flagi ui-customcolumn. Sesje o tej samej wartości kolumny są oznaczane tym samym kolorem. Poniżej przykład działania komendy akcji:
UWAGA: ilość wykorzystywanych kolorów jest ograniczona, więc ten sam kolor może zostać użyty do oznaczenia różnych wartości ui-customcolumn.
dumpurls
Akcja dumpurls powoduje skopiowanie wszystkich wyświetlanych URLi do schowka w następującym formacie:
URLS = ({"url": "http://bootcamp.threats.pl/lesson02/index.php?id=2", "data": None},
{"url": "http://bootcamp.threats.pl/lesson02/index.php", "data": "id=3"})
W zamyśle taki kod przeznaczony jest do wstawienia do skryptu w języku Python w celu dalszego przetwarzania, na przykład w celu fuzzingu zebranych URLi.
ac
Akcja ac ma na celu wspomaganie testowania kontroli dostępu. Pozwala ona na:
- stworzenie listy sesji użytkowników (słownik: nazwa, identyfikator sesji),
- odtworzenie wskazanych żądań z identyfikatorem sesji wybranego użytkownika lub bez identyfikatora sesji,
Dostępne w ramach akcji komendy:
- ac add nazwa cookie - dodanie sesji użytkownika do listy,
- ac del nazwa - usunięcie sesji użytkownika z listy,
- ac clear - czyszczenie listy sesji,
- ac test nazwa - odtwarzanie wskazanych żądań z identyfikatorem sesji wskazanego użytkownika,
- ac testall - odtwarzanie wskazanych żądań ze wszystkimi zapisanymi identyfikatorami sesji,
- ac testanon - odtwarzanie wskazanych żądań bez identyfikatora sesji,