Skip to content

email confirmations

artli edited this page Mar 12, 2018 · 1 revision

Исполнительного директора Notemaster подозревают в передаче конфиденциальной информации конкурентам

Условие

Билл Абрамсон, в середине прошлого года вступивший в должность исполнительного директора популярного сервиса Notemaster, вчера ушёл в отставку после обвинений в разглашении конфиденциальной информации. Анонимные источники утверждают, что Билл уже несколько месяцев передаёт пользовательские данные и исходные коды основному конкуренту компании — сервису Whatevernote.

В марте компания, владеющая Notemaster, должна была выйти на IPO. По мнению большинства аналитиков, после двух лет бурного развития и роста пользовательской базы компания должна была собрать по меньшей мере несколько сотен миллионов долларов. Теперь же IPO придётся отложить как минимум до конца внутреннего расследования.

Решение

Сайт, на который дана ссылка в условии, — это простейший сервис по созданию заметок. Первое, что видит пользователь, — страница логина и регистрации:

После успешного заполнения формы регистрации появляется сообщение с просьбой проверить почту для подтверждения регистрации:

На указанную почту сервис действительно присылает письмо:

После нажатия на ссылку из письма сайт помечает пользователя как подтверждённого, автоматически авторизует его и показывает страницу заметок:

На эту страницу можно добавлять не очень большие заметки (до 5000 символов), на чём функциональность сайта и заканчивается.

При первом знакомстве с сайтом может возникнуть желание атаковать формы логина, регистрации или добавления заметки, например, проверяя их на наличие SQL-инъекций. Этот путь не приведёт к успеху, равно как и попытки взломать механизм сессий.

Решение куда проще: уязвимость надо искать в ссылке из регистрационного письма. Эти ссылки имеют вид https://notemaster.contest.qctf.ru/confirm/<не очень большое число>. Оказывается, тот, кто реализовывал механизм регистрации, не позаботился о безопасности этих ссылок, поэтому число в них — это просто id пользователя, которому пришло письмо.

Переход по такой ссылке автоматически авторизует пользователя, даже если аккаунт с таким id уже подтверждал регистрацию ранее (это ещё одна уязвимость). Перейдя по ссылке https://notemaster.contest.qctf.ru/confirm/1, можно попасть в аккаунт администратора, где в одной из заметок и хранится флаг: