Looking for international version of our service? Go to 2captcha.com

Туториалы по обходу капчи

Как обойти Amazon CAPTCHA

Как распознать, решить и обойти Amazon капчу с помощью API

Эта статья описывает, как обойти Amazon CAPTCHA, также известную как AWS WAF CAPTCHA. Многие пользователи сталкиваются с этой проблемой, особенно те, кто занимается автоматизацией задач или часто взаимодействует с сервисами Amazon. Цель этой статьи — предоставить подробное руководство по эффективному обходу CAPTCHA. Ниже мы рассмотрим пошаговый процесс обхода этого типа CAPTCHA с использованием ruCaptcha API v2.

Amazon CAPTCHA — это система безопасности, которая предлагает пользователю выполнить одну из трех задач:

  1. Задача с изображениями. Необходимо выбрать все изображения в сетке, содержащие определенный объект.
  2. Определение конечной точки. Пользователю показывается задание, в котором нужно определить, где окажется автомобиль в конце пути на иллюстрации.
  3. Аудиозадача. Она включает фоновые шумы с наложенными голосовыми инструкциями. Пользователю необходимо ввести услышанный текст в текстовое поле.

Скриншот ниже демонстрирует примеры всех трех типов задач:

Сервис 2Ccaptcha предоставляет поддержку решения AWS WAF CAPTCHA. Для работы с этим типом CAPTCHA доступны два варианта задач: AmazonTaskProxyless и AmazonTask.

  • AmazonTaskProxyless — это удобный вариант для пользователей, у которых нет собственных прокси. В этом случае для загрузки и решения CAPTCHA используется внутренний пул прокси-серверов ruCaptcha.
  • AmazonTask — этот метод подходит для тех, кто хочет использовать свои прокси для большей гибкости или для выполнения специфических требований. В этом случае для загрузки и решения CAPTCHA используются предоставленные пользователем прокси-серверы.

CAPTCHA AWS WAF соответствует требованиям доступности и включает аудиозадачу. Это позволяет решить её с использованием нашего метода распознавания аудио.

Тем не менее, мы рекомендуем сначала использовать специально разработанный метод, описанный выше. Этот подход обеспечивает более эффективное и быстрое получение решения. Аудиометод следует рассматривать как альтернативу в случае необходимости.


Решение Amazon CAPTCHA шаг за шагом

Подготовка

  1. Аккаунт ruCaptcha. Вы можете создать его на сайте ruCaptcha.
  2. API-ключ ruCaptcha, который можно найти в личном кабинете.
  3. Базовые знания любого языка программирования для интеграции API.

Шаг 1: Поиск параметров Amazon CAPTCHA

🎯 Цель Шага 1 — определить параметры Amazon CAPTCHA и составить JSON, содержащий корректные значения параметров.

Для решения Amazon CAPTCHA необходимо отправить параметры websiteKey, iv и context найденной CAPTCHA в наш API. Эти параметры можно найти в исходном коде страницы.

Пример найденных параметров Amazon CAPTCHA на странице:
Пример найденных параметров CAPTCHA

Важно: Amazon CAPTCHA имеет специфические особенности, которые усложняют процесс успешного решения:

  1. Обновление параметров iv и context. Для решения Amazon CAPTCHA необходимо каждый раз получать актуальные значения параметров iv и context. Использование устаревших значений приведет к тому, что сгенерированный токен будет недействительным.
  2. Ограниченное время на решение. Задача CAPTCHA динамически обновляется. Это означает, что у вас ограниченное время для решения и применения токена. В среднем этот интервал составляет около 30 секунд.

Формируем JSON в соответствии с документацией для метода AmazonTaskProxyless.

Финальные данные для отправки AWS CAPTCHA в формате JSON в сервис будут выглядеть так:

