В британском реестре компаний обнаружили XSS
Выпуск комикса XKCD 327 «Мамины эксплойты» в переводе xkcd.ru
20 октября некто Джим Уокер поделился на форуме разработчиков британского государственного реестра компаний Companies House интересным наблюдением. Companies House допускает в именах компаний символы < и >. Это открывает простор для атак на тех сайтах, которые не фильтруют и не экранируют управляющие символы корректным образом. Если сайт отображает название компании и не санитизирует данные, то он потенциально уязвим к XSS-атаке.
Уокер обнаружил, что 16 октября некий Майкл Джон Тэнди зарегистрировал компанию с названием "> LTD
. Если XSS-фильтра нет, то такое имя компании внедряет на веб-страницу код, который вызывает внешний JavaScript.
На данный момент из сообщения Джима Уокера название компании удалено, но остались скриншоты.
22 октября регулятор разослал своим партнёрам предупреждение о «компании 12956509». Письмо аккуратно избегает упоминаний настоящего имени. Компанию называют по номеру в базе данных.
В письме сотрудники дают краткий ликбез о природе XSS-атак и предупреждают о возможных рисках безопасности.
Companies House по максимуму скрыла имя компании. Как заметили в Twitter, даже выписка об учреждении 12956509 в поле имени содержала: «Имя компании предоставляется по запросу».
Сам виновник события объявился в треде Джима Уокера 23 октября, через трое суток после находки. Майкл Тэнди объяснил, что раскрывать информацию на публичном форуме с его стороны было бы безответственно, поэтому с Companies House он связался через тикет техподдержки.
Уязвимы ресурсы, которые получают информацию из реестра Compаnies House. Майкл рассказал, что он уже связывается со всеми сайтами, которые вызвали его скрипт. Как посетовал исследователь безопасности, уязвимые к XSS сайты редко размещают контакты для связи и не имеют аккаунт на сервисах по типу HackerOne.
На форуме сотрудники Company House подтвердили, что получили сообщения Тэнди. Имя «компании 12956509» сменилось на THAT COMPANY WHOSE NAME USED TO CONTAIN HTML SCRIPT TAGS LTD
(буквально «та компания, у которой в имени раньше содержались тэги HTML»). Неизвестно, исправлена ли уязвимость в системах Company House. Возможно, реестр ввёл специальные ограничения на имена.
В реестре Companies House попытки инъекций кода находят уже не впервые. В 2016 году под номером 10542519 появилась компания с SQL-инъекцией ; DROP TABLE "COMPANIES";-- LTD
.