Wpis z mikrobloga

Jako, że tag #programowanie #security #niebezpiecznik świeci pustkami to opowiem Wam historię jak znalazłem dość ciekawy błąd u jednego z operatorów płatności Tpay, a przy współpracy z @niebezpiecznik-pl udało się go naprawić.

Implementując rozwiązanie wykorzystujące płatności dla jednego z klientów natrafiłem na niezabezpieczoną stronę z przypomnieniem o płatności https://secure.tpay.com/index.php?title=TR-AAA-000000X link do przypomnienia był wysyłany mailowo, a przejście na podstronę płatności odbywało się bez żadnej dodatkowej weryfikacji (token, cookie) - dość prosty błąd, a ile możliwości!

Problematyczny jednak był sam identyfikator bo przecież wydaje się losowy, ale losowy nie jest! Z wstępnej analizy na podstawie transakcji klienta wywnioskowałem, że Tytuł transakcji w systemie TPAY ma postać TR-AAA-000000X :
TR - stała
AAA - identyfikator klienta TPAY
000000X - unikalny identyfikator transakcji w systemie TPAY (X jest stałą), a zakres znaków to ABCDEFGHJKLMNPRSTUVWYZ0123456789

Kombinacji jest wiele, więc w jaki sposób uzyskać identyfikator? Iterować! Tak. Unikalny identyfikator transakcji są generowane w kolejności rosnącej i są globalne dla całego systemu. Wystarczy wytypować klienta posiadającego dużą liczbę transakcji i kolejno odpytywać w sposób automatyczny o identyfikatory (mając jakąś początkową wartość).

Posiadając już poprawny identyfikator mogliśmy uzyskać takie dane Tytuł, Kwota, Imię, Nazwisko, E-Mail, Adres powrotu do sklepu, Forma płatności wybrana przez płacącego i w szczególnych przypadkach Adres płacącego, Telefon komórkowy, Kod-Pocztowy, Miasto, Kraj.

Mając takie bogactwo danych możemy dowoli wykonywać phishing z dopłatą do transakcji.

Od momentu zgłoszenia problemu ~23 maja do załatania dziury ~24 czerwca minął prawie miesiąc.

Ja zyskałem kubek od @niebezpiecznik-pl , a klienci Tpay bezpieczeństwo.

Ciekawi mnie czy powiadomili UODO odnośnie możliwego wycieku danych…bo tak naprawdę objęte były tym wszystkie transakcje w systemie. I ich hasło „bezpieczne płatności” poszło się…

Wniosek jest jeden…nawet najmniejsze funkcjonalności powinny być dobrze zabezpieczone. Od małej funkcjonalności do podatności!

Pokazuje to też, że nie trzeba posiadać dużej wiedzy na temat hackowania emacsem przez sendmail, a można uzyskać bardzo ciekawe dane ( ͡° ͜ʖ ͡°)
toshibaas - Jako, że tag #programowanie #security #niebezpiecznik świeci pustkami to ...

źródło: comment_1628201657uRLVesqsSOrEhK9g769wht.jpg

Pobierz
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@villager: @toshibaas: pracowałem w bankach, dokładnie dwóch i te problemy biorą się po prostu z pośpiechu, cięcia kosztów, braków analizy biznesowej, technicznej, byłem świadkiem jak gościom po bootcampach 6 msc dawało się taski dotyczące web-security, o-auth, gdzie dany komponent miał z góry ustalona datę dowiezienia, więc Ci goście robili w pośpiechu, nerwach, często poganiani przez PMow w tzw. Sprintach, więc po prostu robi się wszystko na o-------l stąd
  • Odpowiedz