{
    "clientKey": "YOUR_API_KEY",
    "task": {
        "type": "AmazonTaskProxyless",
        "websiteURL": "https://efw47fpad9.execute-api.us-east-1.amazonaws.com/latest",
        "challengeScript": "https://41bcdd4fb3cb.610cd090.us-east-1.token.awswaf.com/41bcdd4fb3cb/0d21de737ccb/cd77baa6c832/challenge.js",
        "captchaScript": "https://41bcdd4fb3cb.610cd090.us-east-1.captcha.awswaf.com/41bcdd4fb3cb/0d21de737ccb/cd77baa6c832/captcha.js",
        "websiteKey": "AQIDA...wZwdADFLWk7XOA==",
        "context": "qoJYgnKsc...aormh/dYYK+Y=",
        "iv": "CgAAXFFFFSAAABVk"
    }
}

Не забудьте установить ваш apikey вместо "YOUR_API_KEY".

После создания корректного JSON необходимо перейти к следующему шагу.


Шаг 2: Создание задачи для решения Amazon CAPTCHA

🎯 Цель Шага 2 — создать задачу для решения Amazon CAPTCHA и получить taskId для созданной задачи.

Далее необходимо создать задачу для решения Amazon CAPTCHA. Для этого необходимо отправить POST-запрос с использованием метода createTask. В теле запроса необходимо отправить данные в формате JSON, сформированные на предыдущем Шаге 1.

Если вы всё сделали правильно, ответ будет содержать поле taskId. Используя полученное значение taskId, далее можно получить решение CAPTCHA.

Пример ответа для успешно созданной задачи:

{
    "errorId": 0,
    "taskId": 74372499131
}

Предоставленный выше пример ответа означает, что задача для решения CAPTCHA успешно создана. Далее работник ruCaptcha получит отправленную CAPTCHA и решит её. После успешного решения вы сможете получить результат CAPTCHA, который представляет собой токен.

На следующем шаге мы используем значение taskId, чтобы получить результат решения CAPTCHA.


Шаг 3: Получение результата решения задачи для Amazon CAPTCHA

🎯 Цель Шага 3 — получить результат успешного решения Amazon CAPTCHA. Вы должны получить JSON, содержащий объект solution.

Чтобы получить результат решения вашей Amazon CAPTCHA, необходимо отправить запрос POST на https://api.rucaptcha.com/getTaskResult, указав taskId в теле запроса. Используйте значение taskId, полученное на предыдущем Шаге 2.

Пример запроса:

{
   "clientKey": "YOUR_API_KEY", 
   "taskId": 74372499131
}

Решение CAPTCHA занимает некоторое время, обычно от 3 до 15 секунд, в зависимости от нагрузки на сервис и количества доступных работников.

На этом этапе мы проверяем, была ли решена CAPTCHA. Для этого нужно отправлять запрос getTaskResult с указанием значения taskId с интервалом около 3-5 секунд.

В зависимости от статуса CAPTCHA вы можете получить один из трех типов ответов: processing, ready или ERROR_CAPTCHA_UNSOLVABLE. Ниже приводится более подробное описание каждого статуса.

processing

Этот статус указывает, что CAPTCHA еще не решена. Необходимо сделать паузу, а затем повторить запрос.

Пример ответа со статусом processing:

{
    "errorId": 0,
    "status": "processing"
}

ready

Ваша CAPTCHA успешно решена. Ответ содержит объект solution, включающий два значения: captcha_voucher и existing_token. Эти значения представляют результат решения CAPTCHA и должны быть использованы позже. Подробная информация о применении решения CAPTCHA представлена на следующем шаге.

Пример ответа со статусом ready:

{
    "errorId": 0,
    "status": "ready",
    "solution": {
        "captcha_voucher": "eyJ0eXAiOiJKV1QiLCJhbGZpZGVkIjoxfQ.wxen...ypctcr_tFY1HXjDAimCdxLIYe5xb8Urzjv4",
        "existing_token": "0a4aa52a-f464-4f82-a71f-e3a7d012ee73:EQo...AbgxKDrsDAAAA:ktn5WJuJoaMfXQ1PkZzbw="
    },
    "cost": "0.00145",
    "ip": "1.2.3.4",
    "createTime": 1640828190,
    "endTime": 1640829170,
    "solveCount": 1
}

После получения ответа со статусом ready вы можете перейти к следующему шагу.

ERROR_CAPTCHA_UNSOLVABLE

Ваша CAPTCHA не может быть решена. Это может произойти по различным причинам, например, если работник не смог справиться с вашей CAPTCHA. Когда вы получаете этот статус, следует отправить новую задачу для решения CAPTCHA.

