Описание
Особенность WordPress’а, которая редиректит пользователя после авторизации, может быть использована для фишинговых целей.
Параметр ‘redirect_to’ обычно содержит относительный URL, на который будет произведен редирект после успешной попытки авторизации.
Например: /wordpress/wp-admin/index.php
Тем не менее, этот параметр также позволяет использовать абсолютные URL, не принадлежащие данному сайту.
Например: http://legitimate.com/wordpress/wp-login.php?redirect_to=http://evil.com
или
http://legitimate.com/wordpress/wp-login.php?redirect_to=http://%65%76%69%6c%2e%63%6f%6d
(в шестнадцатиричном виде для целей сокрытия)
где ‘http://evil.com’ - сайт, на котором будет расположена страница авторизации Wordpress.
Сценарий атаки
- Злоумыуленник запускает фишинг-атаку против жертвы, используя URL:
http://legitimate.com/wordpress/wp-login.php?redirect_to=http://%65%76%69%6c%2e%63%6f%6d
- Жертва заходит на сайт и проходит успешную попытку авторизации.
- Жертва редиректится на evil.com, где расположена ложная страница авторизации, которая выглядит так же, как и оригинальная. Эта страница содержит сообщение об ошибке авторизации.
Например, “ERROR: Invalid username.”
- Жертва думает, что он/она неправильно ввел/ввела логин и повторяет попытку.
- Авторизационные данные оказываются у злоумышленника.
Тестируемые версии
Wordpress 2.2.1
Благодарности
Adrian Pastor
Решение проблемы
Разрешить редиректы только относительные URL.
Разработчики работают над решением проблемы без значительных изменений функциональности.
Оригинал (на англ.)