Независимый исследователь Рафай Балоч (Rafay Baloch) обнаружил баг, суммарно принесший ему $5000 по bug bounty программам Google и Mozilla. Исследователь рассказал, что подменить URL в адресной строке браузера можно просто использовав арабскую письменность или символы любого другого языка, в котором чтение и письменность осуществляются справа налево.
В своем блоге Балоч пишет, что проблема очень проста и связана с тем, как браузеры обрабатывают ссылки, в которых сочетаются символы арабского языка или иврита (которые записываются и читаются справа налево), и обычная латиница, знаки и цифры. Некоторые браузеры в таком случае меняют части ссылок местами, создавая у пользователя иллюзию, что он находится совсем не на том сайте, который открыт в окне браузера.
Исследователь приводит простой пример: 127.0.0.1/ا/http://example.com. Из-за использования символа «ا» ссылка превратится в http://example.com/ا/127.0.0.1. Опасность заключается в том, что пользователь будет убежден, что находится на example.com, тогда как на самом деле в его браузере может открыться совсем другой сайт.
Баг, найденный Балочем, это настоящий подарок для фишеров, которые могут встраивать такие ссылки в почтовый спам, SMS-сообщения и так далее. Когда пользователь кликнет по такой ссылке, в адресной строке браузера он увидит адрес легитимного домена, хотя на самом деле будет направлен на сервер злоумышленника.
«Часть ссылки с IP-адресом очень легко спрятать, особенно в мобильных браузерах, достаточно создать ссылку подлиннее (например: google.com/fakepath/fakepath/fakepath/... /127.0.0.1), чтобы атака выглядела еще реалистичнее, — пишет исследователь. — Можно также использовать юникод-символ, изображающий замок, имитировав наличие SSL».
Проблема затрагивает браузеры Firefox для Android (CVE-2016-5267) и Chrome, но в браузере Mozilla реализация атаки выглядела немного иначе. Для Firefox атакующий не обязательно должен был задействовать IP-адрес, здесь было достаточно использования арабских символов, к примеру, URL вида http://عربي.امارات/google.com/test/test/test превращается в google.com/test/test/test/عربي.امارات.
В настоящий момент проблема устранена в Firefox для Android, а Google обещает представить исправление для Chrome в сентябре 2016 года. Однако исследователь пишет, что такой же баг присутствует и в других браузерах. Так как патчей еще нет, Балоч не раскрывает их названий.