← → листать · F фуллскрин
Внутренний доклад · brand protection

Клоакинг

Один URL показывает разным людям разное — как это устроено, как воспроизвести и как подтвердить.

что видим мы что видит жертва wkiseven · 2026
https://site.top
Проверяющий
заглушка · пусто · «страница не найдена»
Жертва / клиент
зеркало казино · фишинг · развод
Определение

Что такое клоакинг

Сервер отдаёт разный контент на один и тот же URL — решает по тому, кто открывает ссылку. Витрина остаётся «чистой», а цель видит только нужный трафик.

https://site.top ← один адрес
Проверяющий — модератор · поисковик · мы
Видит безобидную страницу
заглушка · пустой ответ · чужой сайт · 404 / 403
Целевой посетитель — трафик рекламы
Видит настоящую цель
зеркало казино · фишинговая форма · скам

Зачем: спрятаться от модерации, жалоб и блокировок. Наша задача — заставить сервер принять нас за «жертву» и зафиксировать разницу.

Наш фронт работ

Где мы это встречаем

Зеркала казино

Тысячи одноразовых доменов, клонирующих топовые казино и букмекеров. Открываются по «правильному» переходу, живут дни — забанили один, поднялся десяток.

# типовой шаблон домена casino-a-8p408.sbs bet-b-xqv49.sbs poker-c-kt3np.top casino-d-zrq72.top
Фишинг

Поддельные формы входа и «оплаты». Ссылка часто персональная — с кодом в параметре, приходит жертве в рассылке. Без кода страница выглядит невинно.

# ссылка живёт под один заход bank-secure.tld/auth?id=A1B2C3 # без кода → заглушка / редирект

Общее одно: пока не выполнено условие клоаки — цель не показывается. Значит, наша работа — воспроизвести это условие.

Карта признаков

По каким сигналам сервер узнаёт, кто пришёл

Всё это есть в любом запросе. По этим же ручкам мы и «прикидываемся» целевым посетителем.

01
Referer
откуда перешёл — поиск, реклама, прямой заход
02
Параметр в ссылке
секретный код в адресе: ?id=… · /?key=…
03
IP · страна · ASN
где физически находится и из какой сети
04
User-Agent
устройство и клиент: телефон, ПК, поисковый бот
05
Cookie · визиты · время
первый ли это заход и когда именно
Тип 01 · Referer

Переход «из поиска»

Зеркало открывается, только если заголовок Referer выглядит как переход из выдачи Яндекса. Прямой заход — пусто.

✓
Referer = ya.ru/search → отдаёт казино
✕
без Referer / чужой → 404 · пусто · редирект · белая заглушка

В браузере: ModHeader / Requestly → добавить request-заголовок Referer и открыть домен.

как воспроизвести
referer.sh
# 1) база — без реферера $ curl -sSIL https://casino-a-8p408.sbs # 2) с «переходом из Яндекса» $ curl -sSIL https://casino-a-8p408.sbs \ -H 'Referer: https://ya.ru/search/?text=casino' # сравниваем ответ: # HTTP-код · Content-Length · Location · <title>
Тип 02 · Параметр в ссылке

Секретный код в адресе

Частый приём в фишинге. Цель показывается только с правильным кодом в параметре. Ссылка адресная — из SMS, мессенджера, письма.

✓
с кодом из рассылки → фишинговая страница
✕
без кода / чужой → заглушка или редирект на настоящий сайт

Ключевое: проверять нужно именно тем самым кодом из перехваченной рассылки — не выдуманным.

как воспроизвести
getcode.sh
# ссылка из рассылки — с кодом $ curl -sSL 'https://bank-secure.tld/auth?id=A1B2C3' -o victim.html # тот же путь без кода $ curl -sSL 'https://bank-secure.tld/auth' -o clean.html # быстрый diff по размеру и заголовку $ wc -c victim.html clean.html $ grep -o '<title>[^<]*' victim.html clean.html
Тип 03 · IP · гео · ASN

Правильный IP и страна

Контент отдают только «нужному» IP: правильная страна и обычный домашний провайдер. Дата-центры, VPN и сети проверяющих — режут.

✓
резидентный / мобильный RU-IP → цель
✕
дата-центр · VPN · чужое гео → пусто · редирект · 404

Проверить гео: сначала прогнать прокси через IP-эхо, убедиться, что видимая страна и ASN — жилые.

как воспроизвести
geo.sh
# с резидентного IP нужной страны $ curl -sSIL https://target.tld \ --proxy http://user:pass@ru-resi.pool:8000 # с нашего дата-центра — для сравнения $ curl -sSIL https://target.tld # проверка, что прокси реально RU/жилой $ curl -s --proxy $P https://ipinfo.io/json
Тип 04 · User-Agent

Устройство и боты

Сервер смотрит User-Agent и подбирает контент: мобильным — цель, поисковым ботам — чистый SEO-текст, десктопу — заглушку.

📱
iPhone / Android → настоящая цель
🖥
десктоп → заглушка / чужой сайт
🤖
Googlebot / YandexBot → SEO-версия под индекс
как воспроизвести
ua.sh
# мобильный Safari $ IOS='Mozilla/5.0 (iPhone; CPU iPhone OS 17_2…) Mobile/15E148' # поисковый бот $ BOT='Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)' $ curl -sSIL https://target.tld -A "$IOS" $ curl -sSIL https://target.tld -A "$BOT" $ curl -sSIL https://target.tld # десктоп

В браузере: DevTools → Device toolbar / переопределение User-Agent.

Тип 05 · Cookie · TDS · время

Визиты, трекеры, расписание

Самые хитрые фильтры помнят посетителя и раздают трафик по правилам через TDS (Keitaro-подобные).

1×
один показ на посетителя → второй заход уже чистый (cookie)
⇄
TDS-правила → источник · гео · устройство · лимиты
⏱
расписание → только в часы открутки трафика
как воспроизвести
clean-session.sh
# curl без cookie = всегда «первый заход» $ curl -sSIL https://target.tld # браузер: каждый раз новый чистый контекст $ npx playwright open --device='iPhone 14' https://target.tld # → пустые cookie, новый профиль; # повторить в разное время суток

Вывод: проверять в чистой сессии и не по одному разу.

Практика

Инструментарий аналитика

01
curl
Массовая проверка. Ручки: -H заголовки, -A UA, -e referer, --proxy, -L редиректы, -I только шапка.
02
ModHeader · Requestly
Подмена заголовков прямо в браузере — Referer, User-Agent — чтобы увидеть цель глазами.
03
Резидентные / мобильные прокси
Гео RU и «жилые» ASN. Обязательно проверять видимую страну через IP-эхо.
04
Playwright · Puppeteer
JS-рендер, эмуляция устройств, чистый контекст на каждую проверку.
05
Чем сравниваем ответы
HTTP-код Content-Length / размер <title> хэш тела (md5/sha1) финальный URL после редиректов
Методика проверки

Как подтверждаем и что фиксируем

1
Базовый снимок
Запрос без условий → зафиксировать код · размер · title.
2
Одно условие
Добавить ровно один сигнал — Referer / UA / гео / cookie — и повторить.
3
Diff
Сравнить ответы. Изменилось — есть клоака по этому признаку.
4
Глазами
Подтвердить в браузере: ModHeader + прокси нужного гео.
5
Доказательство
Пара скринов «проверяющий vs жертва» + таблица условие → ответ.

Что попадает в отчёт

  • URL и дата/время (с таймзоной)
  • условие, при котором открылась цель
  • HTTP-код и размер ответа
  • <title> и финальный URL
  • 2 скрина: чистое состояние и цель
Клоаку подтверждает не одно открытие, а разница ответов при смене одного условия. Меняем один параметр — фиксируем, что поменялось.
Масштаб · за неделю

Только верхушка

439
зеркал казино — только из органической выдачи за неделю. Это не весь пул: домены одноразовые, реальный объём кратно больше.
11брендов
88%в 5 зонах
~0живут долго
бренд A
92
бренд B
68
бренд C
67
бренд D
48
бренд E
44
бренд F
37
бренд G
33
Домены собраны по шаблону бренд-xxxxx.tld в дешёвых зонах .top · .cfd · .buzz · .cam · .sbs — массовая автогенерация.
Практикум · попробуй обойти

Стенд для тренировки

Четыре страницы с настоящей серверной клоакой. Задача — заставить сервер показать цель и снять флаг теми же приёмами: curl, ModHeader, подмена UA, чистая сессия.

/lab/referer
Referer-гейт
открой как «из поиска Яндекса»
/lab/getcode
GET-код
подставь код из «рассылки»
/lab/useragent
User-Agent
притворись мобильным
/lab/cookie
Первый заход
поймай цель в чистой сессии
стенд training.wki7.ru/lab — открой и сними флаги
Клоакинг · brand protection