Poniedziałek z trenerem – dwa błędy prowadzące do wykradania kontaktów Yahoo

dodał 15 stycznia 2018 o 23:07 w kategorii HowTo, Info  z tagami:
Poniedziałek z trenerem – dwa błędy prowadzące do wykradania kontaktów Yahoo

Dzięki rozwojowi technik zabezpieczeń coraz częściej jeden błąd w aplikacji nie wystarcza, by uzyskać nieuprawniony dostęp i błędy trzeba łączyć, by osiągnąć upragniony cel. Nie inaczej jest w tej historii.

W dzisiejszym odcinku historia dwóch błędów, które wspólnie umożliwiały uzyskanie pełnej listy kontaktów użytkownika poczty Yahoo. Wykorzystując niebezpieczną konfigurację Cross Origin Resource Sharing oraz błąd XSS możliwe było odczytanie nazw, numerów telefonów, adresów i innych szczegółów wpisów w książce kontaktowej aktualnie zalogowanego użytkownika.

W poprzednich odcinkach

We wcześniejszych wpisach cyklu Poniedziałek z trenerem:

Błąd w ustawieniach polityki CORS

Zaczęło się od przeglądania ruchu HTTP, który powstał podczas korzystania z usług Yahoo. Podczas przeglądania zakładki Target w Burp Suite badaczowi wpadł w oko adres:

głównie z powodu obiecującej nazwy domeny. Końcówka umożliwia dostęp do wszystkich danych kontaktów przy pomocy prostego żądania GET. Następnie okazało się, że ustawienia CORS dla wybranego adresu są mało restrykcyjne. W przypadku podania jako źródła dowolnej subdomeny yahoo.com, takie żądanie jest dozwolone. Można to było przetestować chociażby w ten sposób:

co skutkowało pojawieniem się w odpowiedzi następujących nagłówków:

Obecność Access-Control-Allow-Credentials powoduje, że Cookie będą również uwzględniane, a więc zalogowany użytkownik będzie automatycznie uwierzytelniany. Innymi słowy, kod uruchomiony pod dowolną subdomeną yahoo.com ma dostęp do listy kontaktów. Pozostało znaleźć sposób, by go wstrzyknąć – XSS gdzieś w adresie *.yahoo.com.

XSS poprzez wklejanie ze schowka

Po kilku dniach poszukiwań bez konkretnego efektu Corben odkrył, że @opnsec pochwalił się na Twitterze XSS-em. W tym czasie nie został on poprawiony przez Yahoo, prawdopodobnie z powodu tego, że do ataku potrzebna była nietypowa interakcja: skopiowanie dowolnego fragmentu ze złośliwej strony i wklejenie na stronie poczty. Po szybkim dostosowaniu payloadu do potrzeb prezentacji badacz zaraportował połączone błędy. Tym razem podatność została naprawiona, odkrywca otrzymał również stosowną nagrodę pieniężną. Co sprawiło, że Yahoo jednak zdecydowało się uznać podatność? Może to dzięki sugestywnej prezentacji udało się przekonać firmę o realnym zagrożeniu?

Oryginalny kod Proof of Concept:

Filmik odkrywcy prezentujący wykorzystanie podatności:

Źródło: http://www.sxcurity.pro/2018/01/11/chaining-yahoo-bugs/

Szkolenie z bezpieczeństwa aplikacji WWW

Korzystając z okazji serdecznie zapraszamy na kolejne z naszych szkoleń, już w lutym!

Bezpieczeństwo aplikacji WWW - atak i obrona

Warsaw-center-free-license-CC0
Warszawa, 19 – 21 lutego 2018

Czas trwania: 3 dni (20h), Prowadzący: Adam z z3s, Przemysław Sierociński
Liczba uczestników: maksymalnie 12 osób, cena: 3900 PLN netto

Szczegółowy opis szkolenia