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

4.
CROSS-SITE REQUEST FORGERY
Odłączenie Twittera z Shopify

Оглавление

Poziom trudności: Niski

URL: https://twitter-commerce.shopifyapps.com/auth/twitter/disconnect/

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

Data zgłoszenia: 17 stycznia 2016

Nagroda: 500 $

Kiedy szukasz potencjalnych podatności CSRF, miej na uwadze żądania GET, które modyfikują dane po stronie serwera. Na przykład haker odkrył podatność w funkcji Shopify, która integrowała Twittera na stronie, aby dać możliwość właścicielom sklepów tweetować o ich produktach. Ta funkcja pozwalała również rozłączać konta Twittera z połączonego sklepu. URL, który rozłączał konto, wyglądał następująco:

https://twitter-commerce.shopifyapps.com/auth/twitter/disconnect/

Jak się okazuje, odwiedzenie tego linku powodowało wysłanie poniższego żądania GET:

GET /auth/twitter/disconnect HTTP/1.1

Host: twitter-commerce.shopifyapps.com

User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:43.0)

Gecko/20100101 Firefox/43.0

Accept: text/html, application/xhtml+xml, application/xml

Accept-Language: en-US,en;q=0.5

Accept-Encoding: gzip, deflate

Referer: https://twitter-commerce.shopifyapps.com/account

Cookie: _twitter-commerce_session=REDACTED

Connection: keep-alive

W dodatku, kiedy ten link został zaimplementowany, Shopify nie weryfikował w żaden sposób wiarygodności żądań GET wysłanych do niego, czyniąc tym samym URL podatnym na CSRF.

Haker WeSecureApp, który wysłał zgłoszenie, dołączył następujący dokument HTML jako dowód:

<html>

<body>

<img src="https://twitter-commerce.shopifyapps.com/auth/twitter/disconnect">

</body>

</html>

Przy otwarciu dokument HTML powodował automatyczne wysłanie żądania GET na adres https://twitter-commerce.shopifyapps.com przez atrybut src w znaczniku <img> . Jeśli ktoś z połączonym kontem Twittera z Shopify odwiedził witrynę z powyższym tagiem, jego konto na Twitterze zostałoby odłączone od usługi Shopify.

Wnioski

Miej na uwadze żądania HTTP, które wykonują pewne działania na serwerze, takie jak odłączenie konta na Twitterze przez żądanie GET. Jak już zostało wspomniane wcześniej, żądania GET nie powinny nigdy modyfikować żadnych danych na serwerze. Taką podatność mógłbyś znaleźć, korzystając z serwera proxy, takiego jak Burp lub ZAP, w celu monitorowania żądań HTTP wysyłanych do Shopify.

Na tropie błędów. Przewodnik hakerski

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