Читать книгу Na tropie błędów. Przewodnik hakerski - Peter Yaworski - Страница 21
3.
HTTP PARAMETER POLLUTION
Przyciski do udostępniania na HackerOne
ОглавлениеPoziom trudności: Niski
URL: https://hackerone.com/blog/introducing-signal-and-impact/
Źródło: https://hackerone.com/reports/105953/
Data zgłoszenia: 18 grudnia 2015
Nagroda: 500 $
Jedną z metod na znajdowanie podatności HPP jest szukanie linków, które łączą się z zewnętrznymi serwisami. Blog na HackerOne robi to, dodając linki do udostępniania zawartości w popularnych serwisach społecznościowych, takich jak Twitter lub Facebook. Po kliknięciu linki te generują gotową treść dla użytkownika do publikacji na swoim profilu. Opublikowana treść zawiera odnośnik URL do oryginalnego posta.
Pewien haker odkrył podatność, która pozwoliła mu na dołączenie parametru do adresu URL z postem na blogu HackerOne. Dodany parametr był umieszczany w udostępnionym linku, przez co treść mogła odsyłać w inne miejsce niż zamierzony post na blogu.
Przykład użyty w tym zgłoszeniu podatności korzystał z URL-a https://hackerone.com/blog/introducing-signal, a następnie na jego końcu wystarczyło dodać &u=https://vk.com/durov. Na stronie bloga, kiedy HackerOne renderował link do udostępnienia na Facebooku, link prezentował się następująco:
https://www.facebook.com/sharer.php?u=https://hackerone.com/blog/introducing-signal?&u=https://vk.com/durov
Jeśli użytkownicy HackerOne kliknęli zainfekowany link, chcąc udostępnić post, ostatni parametr u miał pierwszeństwo nad pierwszym. Co za tym idzie, post na Facebooku użyłby ostatniego parametru u. Wtedy użytkownicy Facebooka, którzy kliknęli w link, zostaliby odesłani na https://vk.com/durov zamiast na HackerOne.
Co więcej, w przypadku postów na Twitterze, HackerOne dołącza domyślny tekst do tweeta, który promuje post. Atakujący mógł również manipulować tym tekstem, dołączając do adresu &text=, tak jak tutaj:
https://hackerone.com/blog/introducing-signal?&u=https://vk.com/ durov&text=another_site:https://vk.com/durov
Kiedy użytkownik kliknął w poprzedzający link, wyświetliło się przed nim okno pop-up z tweetem zawierającym tekst “another_site: https://vk.com/durov”, zamiast tekstu promującego blog HackerOne.
Wnioski
Wypatruj podatności w sytuacjach, gdy strona akceptuje zawartość, łączy się z innym serwisem (takim jak media społecznościowe) i bazuje na obecnym adresie URL w celu wygenerowania zawartości do publikacji.
W takich przypadkach możliwe jest, że przesyłana zawartość nie podlega żadnym kontrolom bezpieczeństwa, co może prowadzić do podatności HPP.