Как идентифицировать разные типы капч

Капча (англ. CAPTCHA) – технология, предназначенная для обеспечения безопасности на веб-сайтах. Она защищает сайты от спама, кражи данных, DDoS-атак и других злонамеренных автоматизированных действий.
Капчи постоянно обновляются и совершенствуются, всё больше препятствуя работе скриптов, которые могут быть потенциально опасными. Чтобы проверить посетителей сайта и определить, являются они реальными людьми или роботами, разработчики создают различные методы проверок и целые системы для защиты данных. Пользователям могут предложить ввести текст, выбрать изображение, решить пазл или распознать искаженную аудиозапись. Современные технологии также всё больше стремятся минимизировать неудобства для реальных пользователей, позволяют проводить проверку в фоновом режиме, не требуя никаких действий, и активируют её только при подозрении на использование автоматизации.
Данная статья поможет вам определить тип защиты на сайте и понять общие механизмы её работы благодаря поиску специфичных элементов в HTML-коде.
Капча – замечательный способ сохранить безопасность на сайтах. Общие этапы работы систем защиты на целевых сайтах следующие:
CAPTCHA генерирует задачу, которую нужно решить. Это может быть искажённый текст, набор изображений, аудио или интерактивный элемент, как слайдер. Чтобы усложнить задачу для ботов, текст может быть искажён, а аудио – загромождён шумом.
Капча добавляется на веб-страницу в виде видимого элемента, например, текстового поля, изображения или слайдера. Для некоторых капч, как Google reCAPTCHA, скрипты загружаются с серверов для отображения в реальном времени.
Пользователь взаимодействует с CAPTCHA – вводит текст, выбирает изображения или двигает слайдер. Когда задача завершена, ответ отправляется на сервер для проверки.
Сервер проверяет правильность ответа, соответствует ли взаимодействие требованиям. Современные капчи также смотрят на поведение пользователя: как часто он делает запросы, использует ли JavaScript, как двигает мышь и вводит текст.
Результат проверки:
Успех: если ответ верен или поведение выглядит естественно, доступ предоставляется.
Неудача: если ответ неверный или поведение вызывает подозрения, CAPTCHA может предложить повторную проверку или заблокировать доступ.
Разработчики ботов не стоят на месте, и простые текстовые капчи уже не всегда способны эффективно различать реальных пользователей и автоматические системы. Современные технологии тоже постоянно развиваются, предлагая всё более сложные и комбинированные методы защиты сайтов. Давайте немного пройдёмся по этим способам:
1. Анализ HTTP-запросов и ответов
Анализируются заголовки запроса и ответа – User-Agent, Referer, Accept-Language и Cookies. Отсутствие стандартных значений может указывать на автоматизацию.
Проверяются параметры в URL и POST-запросах на наличие подозрительных или нестандартных значений.
Измеряется частота запросов с одного IP-адреса. Слишком высокая частота может свидетельствовать о бот-активности.
Проверяется наличие и корректность куки, используемых для идентификации сессий и предотвращения повторных атак.
2. Анализ TCP/IP
Анализируются особенности установления и разрыва TCP-сессий – время соединения, частота запросов и задержки. Боты могут проявлять необычное поведение по сравнению с реальными пользователями.
Проверяется характер передачи пакетов, наличие повторяющихся шаблонов или нетипичных задержек, которые могут указывать на автоматизацию.
3. Анализ TLS-сессий
Проверяются сертификаты для выявления подозрительных или поддельных сертификатов. Необычные значения в сертификатах могут свидетельствовать о попытке обхода защиты.
Оценивается использование шифрования и корректность процесса декодирования данных (боты могут иметь проблемы с обработкой шифрования).
4. Fingerprint (отпечаток устройства)
Профилирование браузера – собираются данные о браузере, например, версия, плагины, шрифты и настройки JavaScript. Это помогает отличить реальных пользователей от ботов.
Анализируются характеристики устройства – разрешение экрана, настройки операционной системы и тип устройства. Боты часто используют виртуальные или непривычные устройства.
Оценивается поведение пользователя – движение мыши, скорость набора текста и частота взаимодействий.
Часто при посещении определённых сайтов пользователи сталкиваются с капчей, но не всегда понимают, что это за капча и как она называется. Чтобы определить её тип, воспользуйтесь Инструментом разработчика (DevTools) и следуйте этим простым шагам:
Откройте DevTools: нажмите Ctrl+Shift+I (или Cmd+Option+I на Mac) или просто кликните правой кнопкой мыши на странице и выберите "Просмотреть код" (Insert).
Перейдите во вкладку Elements: здесь отображается HTML-код страницы. Используйте её, чтобы найти нужный элемент капчи.
Найдите элемент капчи: кликните на иконку выбора элемента (выглядит как стрелочка в левом верхнем углу панели DevTools) и выберите капчу на странице, выделив соответствующий HTML-код.
Изучите HTML и атрибуты: посмотрите на HTML-код выделенного элемента. Капча имеет уникальные идентификаторы или классы, которые помогут определить её тип (например, class="g-recaptcha" для Google reCAPTCHA).
Перейдите на вкладку Сеть (Network) и обновите страницу, если нужно. Здесь можно увидеть все сетевые запросы, связанные с капчей. Поиск запросов к API или скриптам может дать подсказки.
Во вкладке Источники (Sources) или Сеть (Network) найдите скрипты, которые загружают или инициализируют капчу, это может дать дополнительную информацию о её типе и источнике.
Смело используйте этот полезный инструмент! Экспериментируйте с разными элементами, и вы не только узнаете, какой тип капчи используется, но и получите представление о работе других интересных элементов и объектов, связанных с капчей.
Для людей прохождение CAPTCHA обычно не представляет сложности, но для ботов это становится серьёзным барьером. Хотя многие автоматизированные системы используются не во вред, а для тестирования сайтов, безопасного парсинга и автоматизации рутинных задач, защитные механизмы всё равно могут замедлить и усложнить их работу. Их обработка требует значительных усилий и времени для адаптации кода. Сервис CapMonster Cloud существенно упрощает этот процесс, предлагая решения для большинства популярных типов проверок:
reCAPTCHA v.2, v.3, reCAPTCHA Invisible, reCAPTCHA Enterprise (v.2 и v.3)
Чтобы отправить задачу для решения капчи на сервер CapMonster Cloud, важно знать её тип и точную версию.
Давайте более подробно разберём каждый тип капчи, её особенности и поиск её идентификационных данных, чтобы в процессе работы с веб-сайтами вы легко могли определить любую капчу и успешно разгадать её с помощью CapMonster Cloud:
reCAPTCHA разработана компанией Google. Эта технология использует комбинацию методов анализа истории браузера, поведения пользователя, IP-адреса и других индикаторов, чтобы отличить человека от робота. Если reCAPTCHA обнаруживает что-то подозрительное, пользователю может быть предложено пройти тест для подтверждения своей "человечности". Современные версии reCAPTCHA в основном включают в себя:
reCAPTCHA v2: в этом случае пользователю нужно отметить флажок "Я не робот", либо выполнить задание, например, выбрать все изображения с определённым объектом (мотоциклы, автомобили, светофоры и т.д.). В качестве альтернативы предлагается аудио-капча.
reCAPTCHA v3: эта версия не требует взаимодействия с пользователем. Она анализирует поведение пользователя на странице и присваивает ему некоторую оценку – score (1,0 – скорее всего, реальный посетитель, 0,0 – скорее всего, бот). При низкой оценке могут быть вызваны дополнительные проверки.
Invisible reCAPTCHA: относится к v2, но без видимого чекбокса. Как и v3, она запускается в фоновом режиме и требует взаимодействия с пользователем только в случае подозрительного поведения. Визуально не отличается от reCAPTCHA v3.
reCAPTCHA Enterprise: более расширенная версия для защиты веб-сайтов.
Видимую reCAPTCHA v2 можно отличить по чекбоксу и заданиям. Невидимые версии определяются по следующим при
reCAPTCHA v2 Invisible имеет элементы с атрибутами data-sitekey и data-callback:

