Серьёзную уязвимость в стандартном почтовом приложении Mail в операционной системе iOS 8.3 можно легко эксплуатировать для демонстрации жертве реалистичного всплывающего окна с запросом пароля. Пользователь вводит пароль от iCloud, а нажатием кнопки "OK" отправляет письмо с паролем злоумышленнику. Всё элементарное просто.
Механику уязвимости описывает в своём блоге независимый исследователь Ян Соучек (Jan Soucek).
Проблема в том, что приложение Mail не фильтрует тег <meta http-equiv=refresh>
, если тот встречается в письме. Из-за этого можно подгружать к письму содержимое из сторонних источников. Хотя в UIWebView отключено исполнение скриптов JavaScript, но можно нарисовать правдоподобную форму для сбора паролей средствами HTML и CSS.
Похожая на оригинальную форма просто спрашивает у пользователя его пароль от iCloud — и отправляет его злоумышленнику, в лучших традициях фишинга. Код можно модифицировать таким образом, чтобы в форме заранее было заполнено поле с адресом электронной почты жертвы, это повышает достоверность.
Как известно пользователям iOS, операционная система часто выводит окошко с вводом пароля iCloud в случайные моменты времени, так что появление такого окна при прочтении письма не должно вызвать подозрений.
Демонстрация атаки показана на видео.
Ян Соучек ещё в январе 2015 года уведомил компанию Apple, но она до сих пор не выпустила патч, так что пришло время обнародовать PoC, чтобы подтолкнуть производителя мобильных телефонов к более активным действиям.
Код для проведения атаки опубликован на Github.
Баг точно присутствует в версиях iOS с 8.1.2 по 8.3. Возможно, и в более ранних версиях.