InPost XSS - błąd znaleziony na stronie wyszukiwania przesyłek

Szukam swojej paczki, znajduję XSS

W 2016 roku, pod koniec listopada zamawiałem z allegro prezenty na mikołajki.
Trochę się martwiłem, że nie dojdą na czas więc co kilka godzin sprawdzałem gdzie się znajdują i czy opuściły już magazyn.
Standardowo wszedłem na stronę wyszukiwania paczek InPosta, wpisałem numer paczki i sprawdziłem w jakim miejscu się znajduje.
Zamiast zainteresować się lokalizacją mojej paczki, moją uwagę przykuł adres url który wyglądał dość dziwnie (numer paczki zamieniłem na zera):

https://inpost.pl/pl/pomoc/znajdz-przesylke?package[0000000]

Adres zawierał tablicę jako parametr. Miało to sens w przypadku gdy podaliśmy kilka zamówień w wyszukiwarce. Wtedy adres wyglądał tak

https://inpost.pl/pl/pomoc/znajdz-przesylke?package[0000000,0000001]

Tylko tak się po prostu nie robi :)

Sprawdziłem w źródle strony gdzie dokładnie ląduje ten parametr. Okazało się, że ląduje jako parametr tablicy w jakimś budowanym zapytaniu w JavaScripcie. Niestety, minęło tyle czasu że nie jestem Wam go w stanie pokazać.
Postanowiłem podmienić adres na coś ciekawszego. Wrzuciłem stary dobry skrypt, który testuje proste wywołanie XSS'a

https://inpost.pl/pl/pomoc/znajdz-przesylke?package[<script>alert('xss')</script>]

który od razu zadziałał - czyli w Chromie wyświetlił białą stronę ponieważ Chrome zablokował skrypt :) Niestety w przypadku Firefoxa (najnowsza wersja na tamten czas) już tak miło nie było, bo jak widać na załączonym poniżej filmiku - skrypt się wykonał!


Problem polegał na tym, że dane z parametru url nie były escapowane, znaki nie były zamienione na encje HTMLowe i skrypt był możliwy do wykonania.

Co to oznacza dla zwykłego Kowalskiego?

Wielu z nas korzysta z InPosta do nadawania/odbierania paczek, więc podesłanie komuś linka do zaufanej strony nie wzbudziłoby podejrzeń. Szczególnie do tak popularnej jak wyszukiwarka paczek.
Problem w tym, że gdyby Kowalski otworzył link, mógłbym wykonać dowolny kod w jego przeglądarce bez jego wiedzy. Ot co :)

Zgłoszenie

28 listopada zgłosiłem InPostowi informację o odnalezieniu luki. Odpowiedź na moją wiadomość otrzymałem dopiero 8 grudnia i przekazałem dokładne informacje nt. wywołania XSS.
Błąd został naprawiony po kilku dniach, a z tego co zauważyłem to po prostu zablokowali możliwość wprowadzenia parametru zawierającego znaki "></

W nagrodę za przekazanie informacji o błędzie otrzymałem 9 kodów na nadanie paczek o różnych gabarytach o wartości 100zł.

H2
H3
H4
3 columns
2 columns
1 column
Join the conversation now
Logo
Center