Закодированные URL: как мошенники прячут ссылки в коде
Многие пользователи замечали в ссылках странные символы вроде %20, %2F или %40 и не понимали, что они означают. Это называется процентным кодированием (percent-encoding) — стандартный механизм URL для передачи специальных символов. Сам по себе он совершенно легитимен, но мошенники научились использовать его для маскировки вредоносных доменов и обхода фильтров безопасности.
Что такое процентное кодирование
Стандарт URL (RFC 3986) разрешает использовать в адресах только определённый набор символов. Остальные нужно кодировать. Кодирование выглядит так: символ заменяется знаком процента и двумя шестнадцатеричными цифрами его ASCII-кода.
Часто встречающиеся кодированные символы:
- %20 — пробел
- %2F — косая черта /
- %40 — символ @
- %3A — двоеточие :
- %2E — точка .
- %61 — буква a
- %72 — буква r
Легитимное использование: когда вы ищете «что такое фишинг» в Google, в URL появляется %20 или + между словами — это нормально. Кодирование пространства в пути или кириллицы в параметрах — стандартная практика.
Как мошенники злоупотребляют кодированием
Кодирование букв домена
Теоретически браузер декодирует %XX при отображении URL, но фильтры безопасности, проверяющие ссылки в сыром виде, могут пропустить закодированный вредоносный домен. Например: http://%73%62%65%72%62%61%6E%6B-steal.ru — при декодировании это http://sberbank-steal.ru.
Трюк с символом @
В URL символ @ служит разделителем между учётными данными и хостом: user:pass@host. Например, https://sberbank.ru%40phishing-site.ru/ — браузер интерпретирует sberbank.ru как «имя пользователя», а реальный домен — phishing-site.ru. Это умная маскировка, потому что в начале URL стоит знакомое sberbank.ru.
Кодирование косой черты
%2F — это /. В некоторых ситуациях закодированная косая черта не воспринимается как разделитель пути, что позволяет создать обманчивую структуру URL: https://legit.ru/path%2Fsberbank — не переходит к sberbank.ru, а остаётся на legit.ru с необычным путём.
Примеры реальных атак
Фишинговые письма нередко содержат ссылки вида:
- https://secure.sberbank.ru%40malicious-site.ru/login — ведёт на malicious-site.ru
- https://ozon-verify.ru/%73%74%65%61%6C — путь декодируется как /steal
- https://gosuslugi.ru.confirm-identity%2Eru/ — точка закодирована, реальный домен читается иначе
Большинство современных браузеров научились распознавать трюк с @, но старые версии и некоторые почтовые клиенты могут быть уязвимы.
Как 2check.click декодирует URL
Анализатор автоматически применяет полное процентное декодирование ко всем компонентам URL. Особое внимание уделяется:
- Декодированию символов в домене — выявление скрытых букв
- Обнаружению символа @ в URL — анализ возможного трюка с «пользователем»
- Декодированию параметров запроса — поиск скрытых URL в значениях параметров
- Рекурсивному декодированию — иногда URL закодирован несколько раз подряд
Как проверить кодированную ссылку вручную
Если вы хотите самостоятельно декодировать URL:
- Скопируйте URL
- Вставьте в любой онлайн-декодер URL (ищите «URL decode online»)
- Прочитайте декодированный результат
- Проверьте декодированный URL в 2check.click
Или просто вставьте оригинальную ссылку напрямую в 2check.click — анализатор выполнит декодирование автоматически.
Проверьте подозрительную ссылку
Вставьте URL, SMS или QR-код в 2check.click — сервис проверит домен, редиректы, возраст домена и другие признаки фишинга.
Часто задаваемые вопросы
Если в URL много символов %XX — это всегда плохо?
Нет. Кириллица в URL кодируется в %XX — это нормально. %20 в строке поиска — нормально. Подозрительно, когда кодируются буквы домена (латинские буквы a–z не нуждаются в кодировании в домене) или когда кодирование явно используется для сокрытия структуры адреса.
Что такое двойное кодирование?
Двойное кодирование — это когда % кодируется как %25, так что %252F — это закодированный %2F, то есть /. Некоторые системы декодируют только один раз и пропускают такую обфускацию. 2check.click применяет рекурсивное декодирование.
Как трюк с @ работает в деталях?
В синтаксисе URL https://user:password@hostname/ часть до @ — это учётные данные (не отображаются как домен). Мошенники вставляют имя доверенного домена до @ и реальный вредоносный домен после: https://sberbank.ru@phishing.ru/. Часть «sberbank.ru» — это «пользователь», реальный домен — phishing.ru.
Декодирует ли браузер URL автоматически?
Браузер декодирует URL при отображении в адресной строке, но это не всегда защищает от трюков с @. Фильтры почтовых сервисов могут анализировать URL до декодирования, пропуская обфускацию.
Где можно прочитать технический стандарт URL?
Основной стандарт описан в RFC 3986 (URI) и RFC 3987 (IRI для Unicode). Но для практической проверки безопасности ссылок знать стандарты досконально не нужно — достаточно использовать надёжный анализатор.