На днях неизвестный читатель моего блога невольно поучаствовал в процессе обнаружения уязвимости на одном популярном почтовом хостинге, за что ему большое спасибо!
Сама уязвимость стара как мир: Http referer leakage + отсутствие авторизации.
Итак, на неком почтовом хостинге каждое письмо получает уникальный идентификатор, который и используется в URL для его адресации. Имея в руках такую ссылку, любой неавторизованный пользователь может получить доступ к телу соответствующего письма. Критичность уязвимости снижается за счет того, что сам идентификатор имеет достаточно большое пространство перебора и высокую энтропию, так что угадать или подобрать его представляется слишком трудозатратным мероприятием.
И тут нам на помощь приходит заголовок Referer. Так как почтовый хостинг не реализует централизованную систему внешних редиректов (а-ля в facebook), получается, что адрес письма будет проставлен в заголовок Referer при переходе по ссылкам из тела письма.
Разработчики почтового сервиса, разумеется, были уже уведомлены.
Смотрим веселые картинки под катом.
Утечка была зафиксирована системой сбора статистики в блоге.
Используем полученный URL для доступа к телу письма.
Хорошего дня!