Kolejny piątek - kolejne przygody
Piątek wieczór (24.05.2019) - idealny czas na relaks i ciekawe rozpoczęcie weekendu. Usiadłem do komputera, wszedłem na YouTube i obejrzałem video z konferencji, które właśnie zostało udostępnione. Na koniec nagrania prelegent wspomniał o swojej odświeżonej edycji książki i kodzie rabatowym - rozpaliła się we mnie wewnętrzna cebula. Postanowiłem, że przewertuję ją sobie przez weekend bo szczerze mówiąc i tak nie miałem ciekawszych planów. Książkę można było zakupić na popularnej stronie wydawcy “manning.com”, który publikuje książki związane z IT (znane np. “[dowolna_technologia] in Action.”)
Zakup przebiegał normalnie do momentu, kiedy mogłem pobrać fakturę zawierającą detale dotyczące moich zakupów. Mając już doświadczenie z poprzednimi serwisami, w których faktury użytkowników wraz z ich danymi osobowymi leżały na wyciągnięcie ręki (Jak Kamil dane pół miliona zamówień klientów sklepów internetowych znalazł, Dane osobowe i podróże tysięcy klientów LeoExpress były dostępne w sieci), przy tym także byłem trochę bardziej wyczulony na jakieś dziwne rzeczy dziejące się na stronie. Tym razem moją uwagę zwrócił przycisk pozwalający przejść do widoku faktury. Zazwyczaj w takich przypadkach przycisk jest zwykłym linkiem i po najechaniu na niego na dole okna przeglądarki powinienem zobaczyć adres do którego prowadzi, ale z jakiegoś powodu przycisk zachowywał się inaczej. Chcąc znaleźć powód otworzyłem narzędzia developerskie w przeglądarce i zauważyłem, że tym przypadku był to przycisk, który wysyła formularz zawierający ID naszego zamówienia. Tak, ID. Inkrementowane. ZNOWU.
Zmieniłem numer zamówienia na mniejszy, kliknąłem przycisk “view/print receipt” i moim oczom ukazała się faktura obcej osoby.
Kontynuowałem odejmowanie losowych liczb i otrzymywałem kolejne faktury (powtórzyłem to kilka razy żeby sprawdzić, ile faktur jest dostępnych). Podobnie jak w przypadku wymienionych wcześniej sytuacji z publicznym dostępem do prywatnych danych, na stronie brakowało jakiegokolwiek sposobu autoryzacji dostępu do faktur, takiego jak logowanie czy unikalny klucz.
Dane, które były dostępne w fakturach to:
1. imię
2. nazwisko
3. pełny adres (jeśli książka była zamówiona z dowozem lub płatność odbyła się poprzez PayPal, ponieważ serwis przepisuje adres z PayPala do zamówienia, nawet jeśli kupiliśmy wersję online)
4. email (ten z zamówienia oraz/lub z PayPala)
5. numer telefonu (w przypadku opcji z dowozem)
6. lista zakupów i ich koszt
7. kod rabatowy
8. 4 ostatnie cyfry karty płatniczej
Serwis udostępniał około miliona faktur. Jeśli w przeciągu ostatnich dwóch lat zakupiłeś książkę w ich serwisie, możesz założyć że twoje dane wyciekły do sieci (Wnioskuję z daty najstarszego dostępnego zamówienia. Starsze zamówienia nie były dostępne.)
Podjęte kroki
Zaraz po odkryciu i zweryfikowaniu problemu dokładnie poinformowałem Manning o znalezionej luce oraz zadałem kilka pytań:
1. Kiedy mogę spodziewać się naprawienia tej luki w ich aplikacji?
2. Czy powiadomicie swoich użytkowników, których dane mogły potencjalnie wyciec?
3. Od jak dawna luka istniała?
Odpowiedź otrzymałem we wtorek (28.05.2019 - 4 dni później. Pochwała za reakcję wliczając w to weekend i święto w USA) od CTO Manning.com. Zawierała ona informację o naprawieniu błędu, o tym że nie mogą mi udzielić odpowiedzi na w/w pytania, ponieważ nie jestem do tego upoważniony oraz że w sumie to zhackowałem ich stronę bez ich wiedzy i natychmiast mam zaprzestać szukania kolejnych dziur w systemie.
Zweryfikowałem naprawienie błędu próbując dostać się do swojej faktury i rzeczywiście - błąd został naprawiony i od teraz wejście na stronę z zamówieniem wymaga zalogowania się. Zastosowałem się do prośby, więc nie sprawdzałem czy da się to obejść w inny sposób.
Congratulations @kamilzielinski! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :
You can view your badges on your Steem Board and compare to others on the Steem Ranking
If you no longer want to receive notifications, reply to this comment with the word
STOP
Vote for @Steemitboard as a witness to get one more award and increased upvotes!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations @kamilzielinski! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Vote for @Steemitboard as a witness to get one more award and increased upvotes!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit