Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Outlook Web Access: kuriozalny problem z JWT. Można było czytać maile innych osób – stare ale jare.
Ostatnio nieco atencji doznały te podatności (są one już dość wiekowe – 2019r. / załatane, ale mają sporą wartość edukacyjną – stąd ten wpis).
Jak można było uzyskać dostęp do e-maili innych osób via OWA?
W pewnym miejscu ten ostatni generował token JWT, który (uwaga, uwaga) nie był podpisany (więcej o bezpieczeństwie JWT – tutaj). Jakość zrzutu poniżej jest taka sobie, ale może widzicie w czwartym wierszu od dołu, kropkę znajdującą się po prawej stronie? :) Normalnie po kropce powinien następować podpis JWT.
Token ten zapewniał dostęp do m.in. e-maili osoby o zadanym OID. Ale OID był względnie „losowy” (z kolei swój OID mogłem uzyskać bez problemu). Co w takim razie? Badacz zlokalizował pewną funkcję API, gdzie można było uzyskać OIDy pewnych innych użytkowników:
Jak to mawiają: mission completed.
Wnioski dla nas? Nigdy nie używajmy tzw. niepodpisanych JWT (unsigned czy unsecured JWT) – tutaj były one wygenerowane przez sam serwer (!), czasem jednak istnieje metoda na wymuszenie akceptowania niepodpisanych JWT (patrz tutaj czy tutaj).
–ms