XSS уязвимость в Google Tagmanager и поиске картинок.

В октябре 2014 Патрик Ференбах нашел уязвимость stored XSS в Google. Этот отчет интересен тем, как он сумел получить payload past Google.

Image result for xss vulnerability

Google Tagmanager SEO инструмент, который позволяет маркетологам с легкостью добавлять теги для сайтов, включая трекинг конверсии, аналитику сайта, ремаркетинг, и многое другое…. Для этого используется множество веб-форм, с которыми должны взаимодействовать пользователи. В результате, Патрик начал с того, что ввел XSS-содержимое, выглядевшее как #>img src=/ onerror=alert(3)>, в доступные поля форм. Если ввод принимался, это закрывало существующий HTML > и затем пыталось загрузить несуществующее изображение, которое выполняло ошибку Javascript onerror, alert(3).

Однако, это не сработало. Google надлежащим образом экранировал ввод. Тем не менее, Патрик заметил альтернативу Google предоставляет возможность загрузить JSON-файл со множеством тегов. Он скачал файл-пример и загрузил:

”data”: {
”name”: ”#”><img src=/ onerror=alert(3)>”,
”type”: ”AUTO_EVENT_VAR”,
”autoEventVarMacro”: {
5 6} 7}
”varType”: ”HISTORY_NEW_URL_FRAGMENT”

Здесь вы можете увидеть название тега в его XSS-коде. Оказалось, что Google не экранировал ввод из загружаемых файлов и вредоносный код был выполнен.

Выводы

Здесь есть две интересные вещи. Во-первых, Патрик обнаружил альтернативу предложенному методу ввода обращайте внимание и тестируйте все методы ввода, предоставляемые целью. Во-вторых, Google очищал ввод, но не экранировал его при рендере. Если бы они экранировали ввод Патрика, вредоносный код не сработал бы, поскольку HTML конвертировался бы в безобидные буквы.

Сложность: Средняя
Url: tagmanager.google.com

Ссылка на отчет: https://blog.it-securityguard.com/bugbountythe-5000-google-xss33

[ad name=»Responbl»]

Поиск изображений Google

В сентябре 2015, Махмуд Джамал использовал Google Картинки, чтобы найти картинку для своего профиля Hackerone. В процессе поиска он заметил нечто интересное в URL изображения от Google:

http://www.google.com/imgres?imgurl=https://lh3.googleuser.com/...

Обратите внимание ссылку в imgurl на настоящий url. При наведении на уменьшенную версию изображения, Махмуд заметил, что якорь тега href содержит тот же url. В результате, он попытался изменить параметр на “javascript:alert(1)” и увидел, что якорь тега href также изменил значение на новое.

Обрадовавшись, он кликнул по ссылке, но Javascript не выполнился, поскольку Google URL был изменен на что-то другое. Оказалось, что код Google изменяет значение url по клику мыши через событие Javascript onmousedown.

Учтя это, Махмуд решил попробовать воспользоваться клавиатурой, используя клавишу tab для навигации по странице. Когда он добрался до кнопки “Просмотреть изображение”, Javascript сработал, обнаружив XSS-уязвимость. Вот изображение:

Выводы

Всегда будьте начеку. Легко предположить, что просто потому, что компания огромная или хорошо известна, то все уже было найдено. Однако, компании постоянно обновляют свой код.

[ad name=»Responbl»]

В дополнение, еще раз, вам необходимо мыслить нестандартно. В этом случае легко было сдаться после того, как Google изменил значение с помощью обработчика события onmousedown, посчитав, что ссылка всегда нажимается с помощью мыши.

Сложность: Средняя
Url: images.google.com
Ссылка на отчет: Zombie Help32

 

Click to rate this post!
[Total: 9 Average: 2.9]

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

Leave a reply:

Your email address will not be published.