Пример XSS атаки на магазины Shopify и Хранимый XSS на Yahoo Mail

Настройки магазинов Shopify включают возможность изменить форматирование валюты. 9 декабря было сообщено, что значения из этих полей ввода не были надлежащим образом очищены при настройке страниц в социальных сетях.

Картинки по запросу xss attack

Другими словами, злоумышленник мог настроить магазин и изменить настройки валюты для магазина следующим образом:

Скриншот форматирования валюты Shopify
Скриншот форматирования валюты Shopify

Далее, пользователь мог включить каналы продаж в социальных сетях, в случае отчета, Facebook и Twitter, и когда пользователи кликали на вкладку канала продаж, выполнялся Javascript, вызывающий XSS.

XSS-уязвимости возникают при небезопасном рендере Javascript. Есть вероятность, что текст будет использован в нескольких местах на сайте, так что исследовать нужно каждый уголок. В этом случае Shopify не осуществлял проверку на XSS на страницах оплаты и магазина, поскольку пользователи имеют возможность использовать Javascript в своих собственных магазинах. Эту уязвимость можно было бы списать со счетов, если бы не возможность использования значения, введенного в поле, на внешних сайтах социальных сетей.

Ссылка на отчет: https://hackerone.com/reports/104359

[ad name=»test3″]

Хранимый XSS на Yahoo Mail

Редактор почты Yahoo позволял людям вставлять изображения в письма через HTML, с помощью тега IMG. Эта уязвимость обнаруживается, когда тег IMG некорректно сформирован или невалиден.

Большинство HTML-тегов принимают атрибуты, дополнительную информацию о HTML-теге. Например, тег IMG принимает атрибут src, указывающий расположение вставляемого

изображения. Более того, некоторые атрибуты являются булевыми, что значит, что если они включены, они означают значение true в HTML, а когда они пропущены, они равны false.

Картинки по запросу xss attack

Зная об этой уязвимости, Jouko Pynnonen обнаружил, что если он добавит булевы атрибуты со значениями к HTML-тегам, Yahoo Mail удалит значения, но оставит знаки равенства. Вот пример с сайта Klikki.fi:

1  <INPUT TYPE=”checkbox” CHECKED=”hello” NAME=”check box”>

Здесь, тег input может включать в себя атрибут checked, определяющий, должен ли чекбокс быть помеченным включенным или выключенным. В соответствии с парсингом, описанным выше, эта конструкция превращалась в следующее:

<INPUT TYPE=”checkbox” CHECKED= NAME=”check box”>

Обратите внимание, что HTML уже не содержит значения для атрибута checked, но по-прежнему содержит знак равенства.

Это выглядит безобидно, но в соответствии с HTML-спецификациями, браузеры читают это как если бы атрибут CHECKED имел значение NAME=”check” и третий атрибут box, у которого нет значения. Это происходит из-за того, что HTML позволяет вставлять ноль или более символов пробела вокруг знака равенства при указании значения атрибута без кавычек.

Картинки по запросу xss attack yahoo

Чтобы использовать это, Jouko отправил следующий IMG тег:

<img ismap=’xxx’ itemtype=’yyy style=width:100%;height: 2 100%;position:fixed;left:0px;top:0px; onmouseover=alert 3 (/XSS/)//’>

а Yahoo Mail отфильтровал его, и в результате получилось это:

<img ismap=itemtype=yyy style=width:100%;height:100%;po sition:fixed;left:0px;top:0px; onmouseover=alert(/XSS/) //>

В результате, браузер отрисовывал бы IMG-тег, занимающий все окно браузера, а при наведении мыши на изображение, выполнялся бы Javascript.

[ad name=»Responbl»]

Выводы

Передача некорректного или сломанного HTML — отличный способ тестирования того, как сайты парсят ввод. Для белого хакера важно думать нестандартно и рассматривать вещи, кото- рые могли не предусмотреть разработчики. На- пример, с обычными тегами изображениями, что произойдет, если вы передадите два атрибута src? Как будет отрисовано изображение?

Ссылка на отчет: https://klikki.fi/adv/yahoo.html

 

Click to rate this post!
[Total: 11 Average: 4.6]

Специалист в области кибер-безопасности. Работал в ведущих компаниях занимающихся защитой и аналитикой компьютерных угроз. Цель данного блога - простым языком рассказать о сложных моментах защиты IT инфраструктур и сетей.

Leave a reply:

Your email address will not be published.