- PVSM.RU - https://www.pvsm.ru -
Я независимый исследователь безопасности securityz.net, первое место в bug bounty ПриватБанка.
Решил пройтись по топу alexarank [1], начал искать уязвимости на gismeteo.ua (20 место). Произошел редирект на русскую версию (www.gismeteo.ru/soft/ [2]), обратил внимание на тех.поддержку.
Техподдержка находилась по адресу gismeteo.userecho.com [3] и загружалась на gismeteo в iframe:
https://gismeteo.userecho.com/s/interframe.html?url=https://gismeteo.userecho.com/widget/forum/6-/?lang=ru&referer=https://www.gismeteo.ru/soft/&xdm_e=https://www.gismeteo.ru&xdm_c=default4178&xdm_p=1
Потом появлялась форма для создания тикета.
Попытался загрузить свой сайт в iframe https://gismeteo.userecho.com/s/interframe.html?url=https://securityz.net, но он не грузился. Потом понял, что кроме url загружаемого сайта нужны ещё и переменные lang, referer, xdm_e и другие.
http://support.gismeteo.ru/s/interframe.html?url=https://securityz.net/?lang=ru&referer=https://www.gismeteo.ru/soft/&xdm_e=https://www.gismeteo.ru&xdm_c=default4178&xdm_p=1
И мой сайт загрузился во фрейме.
Видео:
Оказалось, что владелец виджета userecho.com использует один и тот же API на всех сайтах клиентов для техподдержки, отсюда вывод, что все его клиенты уязвимы к iframe injection.
Находим список топ-клиентов — http://userecho.com/clients/?lang=ru [4] — и понимаем, что много уязвимых клиентов — это наиболее посещаемые сайты:
— drugvokrug.ru (социальная сеть, более 5 000 000 пользователей),
— fl.ru (самая популярная фриланс биржа в России)
— easypay.ua (одна из наиболее посещаемых платежных систем в Украина)
— tankionline.com
— ivi.ru
— amiro.ru
— okko.tv
— insales.ru
— a-lab.ru
— scrapinghub.com
— iridiummobile.net и много других.
Почти все сайты размещают виджет userecho на своём поддомене, пример — ask.drugvokrug.ru [5], но некоторые размещают его как поддомен на userecho kontur.userecho.com [6]. Также клиентов userecho можно искать по google/yandex доркам.
Векторы атаки:
Пример: https://securityz.net/gismeteo.html?lang=ru&referer=https://www.gismeteo.ru/soft/&xdm_e=https://www.gismeteo.ru&xdm_c=default4178&xdm_p=1 [7] — я сделал копию сайта gismeteo и если человек введет логин и пароль на гисметео, они придут мне.
<EMBED SRC="data:image/svg+xml;base64,PHN2ZyB4bWxuczpzdmc9Imh0dH A6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hs aW5rIiB2ZXJzaW9uPSIxLjAiIHg9IjAiIHk9IjAiIHdpZHRoPSIxOTQiIGhlaWdodD0iMjAw IiBpZD0ieHNzIj48c2NyaXB0IHR5cGU9InRleHQvZWNtYXNjcmlwdCI+YWxlcnQoIlh TUyIpOzwvc2NyaXB0Pjwvc3ZnPg==" type="image/svg+xml" AllowScriptAccess="always"></EMBED>
Чтобы распространить вредоносную ссылку, нужно сначала укоротить ссылку goo.gl/GIYRUR, потом:
Можно было бы отправлять сообщения об уязвимости на каждый уязвимый сайт, но уязвимость была бы оперативно исправлена разработчиками userecho и я мог бы не получить ничего ни от уязвимых сайтов, ни от разработчиков виджета.
Поэтому решил сразу сообщить о находке разработчикам плагина.
09.01.2017 в 23:00: отправлен баг репорт в тех поддержку userecho.com.
10.01.2017 в 00:10: уязвимость исправлена и уязвимый файл interframe.html удален (комментарий от разработчиков - файл interframe.html больше недоступен (удален) и все виджеты работают без него. Поэтому все работает с тем же API.).
10.01.2017 в 02:14: разработчики выплатили награду $100. Комментарий:
Вы должны понимать, что мы не такая крупная компания. К тому же, это вообще первый случай когда мы решили дать кому-то денежное вознаграждение.
Также я обнаружил SELF XSS уязвимость в поддержке userecho и ее не собираются исправлять, уязвимости подвержены более 20 тысяч сайтов, вот статья [11] и PoC. Я еле уговорил разработчиков устранить iframe injection:
Мы видели по логам, что вы игрались с interframe.html и в принципе понимали для чего и как его использовали. Только не был понятен вариант как использовать это с пользой.
Так как теперь мы понимаем варианты использования и Вы подвигли нас на исправления мы готовы перевести Вам 100USD.
+ Обнаружил ещё одну xss уязвимость в этом виджете, её никто не собирается исправлять https://twitter.com/MaximYaremchuk/status/818799433332695040 [12] и она до сих присутствует на 20 000 + сайтах.
Чтобы быть в курсе всех моих последних публикаций, подписывайтесь на Твиттер https://twitter.com/MaximYaremchuk [13]. Буду очень рад подпискам.)
Успехов!
Автор: w9w
Источник [14]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/programmirovanie/232202
Ссылки в тексте:
[1] alexarank: http://www.alexa.com/topsites/countries/UA
[2] www.gismeteo.ru/soft/: https://www.gismeteo.ru/soft/
[3] gismeteo.userecho.com: https://gismeteo.userecho.com
[4] http://userecho.com/clients/?lang=ru: http://userecho.com/clients/?lang=ru
[5] ask.drugvokrug.ru: http://ask.drugvokrug.ru/
[6] kontur.userecho.com: http://kontur.userecho.com/
[7] https://securityz.net/gismeteo.html?lang=ru&referer=https://www.gismeteo.ru/soft/&xdm_e=https://www.gismeteo.ru&xdm_c=default4178&xdm_p=1: https://securityz.net/gismeteo.html?lang=ru&referer=https://www.gismeteo.ru/soft/&xdm_e=https://www.gismeteo.ru&xdm_c=default4178&xdm_p=1
[8] http://support.gismeteo.ru/s/interframe.html?url=https://securityz.net/?lang=ru&referer=https://www.gismeteo.ru/soft/&xdm_e=https://www.gismeteo.ru&xdm_c=default4178&xdm_p=1: https://www.pvsm.ruhttp://support.gismeteo.ru/s/interframe.html?url=https://securityz.net/?lang=ru&referer=https://www.gismeteo.ru/soft/&xdm_e=https://www.gismeteo.ru&xdm_c=default4178&xdm_p=1
[9] securityz.net/iu.html: https://securityz.net/iu.html
[10] http://support.gismeteo.ru/s/interframe.html?url=https://securityz.net/iu.html/?lang=ru&referer=https://www.gismeteo.ru/soft/&xdm_e=https://www.gismeteo.ru&xdm_c=default4178&xdm_p=1: https://www.pvsm.ruhttp://support.gismeteo.ru/s/interframe.html?url=https://securityz.net/iu.html/?lang=ru&referer=https://www.gismeteo.ru/soft/&xdm_e=https://www.gismeteo.ru&xdm_c=default4178&xdm_p=1
[11] вот статья: https://securityz.wordpress.com/2017/01/10/self-xsx_ru/
[12] https://twitter.com/MaximYaremchuk/status/818799433332695040: https://twitter.com/MaximYaremchuk/status/818799433332695040
[13] https://twitter.com/MaximYaremchuk: https://twitter.com/MaximYaremchuk
[14] Источник: https://habrahabr.ru/post/319304/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best
Нажмите здесь для печати.