Skip to content

Conversation

@MtNeumann
Copy link

  1. W ramach realizacji pierwszej części task3, wykonano testy jednostkowe dla aplikacji w Pythonie, znajdujące się w pliku Python/Flask_Book_Library/project/tests/test_book.py.

Testy obejmowały testy niepoprawnych danych, sql injection, xss/js injection oraz prostsze testy takie jak testy długich nazw czy ujemnych dat (ujemny rok publikacji). Stworzono testy dla obiektu project/book/models.py.

Dodatkowo zmodyfikowano plik dockerfile w taki sposób aby testy uruchamiane były zanim aplikacja zostanie zbudowana. Ponieważ aplikacja nie przeszłą zaprojektowanych testów, operacja docker build nie zakończyła się sukcesem - co stanowi oczekiwany wynik tej operacji.

  1. Celem drugiej części zadania było znalezienie, wykorzystanie oraz poprawna podatności w module uwierzytelnienia aplikacji, realizowanego na podstawie wystawianych przez aplikacje tokenów JWT.

Po uruchomieniu aplikacji wykonano atak zgodnie z instrukcją za pomocą zmodyfikowanego tokenu użytkownika "bob". Header oraz Payload tokenu "bob'a" zostały zmodyfikowane w taki sposób, aby uzyskać odpowiedź dla użytkownika "Administrator" o roli "Admin".

Podatność wynikała z akceptowania przez aplikację algorytmu "none" jako legalnego sposobu weryfikacji JWT. Zaproponowano odpowiednie poprawki w pliku app.js oraz ponownie zbudowano aplikację oraz zweryfikowano czy podatność wciąż istnieje.

W wyniku wprowadzonych zmian udało się usunąć podatność, co potwierdziły testy dla tego samego tokena, który wcześniej skutkował zalogowaniem się jako administrator.

@MtNeumann MtNeumann closed this Dec 7, 2025
@MtNeumann MtNeumann reopened this Dec 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant