Уязвимость на сайте epay.railways.kz (Authorization)
Проблема с авторизацией на сайте позволяет скачать все купленные билеты пользователей. Вендор знает про эту уязвимость.
Недостаточная авторизация (Insufficient Authorization) - отсутствие проверки прав (привилегий) при попытке выполнения определённых действий.
После регистрации на сайте (www.epay.railways.kz) и покупки билета, у пользователя есть возможность распечатать свой билет. В купленных билетах указаны такие персональные данные, как Ф.И.О пользователя, дата рождения и номер удостоверения или паспорта.
Ссылка для распечатки HTML (или PDF) билета выглядит так: hxxps://epay.railways.kz/ktz4/proc?pa=orders&sa=PRINT_EVENT&ORDER_ID=XXXXXXX&PRINT_TYPE=PRINT_TYPE_HTML&TICKET_ID=
Вы не можете увидеть чужие билеты через личный кабинет. Однако при запросе на распечатку, сервер не проверяет принадлежит ли нам запрашиваемый параметр ORDER_ID. Это значит, что мы можем получить доступ к чужим билетам меняя значение этого параметра.
Вот результат такого запроса.
Ещё один пример:
Если вспомнить, что продажу новых билетов через epay.railways.kz запустили в 2014 году, то можно понять, что это абсолютно все билеты.
Вот и первые пользователи (или разработчики?).
Конечно, не обошлось без XSS. Не обработаны почти все параметры форм и даже путь файлов. О свойствах XSS можете прочитать в другом посте.
Вот такой вот грустный #opendata.