Спецпроекты

Два «детских» бага в TikTok позволяли красть аккаунты в один клик

Безопасность Пользователю Техника

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

XSS плюс CSRF

В TikTok обезврежена опасная уязвимость, допускавшая захват чужого аккаунта «в один клик», сообщает Bleeping Computer. Уязвимость обнаружил проживающий в Германии эксперт по поиску багов Мухаммед Таскиран (Muhammed Taskiran). По его сведениям, TikTok был беззащитен перед атаками межсайтового скриптинга, а конкретнее неперсистентного XSS.

Такая уязвимость возникает, когда веб-приложение не производит проверку пользовательского ввода и немедленно исполняет его команды. Злоумышленник таким образом имеет возможность внедрить произвольный код на пользовательской стороне.

Таскиран обнаружил баги при fuzz-тестировании доменов tiktok.com и m.tiktok.com. Кроме того, он обнаружил еще один баг разновидности CSRF (межсайтовая подделка запросов), который позволял изменять пароли к аккаунтам пользователей, использующих сторонние приложения для входа в сервис.

Комбо-два

Комбинация из двух уязвимостей позволяла захватывать чужие аккаунты с минимальными усилиями. «Я скомбинировал обе уязвимости с помощью короткого вредоноса на JavaScript, который запускает CSRF-атаку, и внедрил его в уязвимый URL-параметр, тем самым добившись захвата аккаунта в один клик», — отметил исследователь.

tik600.jpg
Аккаунты в TikTok можно было захватывать, использовав сочетание двух уязвимостей

Проинформировав TikTok о проблеме, Таскиран получил награду в размере $3860. Уязвимость была устранена еще в сентябре 2020 г.

«XSS- и CSRF-уязвимости весьма распространены; время от времени их находят в веб-приложениях даже самых крупных компаний, — указывает Алексей Водясов, технический директор компании SEC Consult Services. — Однако в большинстве случаев это, что называется, “зевки” — результат использования малонадежного стороннего кода или простая забывчивость программистов. К сожалению, она может обходиться довольно дорого. И хорошо, если баг находят этические хакеры — вознаграждение им обойдется на несколько порядков дешевле, чем устранение последствий реальной атаки. К тому же механизмы защиты от этих уязвимостей давно известны».