Обычно статус ERROR_CAPTCHA_UNSOLVABLE не вызывает проблем, так как процент таких случаев невелик.

Если все ваши CAPTCHA не решены, и для каждой из них вы получаете статус ERROR_CAPTCHA_UNSOLVABLE, это может указывать на ошибку с вашей стороны. Это означает, что CAPTCHA с указанными вами параметрами не может быть решена. В этом случае необходимо проверить правильность всех переданных параметров.

Особенно важно обращать внимание на параметры iv и context при работе с Amazon CAPTCHA. Убедитесь, что вы используете актуальные значения этих параметров для каждой CAPTCHA.

Пример ответа со статусом ERROR_CAPTCHA_UNSOLVABLE:

{
    "errorId": 12,
    "errorCode": "ERROR_CAPTCHA_UNSOLVABLE",
    "errorDescription": "Workers could not solve the Captcha"
}

Шаг 4: Использование полученного решения Amazon CAPTCHA

🎯 Цель Шага 4 — правильно применить полученный токен (solution) на странице с CAPTCHA.

Используйте полученный solution во взаимодействии с целевым сайтом. Обычно полученные значения используются при отправке POST-запросов, но обязательно проверьте, каким образоа реплизованна проверка токена на вашем сайте фактически.

Чтобы определить, как применять токен на странице, можно начать со следующих шагов:

  1. Анализ сетевых запросов:
    Используйте инструменты разработчика браузера (например, вкладку "Сеть" в Chrome DevTools), чтобы отследить запросы, отправляемые после решения CAPTCHA. Это поможет определить, где используется токен.
  2. Анализ кода JavaScript:
    Ищите скрипты на странице, связанные с CAPTCHA. Токены часто вставляются в форму перед отправкой или включаются в заголовки HTTP-запросов. Изучите код, чтобы понять механизм.
  3. Проверка элементов страницы:
    Проверьте HTML-элементы, такие как скрытые поля формы (<input type="hidden">), где может храниться токен. Токен часто добавляется в эти поля после успешного решения CAPTCHA.
  4. Обращение к документации:
    Изучите официальную документацию CAPTCHA, которая обычно содержит детали по внедрению и использованию токена на стороне сервера.
  5. Тестирование токена:
    Скопируйте токен и вручную отправьте запрос, чтобы убедиться, что он работает корректно. Это поможет выяснить, как сервер обрабатывает предоставленный токен.

Как избежать капчу Amazon WAF

Для уменьшения вероятности появления капчи рекомендуется следовать следующим рекомендациям:

  1. Избегайте избыточного количества запросов: Не отправляйте запросы слишком часто или в больших объемах. Amazon WAF отслеживает аномальные всплески активности. Используйте интервалы между запросами, чтобы они выглядели естественными.
  2. Используйте корректные заголовки HTTP: Убедитесь, что запросы содержат корректные и правдоподобные значения заголовков, таких как User-Agent, который имитирует стандартные браузеры.
  3. Применяйте прокси или ротацию IP-адресов: Частые запросы с одного IP-адреса могут быть помечены как подозрительные. Используйте прокси-сервисы или ротацию IP, чтобы запросы выглядели распределенными. Избегайте IP-адресов, связанных с центрами данных или VPN-сервисами, которые часто находятся в черных списках. Рекомендуется использовать мобильные или домашние IP-адреса, например, резидентные прокси.

Соблюдение этих рекомендаций поможет снизить вероятность блокировки или появления капчи Amazon WAF.


Полезные ссылки:


Вывод

Интеграция API ruCaptcha с Puppeteer позволяет эффективно решать различные типы CAPTCHA, включая Amazon WAF CAPTCHA. Это значительно упрощает задачи автоматизации, такие как веб-скрейпинг, тестирование и создание ботов. Используя приведённые инструкции и примеры, вы сможете легко внедрить решение CAPTCHA в свои проекты на JavaScript.

Для более глубокого изучения возможностей API ruCaptcha и расширения, посетите официальную документацию. Это руководство поможет вам оптимизировать рабочие процессы и повысить эффективность автоматизации.