Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Jak można było zdalnie otwierać oraz uruchamiać Hyundaie? Wystarczyło znać e-maila właściciela…
Cała historia już załatanego problemu, znajduje się w wątku tutaj:
Jeśli właściciel zarejestrował się w odpowiednim miejscu, to mógł otworzyć samochód takim żądaniem HTTP (ale musi ono zawierać poprawny token JWT!):
Teraz uwaga: e-mail użytkownika przekazywany był zarówno w body żądania HTTP, jak i w JWT. Na czym polegał hack? Badacze zarejestrowali swoje konto z adresem e-mailowym:
prawdziwy.adres.ofiary@gmail.com
Powiecie jednak – ale zaraz, przecież takie konto już istniało! Rzeczywiście. Więc badacze zarejestrowali jednak konto z adresem mailowym: prawdziwy.adres.ofiary@gmail.com%0d
Powiecie jednak – ale to na jaki adres mailowy przyjdzie prośba o potwierdzenie faktu, że się właścicielem tego adresu? Nie przyjdzie, bo aplikacja podczas rejestracji nie wymagała potwierdzenia maili.
Przechodzimy do meritum. Po zalogowaniu się na nowe konto (atakujących), otrzymywało się token JWT. Teraz wystarczyło użyć tokenu JWT (zawierającego prawdziwy.adres.ofiary@gmail.com%0d) w żądaniu HTTP otwierającym samochód. Przy czym w „normalnym” parametrze w żądaniu należało podać prawdziwego maila ofiary (widoczny jest w pierwszej linijce na zrzucie poniżej):
W ten sposób można było otwierać samochód / bagażnik / włączać światła czy startować silnik. Badacze nawet przygotowali skrypcik, który do działania potrzebował tylko e-maila ofiary i na koniec otwierał jej samochód:
~Michał Sajdak