Здарова %username%!
Видел новый интерфейс Яндекс Браузера? Мне он очень понравился, все очень красиво и лаконично, хотя некоторые особенности спорны. Гляди примеры (картинки кликабельны).
Вот так выглядит страница twitter’а в Google Chrome:
А вот так в новом интерфейсе Яндекс Браузера:
На самом деле там очень много крутых фич, обязательно зацени, как будет время. Включается новый интерфейс через ссылку browser://flags/
Но все же кое-что меня смутило. Как видно, в хроме явно видно присутствие SSL-сертификата (зеленая плашка), в ЯБраузере же просто чёрный замочек. Title сдвинут в середину и рядом через разделитель адрес сайта, без ссылок. Все в стиле минимализма.
И тут я подумал, что если добавить символ юникода в Title, будет ли он отрисован? Потому что как раз кстати есть unicode символ в виде замочка (🔒)! И действительно, во вкладке появился еще один замочек! Правда для OS X он был цветным, но для Windows очень даже ничего!
Правда смысла особо не много, два похожих друг на друга замочка, Яндекс Браузер все равно центрирует Title во вкладке, вырезая все разделительные знаки, табуляции, переносы и прочее.
Путем перебора различных кобинаций выяснилось, что символ invisible separator (⁣) и знак табуляции (	) — дают один пробел. Поэтому засунув в Title кучу таких пар появился эксплойт, который все еще доступен тут
Выглядит это как-то так:
Надо было сделать что-то покрасочнее, но я подумал, что этого достаточно))
Если присмотреться, то я сдвинул домен текущего сайта влево, а яркий черный замок отвлекает пользователя, что дает возможность использовать социальную инженерию и построить с помощью этой фичи фишинг.
Раньше, когда браузеры показывали икону перед URL была атака, когда файл favicon.ico содержал изображение зеленого замка, это активно использовалось при MiTM. Тогда браузеры решили это зафиксить. Это замечание я отправил Яндексу, а скачав сегодня обновление — увидел, что домен и title теперь поменялись местами. Но, возможно, если интерфейсы браузеров будут сводится к минимализму, об этой атаке можно будет вспомнить и применить на других браузерах.
Назовём её Tabspoofing?