Xakep #305. Многошаговые SQL-инъекции
Сообщения об XSS-уязвимости в Steam начали появляться на Reddit 7 февраля 2017 года, причем сообщалось, что эксплуатировать баг довольно легко. Вскоре модераторы сабреддита /Steam стали предупреждать пользователей об опасности, они просили вообще не загружать чужие профили и даже ленту Activity.
Как оказалось, проблема была связана с тем, что фильтры Steam в очередной раз не справились со своей задачей: пользователи могли разместить у себя в профиле вредоносный код. Так, если атакующих встраивал в одно из полей профиля JavaScript-код, любой пользователь, загрузивший данный профиль, становился жертвой «ловушки». Так как сообщения на Reddit начали появляться раньше, чем разработчики Valve выпустили исправление, множество пользователей успели создать себе вредоносные профили. Точное количество пострадавших до сих пор неизвестно.
So you can do Cross-site scripting (XSS) on Steam right now. DO NOT load anyones profile. @mikko meta http-equiv="refresh" works this is bad pic.twitter.com/eyqODlT6Yt
— Cra0kalo (@cra0kalo) February 7, 2017
Эксплоит срабатывал без всякого предупреждения для жертвы и в теории имел большой потенциал. Так, большинство пользователей добавили в свои профили простейший код, который редиректил посетителей на сайт, где им предлагали скачать некий файл. Однако на том же Reddit появлялись сообщения о более нехороших методах эксплуатации бага, к примеру, эксплоит мог заставить жертву потратить средства из Steam-кошелька на какие-либо покупки на внутренней торговой площадке сервиса.
Аналитик компании SentinelOne Джеримайя Гроссман (Jeremiah Grossman) и вовсе предупредил, что при помощи XSS-уязвимости можно похитить аутентификационные куки, а это наделяет проблему потенциалом червя. То есть теоретически эксплоит мог размножаться самостоятельно, «заражая» все больше и больше пользовательских профилей и перехватывая контроль над ними. К счастью, ситуация не успела дойти до такой стадии, и эпидемии не случилось.
В настоящий момент уязвимость устранена, хотя до сих пор неясно, как давно существовал данный баг. Разработчики Valve не дают комментариев о случившемся, но, судя по всему, проблему окончательно исправили еще утром 8 февраля (по московскому времени). На Reddit всем пользователям, кто просматривал чужие профили, настоятельно рекомендуют на всякий случай сменить пароли и включить двухфакторную аутентификацию. Также модераторы в целом советуют отключать JavaScript в браузере и не кликать на подозрительные ссылки, даже если они, казалось бы, ведут в чей-то профиль Steam.