Jak przetestować ataki JWT?

Dec 27 2022
Cześć wszystkim na tym blogu. Postaram się podsumować ataki JWT Mamy 3 główne punkty, o których będziemy mówić - Czym są JWT? - Czym są ataki JWT? - Scenariusze ataków JWT Zaczynajmy !! - Czym są JWT? Tokeny sieciowe JSON (JWT) to ustandaryzowany format przesyłania podpisanych kryptograficznie danych JSON między systemami. W przeciwieństwie do klasycznych tokenów sesyjnych, wszystkie dane potrzebne serwerowi są przechowywane po stronie klienta w samym JWT.

Cześć wszystkim na tym blogu postaram się podsumować ataki JWT

Mamy 3 główne stałe punkty, o których będziemy rozmawiać
- Czym są JWT?
- Czym są ataki JWT?
- Scenariusze dotyczące ataków JWT

Zacznijmy !!

- Czym są JWT ?

Tokeny sieciowe JSON (JWT) to ustandaryzowany format przesyłania podpisanych kryptograficznie danych JSON między systemami. W przeciwieństwie do klasycznych tokenów sesyjnych, wszystkie dane potrzebne serwerowi są przechowywane po stronie klienta w samym JWT.
JWT składa się z 3 części: nagłówka , ładunku i podpisu . Każdy z nich jest oddzielony kropką.xxxxx.yyyyy.zzzzz

Części nagłówka i ładunku JWT to po prostu obiekty JSON zakodowane w base64url . W większości przypadków dane nagłówka i ładunku mogą być łatwo odczytane lub zmodyfikowane przez każdego, kto ma dostęp do tokena. Dlatego bezpieczeństwo dowolnego mechanizmu opartego na JWT jest w dużym stopniu uzależnione od podpisu kryptograficznego .
Aby utworzyć część podpisu, musisz wziąć zakodowany nagłówek , zakodowany ładunek , sekret , algorytm określony w nagłówku i podpisać to .

- Czym są ataki JWT?

Ataki JWT polegają na wysyłaniu przez użytkownika zmodyfikowanych tokenów JWT na serwer w celu osiągnięcia złośliwego celu.

- Scenariusze dotyczące ataków JWT

Podsumowując naszą ideę, mamy jeden cel: bawić się sygnaturą. możemy bawić się sygnaturą poprzez zabawę z treścią sygnatury (ładunek — „alg” nagłówka — nagłówek — sekret — podpisz wszystkie wymienione). mamy 7 scenariuszy na tym blogu i użyję rozszerzenia JWT Editor, aby dowiedzieć się więcej na ten temat stąd

  • Pierwszy scenariusz: (graj tylko ładunkiem)
image for Pierwszy scenariusz
  • drugi scenariusz: (graj z ładunkiem i „alg” )

{
    "alg": "none",
    "typ": "JWT"
}

Przetestuj tajne klucze brutalnego wymuszania za pomocą hashcat, a następnie użyj danych wyjściowych i zakoduj je, a następnie kliknij Nowy klucz symetryczny i Zamień wygenerowaną wartość kwłaściwości na tajny kod zakodowany w Base64.

hashcat -a 0 -m 16500 <jwt> <wordlist>

Przetestuj wstrzykiwanie samopodpisanych tokenów JWT za pomocą jwkparametru, klikając Nowy klucz RSA i generuj, jwka następnie zaatakuj za pomocą osadzonego JWK

  • Piąty scenariusz: (graj z nagłówkiem przez zewnętrzny serwer)

{
    "keys": [

    ]
}

  • Szósty scenariusz:
  • Siódmy scenariusz:

Zasoby