Null/Third-party domain XSS в Google Chrome 5.x и ниже

Null/Third-party domain XSS в Google Chrome 5.x и ниже

Давеча, играясь с XSS-фильтрами в IE8 и Chrome, обнаружил сабж. Хромовский XSS Auditor пропускает javascript, запущенный через внедрение тега <IFRAME> в контент сайта, подверженного XSS уязвимостям первого типа. Попутно выяснилось, что вместо загрузки в <IFRAME> своего HTML с payload-скриптом, можно просто использовать самодостаточный XSS на базе протокола data:

Живое демо на примере одного из очередных казино-лохотронов:

XSS через загрузку HTML
XSS через data: протокол

Памятуя об обещанных 500$ за каждую некритическую уязвимость в Chrome/Chromium, сообщил о ней куда следует и, после короткого диалога с разработчиками Chrome выяснилось, что они не считают это уязвимостью XSS Auditor, т.к. в данном случае у атакующего отсутствует возможность выполнять скрипт в контексте домена уязвимого сайта, а следовательно – XSS-уязвимостью это не является и в scope XSS-Auditor’а не попадает. Забавно то, что в scope XSS-фильтра IE8 этот вектор вполне себе попадает и успешно блокируется, также как и в фоксовом NoScript’е.

В сухом остатке, мы имеем на руках:

  • отраженную HTML-injection, позволяющую через специально-сформированную ссылку внедрить в контент уязвимого сайта как произвольный javascript (что является риском даже безотносительно домена, в котором выполняется скрипт, вообще-то), так и произвольный binary-контент, например, pdf/swf/doc с эксплоитом очередной уязвимости обработчиков этих форматов;
  • отказ разработчиков браузера фиксить эту уязвимость;

К.О. также подсказывает, что в то же время мы не имеем на руках обещанных 500$… да ну и фиг с ними. Обидно то, что в используемом браузере обозначилась дыра, которая будет существовать в нем еще очень и очень долго, судя по всему :(

UPD: Так и не признав данный вектор уязвимостью, Google все же по-тихому исправили ее где-то к 12-ой версии Chrome :LOL:

Alt text

Домашний Wi-Fi – ваша крепость или картонный домик?

Узнайте, как построить неприступную стену

Владимир Кочетков

Все, что вы могли бы знать об AppSec, но почему-то не спрашивали