Название: Na tropie błędów. Przewodnik hakerski
Автор: Peter Yaworski
Издательство: OSDW Azymut
Жанр: Компьютеры: прочее
isbn: 978-83-01-21051-9
isbn:
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.
Anulowanie subskrypcji powiadomień na Twitterze
Poziom trudności: Niski
Źródło: https://blog.mert.ninja/twitter-hpp-vulnerability/
Data zgłoszenia: 23 sierpnia 2015
Nagroda: 700 $
W niektórych przypadkach szukanie podatności HPP z powodzeniem wymaga niemałej wytrwałości. W sierpniu 2015 roku haker Mert Tasci, podczas anulowania subskrypcji powiadomień z Twittera, zauważył interesujący URL (który na potrzeby książki został skrócony):
https://twitter.com/i/u?iid=F6542&uid=1134885524&nid=22+26& sig=647192e86e28fb6691db2502c5ef6cf3xxx
Zwróć uwagę na parametr UID. Okazuje się, że jest on numerem ID użytkownika, który jest obecnie zalogowany. Po dostrzeżeniu UID Tasci zrobił to, co na jego miejscu zrobiłaby większość hakerów – spróbował zmienić obecny UID na inny, należący do innego użytkownika, jednak nic się nie stało. Twitter zwrócił błąd.
Podczas gdy inni w tym miejscu poddaliby się, zdeterminowany Tasci kontynuował; spróbował on dodać drugi parametr UID w taki sposób, że adres URL wyglądał następująco (ponownie, skrócona wersja):
https://twitter.com/i/u?iid=F6542&uid=2321301342&uid=1134885524&nid= 22+26&sig=647192e86e28fb6691db2502c5ef6cf3xxx
Sukces! Udało mu się anulować subskrypcję powiadomień e-mail u innego użytkownika. Twitter był podatny na HPP anulowania subskrypcji użytkowników. Powód, dla którego warto zapamiętać tą podatność, wyjaśnił mi FileDescriptor. Chodzi o parametr SIG. Jak się okazuje, Twitter generuje wartość SIG na podstawie wartości UID. Kiedy użytkownik klika w link do anulowania subskrypcji, Twitter weryfikuje, czy link nie został zmodyfikowany, sprawdzając wartości SIG i UID. W przypadku pierwszej próby Tasciego zmiana UID w celu anulowania subskrypcji u innego użytkownika zawiodła, ponieważ podpis nie pasował do tego, którego Twitter oczekiwał. Jednakże, dodając drugi UID, Tasciemu udało się oszukać Twittera, który sprawdzał podpis, używając pierwszego parametru UID, a wykonywał właściwą akcję przy użyciu tego drugiego.
Wnioski
Wysiłek Tasciego pokazuje, jak ważna jest wytrwałość i wiedza. Jeżeli odpuściłby po początkowej próbie zmiany UID na inną wartość lub nie wiedziałby o podatnościach typu HPP, nie otrzymałby nagrody 700 $.
Ty również miej na oku parametry z liczbami, które są automatycznie zwiększane, takimi jak UID, które znajdują się w żądaniach HTTP: wiele podatności wymaga manipulowania wartościami parametrów takimi jak te, aby spowodować w aplikacji nieoczekiwane zachowania. Przedyskutujemy ten temat dokładnie w rozdziale 16.
Web Intents Twittera
Poziom trudności: Niski
Źródło: https://ericrafaloff.com/parameter-tampering-attack-on-twitter-webintents/
Data zgłoszenia: Listopad 2015
Nagroda: Nieujawniona
W niektórych przypadkach podatność HPP może sygnalizować inne problemy i doprowadzić do znalezienia dodatkowych błędów. Tak właśnie się stało z funkcją Twittera – Web Intents. Dostarcza ona okna pop-up do interakcji z tweetami użytkownika, odpowiedziami, retweetami, polubieniami i pozwala robić to z poziomu innych stron niż Twitter. Web Intent uwalnia użytkowników od potrzeby uwierzytelniania nowej aplikacji w celach interakcji na Twitterze. Rysunek 3.1 pokazuje, jak jedno z tych okien wygląda.
Rysunek 3.1. Wczesna wersja funkcjonalności Web Intents, która pozwala użytkownikom na interakcję z zawartością Twittera bez opuszczania strony. W tym przykładzie użytkownicy mogą polubić tweeta Jacka
Testując tą funkcję, haker Eric Rafaloff odkrył, że wszystkie cztery rodzaje interakcji – obserwowanie użytkownika, polubienie tweeta, retweetowanie i tweetowanie – były podatne na HPP. Twitter przygotowywał okna za pomocą żądania GET z parametrami URL, takimi jak w przykładzie:
https://twitter.com/intent/intentType?parameter_name=parameterValue
Ten adres zawierał intentType i jedną lub więcej dodatkowych par parametrów i ich wartości – na przykład nazwę użytkownika i ID Tweeta. Twitter używał tych parametrów do utworzenia okna pop-up z możliwością polubienia tweeta bądź obserwowania użytkownika. Rafaloff odkrył problem, kiedy utworzył URL z dwoma parametrami screen_name zamiast domyślnie jednego, tak jak tutaj:
https://twitter.com/intent/follow?screen_name=twitter&screen_name=ericrtest3
Podczas generowania przycisku Follow, Twitter wykonałby żądanie, korzystając z drugiej wartości parametru screen_name – ericrtest3 – zamiast pierwszej. Co za tym idzie, użytkownik próbujący zaobserwować oficjalny profil Twittera tak naprawdę obserwował testowe konto Rafaloffa. Odwiedzając URL, który przygotował Rafaloff, kod na serwerze Twittera generował poniższy formularz HTML, używając obu parametrów screen_name:
<form class="follow" id="follow_btn_form" action="/intent/ follow?screen_name=ericrtest3" method="post">
<input type="hidden" name="authenticity_token" value="…">
<input type="hidden" name="screen_name" value="twitter">