reCAPTCHA v3 — во вкладке Сеть можно увидеть запрос с ключевым словом “render”:

reCAPTCHA Enterprise (v2 и v3) определяется по слову “enterprise” в запросах:

GeeTest предлагает интерактивные головоломки, например, выбор некоторых объектов в определённом порядке, решение пазла с передвижением ползунка или просто клик в определённом месте. GeeTest использует адаптивные технологии, чтобы минимизировать неудобства для реальных пользователей, одновременно повышая сложность для автоматизированных систем.
Этот тип капчи представлен двумя версиями: v3 и v4 (Adaptive CAPTCHA). Четвёртая версия отличается большей гибкостью — она автоматически регулирует сложность задачи. Для реальных пользователей капча остаётся простой и легко решаемой, но если система заподозрит автоматизацию, уровень сложности, соответственно, возрастёт. Как и во многих других типах капчи, в качестве альтернативного прохождения имеется аудио-режим.
Эта версия поддерживает несколько режимов капчи: Intelligent mode, Slide CAPTCHA, Icon CAPTCHA и Space CAPTCHA . Ниже представлены примеры интерфейсов различных типов заданий:

Slide CAPTCHA

Icon CAPTCHA

Intelligent mode
Аналогично третьей версии, также имеет несколько основных режимов прохождения: Slide CAPTCHA, Icon CAPTCHA, IconCrush CAPTCHA, Image CAPTCHA, Gobang CAPTCHA, NoCAPTCHA . Ниже представлены примеры интерфейсов различных типов заданий:

