Открытые редиректы: когда настоящая надёжная ссылка ведёт к злоумышленнику

Обновлено 27 сентября 2026 г.

Наводишь курсор на ссылку, видишь google.com или название хорошо знакомого сайта — и переходишь по ней без опаски. Однако попадаешь на фишинговую страницу. Это не ошибка отображения и не подделка адреса: ссылка действительно изначально вела на настоящий сайт. Это механика открытого редиректа (open redirect).

Что такое открытый редирект?

Многие сайты предлагают совершенно легитимную функцию: перенаправлять посетителя на другой адрес после какого-либо действия, например после входа в систему, клика по спонсорской ссылке или через сокращатель ссылок. Сайт получает в своём URL адрес назначения, а затем отправляет браузер по этому адресу.

Уязвимость возникает, когда сайт принимает любой адрес назначения, не проверяя, входит ли он в список разрешённых. Разработчики создали полезный сервис редиректов; они просто забыли закрыть чёрный ход. Тогда кто угодно может сделать ссылку, которая начинается с имени доверенного сайта, но в итоге ведёт совсем в другое место — к злоумышленнику.

Анатомия ловушки в ссылке

Возьмём намеренно упрощённый пример структуры:

https://www.google.com/url?q=https://site-pirate.example

Эта ссылка действительно открывается на серверах Google: доменное имя google.com подлинное, и в адресной строке об этом ничего не лжёт. Но параметр ?q= несёт второй адрес, который становится настоящим пунктом назначения после срабатывания редиректа. Тот же приём встречается и с другими не менее распространёнными именами параметров: ?dest=, ?redirect=, ?target=, ?next=, или же ?url=. Заметить одно из этих ключевых слов сразу после знака вопроса, за которым следует второй веб-адрес, — самый простой сигнал, за которым стоит следить.

Разбор ссылки https://www.google.com/url?q=https://site-pirate.example на две зоны: слева, зелёным, настоящий домен google.com/url, подлинный и проверенный браузером; справа, красным, параметр ?q=, за которым следует настоящий пункт назначения, site-pirate.example, который браузер загрузит после редиректа.
Рисунок 1: домен, показанный первым, настоящий; настоящий пункт назначения скрыт после параметра.

Почему злоумышленники обожают эту технику

Этот метод решает для злоумышленника сразу две проблемы.

  • Обход спам-фильтров. Шлюзы безопасности почты (Secure Email Gateways) присваивают оценку доверия доменам, присутствующим в письме. Ссылка, начинающаяся с чрезвычайно репутационного домена, например поисковика или крупной социальной сети, часто получает отличную оценку, даже если фильтр никогда не смотрит на скрытую часть ссылки.
  • Манипуляция человеческим восприятием. Осторожный человек привык проверять доменное имя перед тем, как кликнуть. Столкнувшись с такой ссылкой, эта проверка играет против него: он ясно видит название официального бренда в самом начале адреса и на этом останавливается, не читая дальше.

Таким образом, приём пользуется доверием — как техническим (оценка спам-фильтра), так и человеческим (рефлекс чтения), — не имитируя при этом ни домен, ни серверы доверенного сайта.

Под капотом: коды 301, 302 и цепочки редиректов

Технически редирект разыгрывается в очень коротком ответе сервера браузеру. Сервер отвечает кодом состояния HTTP, не показывая никакой видимой страницы: 302 — для временного редиректа, 301 — для постоянного. Браузер немедленно подчиняется и загружает следующий адрес, а пользователь ничего не видит.

Ничто не мешает выстроить цепочку из нескольких редиректов подряд: очень репутационный домен A ведёт к более скромному и, в свою очередь, уязвимому домену B, а тот — к финальной фишинговой странице. Каждое дополнительное звено ещё больше запутывает след и усложняет работу тому, кто захотел бы проследить ссылку до её источника, просто взглянув на неё.

Цепочка из трёх звеньев, соединённых стрелками: домен A, очень репутационный, с кодом ответа 302, ведёт к домену B, уязвимому, с кодом 301, который сам ведёт к финальной фишинговой странице; каждое звено означает, что браузер подчиняется, ничего не отображая на экране.
Рисунок 2: несколько последовательных редиректов могут выстроиться в цепочку перед тем, как попасть на ловушку.

Как распознать ловушку и отреагировать

Правильный метод состоит в том, чтобы читать полный адрес слева направо, не останавливаясь на первом узнанном имени. Сигнал, который нужно искать, прост: второй http:// или https://, спрятанный дальше в той же строке, почти всегда сигнализирует об открытом редиректе, как и наличие параметра вроде ?q= или ?url= прямо перед ним. Эта бдительность перекликается с той, что нужна для чтения обманчивого доменного имени другими способами, например через похожие буквы: см. руководство Punycode и омографы.

Чтобы проверить пункт назначения без всякого риска, можно вставить адрес в онлайн-резолвер ссылок или запустить команду curl -I из терминала: сервер ответит кодом редиректа и конечным пунктом назначения, ни разу не загрузив страницу в браузере.

Полезны два сообщения, касающиеся двух разных сторон. Сначала уведомляют компанию, чей домен служит отправной точкой (например, через её форму безопасности или адрес, посвящённый уязвимостям), чтобы она исправила непроверяемый параметр в своём коде. Затем уведомляют хостинг-провайдера конечной страницы, точно так же, как в случае с любой фишинговой страницей (см. как найти нужный адрес abuse@ у хостинг-провайдера), поскольку именно он может заставить её исчезнуть.

Письмо, содержащее подобную ссылку, остаётся, помимо прочего, письмом, отправленным настоящим сервером, со своим собственным следом: см. руководство Анализ фишинга: от сообщения до инфраструктуры. Вставив полное письмо в Baitback, инструмент сам проследит всю цепочку редиректов вплоть до финальной страницы, без необходимости кликать или открывать терминал.

Что важно запомнить
  • Открытый редирект — это легитимная функция, использованная не по назначению: исходный сайт настоящий, пункт назначения — не обязательно.
  • Параметры, за которыми стоит следить, выглядят как ?q=, ?url=, ?redirect=, ?dest=, ?target= или ?next=.
  • Эта техника обманывает как спам-фильтры, благодаря репутации первого домена, так и человеческое восприятие, которое часто останавливается слишком рано.
  • Коды 301 и 302 позволяют выстроить цепочку из нескольких невидимых редиректов перед тем, как попасть на ловушку.
  • Нужно читать ссылку целиком и уведомлять как исходный сайт (чтобы он исправил уязвимость), так и хостинг-провайдера конечной страницы.

Получили подозрительное письмо?

Вставьте его в Baitback: сервис найдёт сервер, с которого оно было отправлено, и его хостинг-провайдера, а затем подготовит ваши жалобы за один шаг.

Проверить письмо

Все руководства