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

4.
CROSS-SITE REQUEST FORGERY
Zmiana stref użytkowników Instacart

Оглавление

Poziom trudności: Niski

URL: https://admin.instacart.com/api/v2/zones/

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

Data zgłoszenia: 9 sierpnia 2015

Nagroda: 100 $

Kiedy szukasz możliwych miejsc do testów, zwracaj uwagę zarówno na punkty końcowe API, jak i ich strony internetowe. Instacart to aplikacja do dostarczania produktów spożywczych, która pozwala dostawcom na ustawianie stref, w których będą pracować. Strona aktualizowała te strefy przez żądanie POST do administracyjnej subdomeny Instacart. Pewien haker odkrył, że punkt końcowy strefy na tej subdomenie był podatny na CSRF. Na przykład można było modyfikować strefę ofiary, używając  poniższego kodu:

<html>

<body>

<form action="https://admin.instacart.com/api/v2/zones" method="POST">

<input type="hidden" name="zip" value="10001" />

<input type="hidden" name="override" value="true" />

<input type="submit" value="Submit request" />

</form>

</body>

</html>

W tym przykładzie haker utworzył formularz HTML w celu wysłania żądania POST do punktu końcowego /api/v2/zones . Haker dołączył dwa ukryte wejścia: jedno do zmiany kodu pocztowego nowej strefy na 10001 oraz drugie w celu ustawienia parametru override na true , dzięki czemu wartość zip użytkownika została podmieniona na tę podaną przez hakera. Dodatkowo haker dołączył przycisk submit w celu utworzenia żądania POST ,  w odróżnieniu od przykładu z Shopify, który korzystał z funkcji automatycznego przesyłania w JavaScript.

Choć ten przykład jest już pomyślny, haker mógł poprawić skuteczność exploita, używając technik opisanych wcześniej, takich jak użycie ukrytej ramki iFrame w celu automatycznego wysłania żądania w imieniu ofiary. Pozwoliłoby to zademonstrować, jak wyglądałoby wykorzystanie tej podatności w akcji; podatności, które są całkowicie poddane kontroli hakera, mają znacznie większe szanse na powodzenie niż te, które nie są.

Wnioski

Kiedy szukasz podatności, oprócz samych stron internetowych bierz również pod uwagę punkty końcowe API, które stanowią świetne źródło potencjalnych podatności. Okazjonalnie deweloperzy zapominają, że hakerzy są w stanie znaleźć i wykorzystać je, ponieważ nie są tak łatwo dostępne jak zwykłe strony internetowe. Na przykład aplikacje mobilne często wykonują żądania HTTP do punktów końcowych API, które możesz monitorować przy użyciu Burp lub Zap, tak samo jak w przypadku stron  internetowych.

Na tropie błędów. Przewodnik hakerski

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