JWT Re-auth – automatyczne odświeżanie sesji

Burp Suite nie radzi sobie z automatycznym odświeżaniem sesji, jeśli taka sesja jest przechowywana w nagłówku, a nie w plikach cookie. Jest to istotne z uwagi na to, że często tokeny JWT (JSON Web Tokens) mają krótki czas życia, co wynika z konieczności zapewnienia bezpieczeństwa przetwarzanych danych. W efekcie, próba uruchomienia automatycznych skanów po kilku wysłanych żądaniach często kończy się odpowiedzią serwera z kodem błędu 401 oraz komunikatem o wygaśnięciu ważności tokena.

W takich sytuacjach pomocna może być wtyczka ATOR, która umożliwia wykrywanie nieważnych sesji i automatyzację procesu logowania w celu uzyskania nowego tokena autoryzacyjnego. Niestety istnieją przypadki, w których nawet ta wtyczka może nie być wystarczająca. Przykładowo, może to mieć miejsce, gdy aplikacja podczas procesu logowania wymaga rozwiązania testu CAPTCHA, lub gdy sam proces logowania jest wieloetapowy i wymaga wprowadzenia pewnych unikalnych wartości generowanych dynamicznie przez kod JavaScript na stronie internetowej.

Ostatnio odkryłem rozwiązanie tego problemu, którym chciałbym się z Tobą podzielić. Jest nim rozszerzenie do Burp Suite, stworzone przez NCC Group i nazwane JWT Re-auth. To narzędzie umożliwia automatyczne wysyłanie żądań odpowiedzialnych za odświeżanie sesji, a co ważniejsze, jest w stanie wykryć takie żądania, gdy zostaną one wysłane w tle przez przeglądarkę. Następnie może ono wyciągnąć z tych żądań nowy token sesyjny i dokleić go do żądań w miejscach, które wcześniej zdefiniowaliśmy.

Wystarczy przez menu kontekstowe wysłać żądanie odpowiedzialne za odświeżanie sesji przesłać do wtyczki (albo wpisać adres ręcznie):

JWT Re-auth menu

Następnie należy zdefiniować, jak nazywa się nagłówek, z tokenem sesyjnym oraz uzupełnić wyrażenie regularne, które jest odpowiedzialne za znajdywanie tokenu w odpowiedzi serwera:

JWT Re-auth options

Kolejno dodajemy do zakładki scope adresy, pod jakimi chcemy, żeby wtyczka doklejała token autoryzacyjny:

JWT Re-auth scope

Ostatnim krokiem jest uruchomienie w przeglądarce jakieś wtyczki, która co określony czas (taki jak życie sesji) będzie odświeżała kartę, żeby wywołać żądanie o odświeżenie sesji.

Wtyczkę można znaleźć na Githubie NCC Group

Chcesz wiedzieć więcej?

Zapisz się i bądź informowany o nowych postach (zero spamu!). <br> Dodatkowo otrzymasz, moją prywatną listę 15 najbardziej przydatnych narzędzi (wraz z krótkim opisem), których używam przy testach penetracyjnych.

Nigdy nie podam, nie wymienię ani nie sprzedam Twojego adresu e-mail. W każdej chwili możesz zrezygnować z subskrypcji.

Otagowano , , , , , , , , , , , , , , , , , .Dodaj do zakładek Link.

Podziel się swoją opinią na temat artykułu