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

3.
HTTP PARAMETER POLLUTION
Anulowanie subskrypcji powiadomień na Twitterze

Оглавление

Poziom trudności: Niski

URL: https://www.twitter.com/

Ź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.

Na tropie błędów. Przewodnik hakerski

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