Publiczny dostęp do około miliona zamówień użytkowników serwisu Manning.com

in #polish5 years ago

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.”)

mainpage.png

(strona główna serwisu manning.com)

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.

html.png

(narzędzia developerskie dostępne w Google Chrome)

Zmieniłem numer zamówienia na mniejszy, kliknąłem przycisk “view/print receipt” i moim oczom ukazała się faktura obcej osoby.

victim1.png

(zamówienie jednego z użytkowników)

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.

victim2.png

(zamówienie innego użytkownika)

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.

Sort:  

Congratulations @kamilzielinski! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You distributed more than 10 upvotes. Your next target is to reach 50 upvotes.

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!

Congratulations @kamilzielinski! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

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!

Coin Marketplace

STEEM 0.25
TRX 0.11
JST 0.032
BTC 61830.08
ETH 2986.99
USDT 1.00
SBD 3.73