Исследователь заработал $10 000, обнаружив XSS-уязвимость в почте Yahoo!

Исследователь заработал $10 000, обнаружив XSS-уязвимость в почте Yahoo!

Исследователь заработал $10 000, обнаружив XSS-уязвимость в почте Yahoo!

Сотрудник финской компании Klikki Oy Йоуко Пюннёнен (Jouko Pynnönen) обнаружил XSS-уязвимость в веб-интерфейсе почтового сервиса Yahoo. Баг позволял злоумышленнику отправить жертве письмо, содержащее скрытый вредоносный код, который исполнялся сразу же, как только жертва читала послание.

Пюннёнен нашел уязвимость в конце декабря и немедленно сообщил о проблеме представителям Yahoo. Баг оказался серьезным: при работе с веб-интерфейсом почтовый фильтр Yahoo! Mail функционировал некорректно, допуская внедрение вредоносного кода в HTML-письма. Данный XSS-баг не требует манипуляций с URL, что довольно нетипично для подобных уязвимостей. Исследователь заметил, что фильтр удаляет значения булевых атрибутов, но сам атрибут и последующий знак равенства при этом сохраняются. А значит, фильтр можно обмануть, пишет xakep.ru.

К примеру, если вставить в письмо изображение, используя тег <IMG>, а также применить атрибут «ismap», можно добиться выполнения произвольного JavaScript кода.

Yahoo! Mail трансформирует этот код таким образом, что когда жертва откроет письмо, код в атрибуте «onmouseover» будет выполнен без участия пользователя.

Исследователь представил proof-of-concept видео, где привел несколько возможных примеров эксплуатации уязвимости. Можно не только вставить в HTML-сообщение «невидимый» код. К примеру, можно внедрить вредоносный код в чужую подпись, создав таким образом распространяющего самостоятельно червя, который продолжит вставлять себя в подписи следующих жертв.

Пюннёнен проинформировал компанию о проблеме 26 декабря 2015 года, и 6 января 2016 года баг был устранен. Теперь знак равенства тоже удаляется фильтром, так что код из примера выше будет выглядеть следующим образом.

За эту XSS-уязвимость Yahoo выплатила исследователю $10 000, и это одно из самых крупных вознаграждений за всю историю существования bug bounty программы Yahoo. Представители компании подчеркнули, что данная уязвимость, ее последующий обзор, а также действия, оперативно предпринятые командной разработчиков Yahoo, являются идеальным примером того, зачем нужны программы вознаграждений за баги и как они должны работать.

Вышла утилита RKN Block Checker для диагностики блокировок

Разработчик Дмитрий Виноградов представил утилиту RKN Block Checker с открытым исходным кодом. Она помогает понять, почему конкретный сайт не открывается: это обычная сетевая проблема или блокировка на стороне провайдера / регуляторной инфраструктуры.

Проект написан на Python и опубликован под лицензией MIT. Утилита работает из командной строки и проверяет соединение по цепочке DNS → TCP → TLS → HTTP.

Идея простая: не просто выдать вердикт, что сайт недоступен, а показать, на каком именно уровне всё сломалось. Например, если системный DNS не даёт нормальный ответ, а Cloudflare DoH возвращает корректный адрес, это может указывать на DNS-подмену. Если TCP-соединение на 443-й порт сбрасывается, речь может идти о блокировке на уровне IP.

Если TCP проходит, но соединение рвётся на TLS-рукопожатии с SNI, это уже похоже на работу DPI / ТСПУ. А если сайт открывается, но вместо страницы приходит заглушка провайдера или код 451, утилита фиксирует и такой сценарий.

 

Автор отдельно подчёркивает, что смысл RKN Block Checker не в том, чтобы заменить браузер. Браузер и так сообщает, что сайт не открылся. Здесь задача другая — разложить проблему по слоям и дать пользователю более понятную картину, где именно произошёл сбой и на что это похоже.

Утилита сравнивает ответы системного DNS и DNS over HTTPS через Cloudflare, проверяет обычное TCP-подключение, запускает TLS-handshake с SNI целевого домена и затем делает HTTP-запрос. Вердикт выставляется по первому уровню, на котором возникла ошибка.

 

У проекта есть и ограничения. Пока поддерживается только IPv4. Списки целей жёстко заданы в коде и включают около 20 сайтов на категорию, поэтому инструмент не поймает все частные случаи. Кроме того, это разовая проверка без повторов и долгосрочного мониторинга, хотя JSON-вывод можно использовать в cron для регулярных запусков.

RSS: Новости на портале Anti-Malware.ru