Dzisiaj wracamy do najpopularniejszych ataków na aplikacje webowe. Tym razem zabieramy się za przechwytywanie danych – rodzaj ataku bardziej znany jako ang. Session Hijacking, który pozwala atakującemu przejąć oraz korzystać z sesji, która została nawiązana przez danego użytkownika w sposób autoryzowany.
Po przechwyceniu sesji ofiary, wszystkie akcje są wykonywane przez atakującego „na koszt ofiary”.
Na czym polega atak typu Session Hijacking?
Atak polega na zdobyciu aktywnej sesji ofiary wykradając w ten sposób jej tożsamość.
Przechwytywanie sesji może odbywać się na wiele sposobów. Najpopularniejszym i najbardziej znanym sposobem jest ten z wykorzystaniem dodatkowej podatności w aplikacji webowej – Cross Site Scripting, która została opisana w jednym z poprzednich artykułów.
Natomiast przechwycenie sesji z wykorzystaniem podatności XSS jest tylko jednym z przykładów, drugą metodą może być np. wcześniejsze zainfekowanie komputera ofiary bądź podsłuchanie komunikacji sieciowej ofiary z daną aplikacją.
Scenariusz ataku Session Hijacking może wyglądać następująco:
- Atakujący osadza w danej aplikacji webowej złośliwy kod javascriptowy, wykorzystując podatność typu XSS,
2. Ofiara loguje się w sposób prawidłowy do aplikacji webowej, w której atakujący osadził złośliwy kod,
3. Po zalogowaniu się z sukcesem, złośliwy kod javascriptowy uruchamia się,
4. Po uruchomieniu się tego kodu, ciasteczka sesyjne ofiary zostają odesłane do atakującego,
5. Atakujący loguje się do aplikacji webowej i używa wykradzionych ciasteczek sesyjnych jako swoich, uzyskując tym samym sesję ofiary.
Przykładowy atak
Adres IP atakowanej aplikacji: 10.0.2.21
Adres IP atakującego: 10.0.2.15 (Kali Linux)
Adres IP ofiary, której sesja zostanie przechwycona przez atakującego: 10..0.2.25 (Windows)
Ofiara zalogowana jest do aplikacji jako użytkownik admin co obrazuje poniższy zrzut ekranu:
Natomiast atakujący zalogowany jest jako użytkownik pablo.
Atakujący znajduje podatność typu Stored Cross Site Scripting i w aplikacji osadza złośliwy kod, który ma za zadanie wykraść ciasteczka sesyjne ofiary. Następnie użyje ich jako swoich i w efekcie „przeskoczy” ze swojej sesji ustanowionej na użytkownika pablo na sesję ofiary ustanowionej na użytkownika admin.
Atakujący osadza złośliwy kod XSS:
Następnie ofiara wchodzi na zasób z wstrzykniętym powyższym złośliwym kodem Javascriptowym, który będzie wykradał różnego typu dane o przeglądarce i sesji ofiary.
W efekcie czego, atakujący uzyskuje dane o sesji ofiary.
I w konsekwencji…
Czyli atakujący widzi jakie ciasteczka sesyjne posiada ofiara. To daje atakującemu możliwość podmiany swojego parametru PHPSESSIONID przez wykradzioną wartość parametru PHPSESSIONID z ciasteczka sesyjnego ofiary.
Na powyższym i poniższym zrzucie ekranu widać operację wspomnianego podłożenia wartości parametru PHPSESSIONID.
Efekt podmiany parametru PHPSESSIONID powoduje że atakujący (który wcześniej miał uprawnienia użytkownika pablo) przechwycił sesję ofiary, uzyskując tym samym sesję użytkownika admin.
Zostaw komentarz
Musisz się zalogować lub zarejestrować aby dodać nowy komentarz.