Testowanie zepsutego uwierzytelniania
Gdy funkcje uwierzytelniania związane z aplikacją nie są zaimplementowane poprawnie, hakerzy mogą złamać hasła lub identyfikatory sesji lub wykorzystać inne wady implementacji przy użyciu poświadczeń innych użytkowników.
Pozwól nam zrozumieć agentów zagrożeń, wektory ataku, słabość zabezpieczeń, wpływ techniczny i skutki biznesowe tej usterki za pomocą prostego diagramu.
Przykład
An e-commerce application supports URL rewriting, putting session IDs in the URL −
http://example.com/sale/saleitems/jsessionid=2P0OC2JSNDLPSKHCJUN2JV/?item=laptop
Uwierzytelniony użytkownik witryny przekazuje adres URL swoim znajomym w celu uzyskania informacji o obniżonej sprzedaży. Wysyła e-mailem powyższy link, nie wiedząc, że użytkownik podaje również identyfikatory sesji. Kiedy jego przyjaciele korzystają z linku, używają jego sesji i karty kredytowej.
Praktyczny
Step 1- Zaloguj się do Webgoat i przejdź do sekcji „Błędy zarządzania sesjami”. Pomińmy uwierzytelnianie poprzez fałszowanie pliku cookie. Poniżej znajduje się migawka scenariusza.
Step 2 - Kiedy logujemy się przy użyciu danych logowania webgoat / webgoat, z Burp Suite dowiadujemy się, że identyfikator JSESSION to C8F3177CCAFF380441ABF71090748F2E, podczas gdy AuthCookie = 65432ubphcfx po pomyślnym uwierzytelnieniu.
Step 3 - Kiedy logujemy się przy użyciu aspektu / aspektu poświadczeń, z Burp Suite dowiadujemy się, że identyfikator JSESSION to C8F3177CCAFF380441ABF71090748F2E, podczas gdy AuthCookie = 65432udfqtb po pomyślnym uwierzytelnieniu.
Step 4- Teraz musimy przeanalizować wzorce AuthCookie. Pierwsza połowa „65432” jest wspólna dla obu uwierzytelnień. Dlatego teraz jesteśmy zainteresowani analizą ostatniej części wartości authcookie, takich jak - ubphcfx dla użytkownika webgoat i udfqtb dla użytkownika aspektu.
Step 5- Jeśli przyjrzymy się wartościom AuthCookie, ostatnia część ma taką samą długość jak nazwa użytkownika. Stąd oczywiste jest, że nazwa użytkownika jest używana z jakąś metodą szyfrowania. Po próbach i błędach / mechanizmach brutalnej siły okazuje się, że po odwróceniu nazwy użytkownika, webgoat; kończymy na taogbew, a poprzedzający znak alfabetu jest tym, co jest używane jako AuthCookie. tj. ubphcfx.
Step 6- Jeśli przekażemy tę wartość pliku cookie i zobaczmy, co się stanie. Po uwierzytelnieniu jako użytkownik webgoat zmień wartość AuthCookie, aby kpić z użytkownika Alice, znajdując AuthCookie dla tego samego, wykonując kroki 4 i 5.
Mechanizmy zapobiegające
Opracuj silne mechanizmy uwierzytelniania i zarządzania sesjami, tak aby spełniały wszystkie wymagania dotyczące uwierzytelniania i zarządzania sesjami zdefiniowane w OWASP's Application Security Verification Standard.
Programiści powinni upewnić się, że unikają błędów XSS, które można wykorzystać do kradzieży identyfikatorów sesji.