Slide CAPTCHA

Icon CAPTCHA

NoCAPTCHA
Самый простой для пользователя режим: достаточно нажать кнопку “Click to verify”. Если фоновая проверка подтверждает, что действие выполняет человек, отображается сообщение “Verification Success”.
Отличить версии GeeTest с помощью Инструментов разработчика (DevTools) можно по структуре запросов, используемым параметрам и подключаемым скриптам.
GeeTest v3
Использует два основных параметра инициализации: gt (GeeTest ID) и challenge (уникальный идентификатор сессии).
Скрипт капчи часто загружается с URL-адресов, содержащих путь /gt.js.
Отправляет запросы на сервер с путями /validate.php или /get.php.

GeeTest v4
Скрипты и запросы версии 4 часто содержат путь или упоминание v4.
Вместо параметра gt используется captcha_id.
Параметры обычно можно найти в сетевых запросах или в конфигурации инициализации капчи.

Cloudflare предлагает современные механизмы проверки пользователей без классических CAPTCHA с изображениями. Проверка может выполняться как по нажатию кнопки “Verify you are human”, так и полностью в фоновом режиме — на основе параметров браузера, поведения пользователя и сетевых сигналов. Если проверка проходит успешно, доступ к сайту разрешается; в противном случае запрос может быть ограничен или заблокирован.
Основные механизмы проверки Cloudflare: Turnstile и Challenge Page.
Turnstile — это встроенный на сайте виджет проверки пользователя. В зависимости от настроек сайта и уровня доверия к запросу Cloudflare может использовать разные режимы проверки:
Неинтерактивная проверка — выполняется полностью автоматически, без действий со стороны пользователя.
Неинвазивная интерактивная проверка — при подозрительной активности может потребоваться минимальное взаимодействие.
Невидимая проверка — выполняется в фоновом режиме без отображения элементов интерфейса.


Неинтерактивная проверка

Неинвазивная интерактивная проверка
В отличие от Turnstile, механизм Challenge Page открывает отдельную страницу проверки перед доступом к целевому сайту. Пользователю может потребоваться дождаться завершения автоматической проверки, подождать несколько секунд или подтвердить действие нажатием кнопки “Verify you are human”.
Такой механизм считается более навязчивым, поскольку временно ограничивает доступ к сайту до завершения проверки.
Основные типы проверок Challenge Page:
Managed Challenge — Cloudflare автоматически выбирает оптимальный способ проверки.
JS Challenge — выполняется автоматически с помощью JavaScript.
Интерактивная проверка — требует взаимодействия с элементами страницы проверки.

Пример отдельной страницы проверки Cloudflare Challenge
При анализе через DevTools наличие Challenge Page часто можно определить по тому, что первый запрос к целевому сайту возвращает HTTP-статус 403, после чего пользователь перенаправляется на страницу проверки.

