Взлом аккаунта TikTok с помощью уязвимости XSS

Взлом TikTok уязвимость XSS

Недавно мы рассказывали про инструменты для проведения OSINT ТикТок. В сегодняшней статье я Const и мой друг Mr.Havit поделимся своим опытом обнаружения уязвимости XSS, которая приводит к взлому аккаунтов в приложениях TikTok.

Еще по теме: Взлом сайтов с ошибкой 404 Not Found

Как взломать аккаунта TikTok с помощью уязвимости XSS

Bug Bounty — программа, которую владелец сайта или приложения проводит для привлечения сторонних специалистов к поиску уязвимостей. При участии в Bug Bounty нужно действовать этично и придерживаться установленных правил. Не забывайте, что несанкционированный взлом является незаконным и расценивается, как уголовное преступление. Ни редак­ция spy-soft.net, ни автор не несут ответс­твен­ность за ваши незаконные действия.

Поиск уязвимости TikTok

При работе с основным приложение ТикТок, я использовал VPN. В настройках моего VPN есть опция, которая случайным образом выбирает местоположение. При работе приложения ТикТок, соединение было случайным образом установлено на Китай.

При попытке зайти на сайт https://tiktok.com/ я был перенаправлен на другую веб-страницу с сообщением Page Not Available (Данная страница недоступна в вашем регионе).

Взлом аккаунта TikTok с помощью уязвимости XSS

Новый URL-адрес перенаправления содержит несколько параметров. Первый параметр — status, который отвечает за содержимое страницы. Второй параметр — link, который пока непонятно каким образом влияет на страницу.

Когда мы изменили значение параметра status на 1, содержимое страницы изменилось, и появилась новая кнопка. Нажатие на кнопку перенаправляет на значение параметра link. Вот тут-то и пригодится параметр link.

Взломать TikTok уязвимость XSS

Мы начали тестировать значение параметра link, подставляя различные распространенные XSS-нагрузки, такие как javascript:alert() и javascript://, но ничего не изменилось. Перенаправляющая ссылка по-прежнему имела значение https://go.onelink.me/BAuo/.

Через некоторое время я понял, что на самом деле мы можем контролировать путь. Это означает, что мы установили значение параметра link в https://go.onelink.me/mrhavit/, и оно было фактически встроено в HTML.

TikTok уязвимость XSS

Следующим этапом была проверка, застряли ли мы внутри атрибута href или можно вырваться и задать какие-то события. Как вы уже догадались, escape был установлен неправильно, и мы смогли успешно вставить новое событие в атрибут href.

TikTok взломать

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

Взлом ТикТок

Поскольку мы находились внутри атрибута href и потенциально могли внедрить любое событие, onclick показался наиболее подходящим. Когда мы попробовали это сделать, то быстро столкнулись WAF.

TikTok взлом

Поскольку это был особый кейс и уникальная точка входа для инъекции, мы не нашли быстрого решения с помощью полезной доступной в сети нагрузки XSS и обойти WAF. Поэтому мы начали изучать, как справиться с этим WAF, и попытались обойти его, создав свою полезную нагрузку.

Обойти WAF оказалось непростой задачей. Специальные символы, такие как > и <, были закодированы должным образом, поэтому, используя некоторые трюки с кодировкой, мы успешно вставили событие onclick.

Потратив некоторое время на работу и используя наши навыки JavaScript, мы, наконец, нашли крутой обходной путь, который позволил нам успешно выполнить JavaScript.

TikTok взломать аккаунт

Сообщать о XSS-уязвимости, не продемонстрировав ее влияние, — это не совсем хорошая идея. Если показать компании последствия того, что может сделать один клик, они осознают риск и, разумеется, больше заплатят за уязвимость :)

Захват аккаунта — всегда хороший пример для демонстрации влияния XSS-уязвимости. Хотя кража cookie-файлов в наши дни редкость благодаря флагу HTTPOnly, наличие достаточных знаний о цели может привести к захвату аккаунта креативными способами. Мы смогли добиться этого, используя TikTok OAuth.

Большинство сервисов TikTok предлагают Login With TikTok (Войти с помощью ТикТок) в качестве опции для входа. В этой статье мы сосредоточимся на ads.tiktok.com, но эта уязвимость также затрагивает и другие сервисы.

TikTok взлом аккаунтa

После нажатия на кнопку Login With TikTok отобразилась следующая страница:

Взлом приложение TikTok

Эта страница размещена на хостинге www.tiktok.com, на котором и находится наша XSS-уязвимость. После нажатия на кнопку Authorize (Авторизация) был сформирован следующий запрос:

В ответе содержится нечто очень интересное — code для аутентификации OAuth.

Взломать приложение TikTok

Если объединить это с нашей XSS-уязвимостью, то можно было бы одним кликом слить code OAuth нашей жертве. Хотя ТикТик не видел свидетельств использования этой уязвимости до ее устранения, злоумышленники, получившие эти коды, могли использовать их для захвата аккаунтов своих жертв.

Скрипт JS для обхода WAF

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

Файл asd.js содержит JavaScript-код, который отправляет XHR POST-запрос к конечной точке OAuth и отсылает ответ на сервер, контролируемый злоумышленником.

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

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

Взлом аккаунта TikTok с помощью уязвимости XSS

Отчет о взломе на HackerOne

Хронология:

  • Мы сообщили — 23 марта
  • Рассмотрено — 3 апреля
  • Мы получили денежное награждение — 6 апреля
  • TikTok устранил уязвимость — 6 апреля

Заключение

10 апреля мы сообщили, что XSS-уязвимость все еще присутствует в нашем регионе. Команда ТикТок провела расследование и подтвердила, что в некоторых регионах существовала внутренняя проблема с сервисом, из-за которой XSS все еще мог срабатывать. Позже, в ходе работы с командой TikTok они подтвердили, что уязвимость была окончательно исправлена.

ПОЛЕЗНЫЕ ССЫЛКИ:

ВКонтакте
OK
Telegram
WhatsApp
Viber

Добавить комментарий

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