Читать книгу Na tropie błędów. Przewodnik hakerski - Peter Yaworski - Страница 15

2.
OTWARTE PRZEKIEROWANIE
Otwarte przekierowanie przy logowaniu do Shopify

Оглавление

Poziom trudności: Niski

URL: https://mystore.myshopify.com/account/login/

Źródło: https://www.hackerone.com/reports/103772/

Data zgłoszenia: 6 grudnia 2015

Nagroda: 500 $

Drugi przykład otwartego przekierowania jest podobny do pierwszego, z wyjątkiem tego, że zamiast parametru URL docelową domenę określa wartość parametru na końcu subdomeny Shopify. Normalnie ta funkcjonalność byłaby używana do odsyłania użytkownika na określoną stronę w obrębie jednego sklepu. Jednakże atakujący wciąż mogą manipulować tymi adresami, aby przekierować przeglądarkę z dala od subdomeny Shopify, na witrynę atakującego przez dodanie znaków, które zmienią znaczenie URL.

W przypadku tego błędu, po zalogowaniu do Shopify, serwis używał parametru checkout_url do przekierowania użytkownika. Dla zobrazowania powiedzmy, że ofiara odwiedza następujący adres:

http://mystore.myshopify.com/account/login?checkout_url=.attacker.com

Zostałaby przekierowana na URL http://mystore.myshopify.com.<attacker>.com/, który nie jest domeną Shopify.

Ponieważ URL kończy się .<attacker>.com, a wyszukiwarki DNS używają nazwy domeny wysuniętej najdalej na prawo w adresie, przekierowanie zostaje wykonane na domenę <attacker>.com. Zatem gdy http://mystore.myshopify.com.<attacker>.com/ zostaje wysłany do wyszukiwarki DNS, zostanie dopasowany do <attacker>.com, którego Shopify nie ma, a nie myshopify.com, tak jak Shopify miał w zamiarze. Mimo że atakujący nie byłby w stanie wysłać ofiary na dowolną stronę, mógłby go wysłać na inną domenę przez dodanie specjalnych znaków, takich jak kropka, do wartości, którymi może manipulować.

Wnioski

Jeśli tylko możesz kontrolować końcowy fragment adresu URL używanego przez stronę, dodanie specjalnych znaków URL może zmienić znaczenie danego adresu i przekierować użytkownika na inną domenę. Powiedzmy, że możesz kontrolować jedynie wartość parametru checkout_url oraz zauważysz, że parametr jest dodawany do gotowego adresu URL, takiego jak  http://mystore.myshopify.com/. Spróbuj dodawać specjalne znaki URL, takie  jak kropka lub @, w celu przetestowania możliwości kontroli lokalizacji przekierowania.

Na tropie błędów. Przewodnik hakerski

Подняться наверх