threats.pl > Bezpieczeństwo aplikacji internetowych > Lekcja 17: Wyzwanie II > Lekcja 17: Wyjaśnienie, część druga

Lekcja 17: Wyjaśnienie, część druga

Podstawowe elementy zadania

Głównym zadaniem w tym przypadku było:

Kluczem do rozwiązania tego zadania jest rozkodowanie i odpowiednia modyfikacja danych przechowywanych w sesji. Po uwierzytelnieniu użytkownika dane przechowywane w sesji zawierają:

Sposób odkodowania danych sesji przedstawiony jest w pierwszej części wyjaśnienia tego zadania.

Podglądnięcie danych użytkownika

Podglądnięcie danych innego użytkownika jest możliwe poprzez modyfikację identyfikatora użytkownika w sesji. Wartość ta jest wykorzystywana następnie przy pobieraniu informacji o użytkowniku, które są wyświetlane w akcji user.

Eskalacja uprawnień

Eskalacja uprawnień jest możliwa poprzez modyfikację informacji o uprawnieniach przechowywanej w danych sesji. Użytkownik standardowy ma ograniczone uprawnienia, nie może przeglądać danych i nie ma dostępu do funkcji administracyjnych. Modyfikacja parametru określającego uprawnienia użytkownika pozwala na dostęp do funkcji, do których normalnie nie ma dostępu.

Elementy dodatkowe - wskazówki

Dodatkowymi elementami wyzwania było:

W przypadku XSS należy sprawdzić jakie dane pochodzące od użytkownika (w tym zakodowane w danych sesji) są/mogą być wypisywane przez aplikację. Czy wszystkie dane są prawidłowo kodowane na wyjściu?

W przypadku braku kontroli dostępu do funkcji należy sprawdzić jak wygląda wywołanie poszczególnych akcji (akcja jest określana przez wartość parametru action). Następnie należy zweryfikować co stanie się w przypadku, gdy użytkownik wyśle wartość parametru action określającą akcję (funkcję), do której normalnie nie ma dostępu.

Dane uwierzytelniające użytkowników należących do każdej z wykorzystywanych w aplikacji grup/ról:

guest   CicKiCinMirkakew
user    JugopAwIcvubUtyo
admin   Jiesiphoghhocvoc