HTTP 403 и перенаправление на Cloudflare Challenge
Это тип капчи, который при проверке просит пользователя распознать и ввести текст, отображаемый на изображении. Он может состоять из букв, цифр, слов или специальных символов. Раньше это был один из самых популярных способов защиты от ботов, но сегодня он встречается всё реже, уступая место более современным решениям.

Определить наличие ImageToText CAPTCHA можно по следующим признакам:
Наличие изображения с текстом CAPTCHA
Поле для ввода распознанного текста
Использование тега <img> и <input type="text">

Для поиска элемента <img>, который загружает изображение CAPTCHA, можно использовать JavaScript в консоли:
document.querySelector('img[src*="captcha"]');
Как и другие аналогичные продвинутые системы, DataDome использует серверные и клиентские методы для обнаружения ботов, анализируя поведение пользователей, их геолокацию, сетевые данные, отпечатки браузеров и другие параметры с помощью многослойных алгоритмов машинного обучения. DataDome способен даже определить автоматизированные браузеры (Selenium, Puppeteer, Playwright), а также может использовать обфускацию JavaScript для затруднения анализа своего кода.
DataDome предлагает слайдерный метод проверки
Определить наличие защиты DataDome на сайте позволяет загрузка JavaScript файла от DataDome:
DataDome содержит специфичные cookies (можно получить на странице с помощью "document.cookie" или в заголовке запроса Set-Cookie: "datadome=..."), например:
"datadomeCookie": "datadome=VYUWrgJ9ap4zmXq8Mgbp...64emvUPeON45z"
TenDI Captcha тоже использует передовые и продвинутые комплексные методы проверки пользователей, включая анализ траектории, идентификацию характеристик и другие механизмы безопасности. Реальный пользователь может и не заметить наличия проверки на целевом сайте, но если система заподозрит использование автоматизации, тогда может инициироваться капча.
Tencent captcha предоставляет несколько типов проверки:

Слайдер CAPTCHA

Графическая CAPTCHA

Непрерывная CAPTCHA
Также доступна аудио-проверка, при которой пользователю нужно ввести текст, услышанный в аудиофрагменте. Кроме того, применяется Smart-проверка — интеллектуальный механизм, который анализирует поведение пользователя и запускает проверку только в случае подозрительной активности.
Определить наличие Tencent проверки на сайте можно, например, по загружаемому скрипту TCaptcha:
В запросах используется URL – https://ca.turing.captcha.qcloud.com
Captcha и Challenge от AWS WAF (веб-сервис Amazon) – два механизма проверки пользователей для защиты сайтов. Чем они отличаются:
CAPTCHA предлагает пользователю решить задачи, такие как ввод текста (используется реже), перемещение слайдера, выделение объектов на изображении или прослушивание и ввод слов из аудио.
Challenge работает в фоновом режиме, анализируя параметры сессии и поведение запросов (частота запросов, JS, поведение мыши, куки). При успехе пользователь продолжает работу, иначе может быть показана CAPTCHA или блокировка.
CAPTCHA может выглядеть так:

Выбор объектов на изображении

Слайдер

Выделение/перемещение объектов

Аудио CAPTCHA
В коде капчи присутствует window.gokuProps скрипт, а также ссылки на challenge.js и captcha.js:

Итак, мы разобрали основные популярные типы капч, их общее функционирование и способы идентификации. Конечно, существует ещё множество других аналогичных видов капч, но, опираясь на информацию из этой статьи, вы легко сможете определить их тип и продолжить с ними работу. Каждая капча уникальна и имеет свои методы защиты — от традиционных текстовых вариантов до современных адаптивных систем. Мир технологий не стоит на месте, и важно следить за новыми изменениями в методах защиты.
Надеемся, что данная статья оказалась для вас полезной и помогла разобраться в различных аспектах капч и их обходе. Советуем вам экспериментировать с Инструментами разработчика, чтобы лучше понять, как работают эти системы, и использовать CapMonster Cloud для эффективного решения задач, связанных с капчами!
NB: Пожалуйста, обратите внимание, что продукт предназначен для автоматизации тестирования исключительно ваших собственных веб-сайтов и ресурсов, к которым у вас есть законное право доступа.
Узнайте, что такое динамические параметры CAPTCHA, как их определить и извлечь, а также научитесь эффективно решать CAPTCHA с изменяющимися данными.