Как обойти Amazon AWS капчу: Решение по автоматизации
Сервис ruCaptcha запустил услугу по обходу Amazon AWS капчи.
Сервис можно использовать для решения любых видов капч Amazon AWS.
Мотивация: Капчи Amazon ограничивают доступ к сервисам и информации из-за социального или культурного происхождения пользователей, физических и когнитивных способностей и других причин.
ruCaptcha - это сервис для автоматического обхода любых капч. Оплата только за успешно обработанные запросы.
В данном материале описан процесс взаимодействия с API для обхода пазлов Amazon и собраны примеры кода на различных языках программирования.
Что такое Amazon капча?
Капча Amazon является частью системы Amazon AWS.
В качестве капчи Amazon использует простые для людей и сложные для ботов пазлы, которые и помогают отсеивать автоматизированные системы и парсеры.
Капча разработана для блокировки ботов и автоматизированных систем. Обычно капча используется, когда полная блокировка трафика недопустима, но пропуск всего трафика создает слишком большую нагрузку из-за количества роботов, например, парсеров.
Если запрос посетителя выглядит подозрительно, Amazon показывает капчу в виде пазла. Вместо пазла у пользователя есть опция выбрать альтернативу - аудио капчу.
Если капча решена успешно, пользователь возвращается на целевую страницу.
Если пазл не был решен, пользователю предлагается решить еще один пазл до тех пор, пока задача не будет решена.
Чтобы обеспечить уникальность заданий для пользователей и оставаться эффективным в борьбе с системами автоматизации, Amazon создает и сортирует пазлы случайным образом, также регулярно добавляет новые типы пазлов.
Чтобы проверить, что задание выполнено пользователем и предотвратить автоматизированные запросы, кроме прохождения самих пазлов, Amazon также использует сбор и аналитику данных о пользователе.
Amazon капча может ограничить доступ многим ботам, но не может полностью исключить все автоматизированные системы по обходу.
Способы автоматизации процесса решения Amazon AWS капчи
Основные способы автоматизировать процесс обхода:
- Пазлы могут быть решены с помощью машинного обучения;
- Пазлы могут быстро решаться при помощи использования мотивированных работников, которые выполняют задания на сервисах распознавания.
Как автоматически обходить капчу Amazon с помощью API
Задачу по автоматизации обхода решают специальные сервисы.
Процесс обхода заключается в следующем:
- Используя API заказчик передает набор необходимых параметров со страницы размещения капчи в сервис, где ее решает работник.
- После, заказчик запрашивает набор параметров, которые необходимо передать в соответствующие поля для решения капчи на целевой странице.
Решение Amazon капчи с помощью API — отличный способ автоматизировать процесс обхода. Этот процесс быстрый и надежный, и его можно использовать для решения любых капч, включая пазлы от сервиса Amazon. Оплата взимается исключительно в случае успешного разгадывания пазла.
Чтобы использовать API пользователь должен зарегистрироваться на сайте ruCaptcha.
После подтверждения адреса электронной почты пользователь может начать пользоваться API.
Далее описан процесс взаимодействия с API и примеры кода на самых популярных языках программирования.
Отправка запроса
Отправьте запрос к API на in.php
с параметрами. Список необходимых параметров:
Параметр | Описание |
---|---|
key |
API ключ |
method |
amazon_waf - название метода Amazon WAF captcha |
sitekey |
значение параметра sitekey размещенного на целевой странице |
iv |
значение параметра iv , находится на целевой странице |
context |
значение параметра context , находится на целевой странице |
pageurl |
полный адрес целевой страницы |
В ответ на запрос API возвращает идентификатор капчи.
Если задача принята в обработку, должен вернуться ответ, содержащий id
запроса.
Пример:
{
OK|xxxxxx
}
Полученный идентификатор нужно использовать, чтобы запросить результат с решением.
Если отправка файла завершилась ошибкой, должен вернуться ответ с ошибкой. Перечень всех ошибок с описанием собран в списке.
После отправки запроса нужно подождать 15-20 секунд пока завершится распознавание и затем можно выгрузить распознанный текст отправив HTTP GET запрос к API по URL res.php
.
Получение ответа
Чтобы получить решение, нужно отправить запрос нужно к файлу res.php
с параметрами:
Параметр | Описание |
---|---|
key | ключ API |
action | get - означает отправку запроса на получение результата решения |
id | цифровое ID запроса, переданное файлом in.php |
Если пазл успешно решен, сервис предоставляет ответ в следующем формате:
{
"status": 1,
"request": {
"captcha_voucher":"xxxxx",
"existing_token":"xxxxx"
}
}
Примеры кода
Обход, распознавание и автоматическое решение Amazon AWS капчи на Java
import com.twocaptcha.TwoCaptcha;
import com.twocaptcha.captcha.AmazonWaf;
public class AmazonWaf {
public static void main(String[] args) {
TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY");
solver.setHost("2captcha.com");
AmazonWaf captcha = new AmazonWaf();
captcha.setSiteKey("AQIDAHjcYu/GjX+QlghicBgQ/7bFaQZ+m5FKCMDnO+vTbNg96AF5H1K/siwSLK7RfstKtN5bAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglg");
captcha.setUrl("https://non-existent-example.execute-api.us-east-1.amazonaws.com");
captcha.setIV("test_iv");
captcha.setContext("test_context");
try {
solver.solve(captcha);
System.out.println("Captcha solved: " + captcha.getCode());
} catch (Exception e) {
System.out.println("Error occurred: " + e.getMessage());
}
}
}
Обход, распознавание и автоматическое решение Amazon AWS капчи на PHP
require(__DIR__ . '/../src/autoloader.php');
$solver = new \TwoCaptcha\TwoCaptcha('YOUR_API_KEY');
try {a
$result = $solver->amazon_waf([
'sitekey' => 'xxxxx',
'url' => 'https://non-existent-example.execute-api.us-east-1.amazonaws.com',
'iv' => 'test_iv',
'context' => 'test_context'
]);
} catch (\Exception $e) {
die($e->getMessage());
}
die('Captcha solved: ' . $result->code);
Обход, распознавание и автоматическое решение Amazon AWS капчи на языке Python
import os
sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))
from twocaptcha import TwoCaptcha
api_key = os.getenv('APIKEY_2CAPTCHA', 'YOUR_API_KEY')
solver = TwoCaptcha(api_key)
try:
result = solver.amazon_waf(sitekey='0x1AAAAAAAAkg0s2VIOD34y5',
iv='CgAHbCe2GgAAAAAj',
context='9BUgmlm48F92WUoqv97a49ZuEJJ50TCk9MVr3C7WMtQ0X6flVbufM4n8mjFLmbLVAPgaQ1Jydeaja94iAS49ljb+sUNLoukWedAQZKrlY4RdbOOzvcFqmD/ZepQFS9N5w15Exr4VwnVq+HIxTsDJwRviElWCdzKDebN/mk8/eX2n7qJi5G3Riq0tdQw9+C4diFZU5E97RSeahejOAAJTDqduqW6uLw9NsjJBkDRBlRjxjn5CaMMo5pYOxYbGrM8Un1JH5DMOLeXbq1xWbC17YSEoM1cRFfTgOoc+VpCe36Ai9Kc='
url='https://non-existent-example.execute-api.us-east-1.amazonaws.com/latest')
except Exception as e:
sys.exit(e)
else:
sys.exit('solved: ' + str(result))
Обход, распознавание и автоматическое решение Amazon AWS капчи на Ruby
client = Api2Captcha.new("YOUR_API_KEY")
result = client.amazon_waf({
sitekey: '0x1AAAAAAAAkg0s2VIOD34y5',
iv: 'CgAHbCe2GgAAAAAj',
context: '9BUgmlm48F92WUoqv97a49ZuEJJ50TCk9MVr3C7WMtQ0X6flVbufM4n8mjFLmbLVAPgaQ1Jydeaja94iAS49ljb+sUNLoukWedAQZKrlY4RdbOOzvcFqmD/ZepQFS9N5w15Exr4VwnVq+HIxTsDJwRviElWCdzKDebN/mk8/eX2n7qJi5G3Riq0tdQw9+C4diFZU5E97RSeahejOAAJTDqduqW6uLw9NsjJBkDRBlRjxjn5CaMMo5pYOxYbGrM8Un1JH5DMOLeXbq1xWbC17YSEoM1cRFfTgOoc+VpCe36Ai9Kc=',
pageurl: 'https://non-existent-example.execute-api.us-east-1.amazonaws.com/latest',
challenge_script: "https://41bcdd4fb3cb.610cd090.us-east-1.token.awswaf.com/41bcdd4fb3cb/0d21de737ccb/cd77baa6c832/challenge.js",
captcha_script: "https://41bcdd4fb3cb.610cd090.us-east-1.captcha.awswaf.com/41bcdd4fb3cb/0d21de737ccb/cd77baa6c832/captcha.js"
})
Обход, распознавание и автоматическое решение Amazon AWS капчи на C#
using System.Linq;
using TwoCaptcha.Captcha;
namespace TwoCaptcha.Examples
{
public class AmazonWafExample
{
public void Main()
{
TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY");
AmazonWaf captcha = new AmazonWaf();
captcha.SetSiteKey("AQIDAHjcYu/GjX+QlghicBgQ/7bFaQZ+m5FKCMDnO+vTbNg96AF5H1K/siwSLK7RfstKtN5bAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglg");
captcha.SetUrl("https://non-existent-example.execute-api.us-east-1.amazonaws.com");
captcha.SetContext("test_iv");
captcha.SetIV("test_context");
try
{
solver.Solve(captcha).Wait();
Console.WriteLine("Captcha solved: " + captcha.Code);
}
catch (AggregateException e)
{
Console.WriteLine("Error occurred: " + e.InnerExceptions.First().Message);
}
}
}
}
Обход, распознавание и автоматическое решение Amazon AWS капчи на Golang
import (
"fmt"
"log"
"github.com/2captcha/2captcha-go"
)
func main() {
client := api2captcha.NewClient("API_KEY")
cap := api2captcha.AmazonWAF{
Iv: "CgAHbCe2GgAAAAAj",
SiteKey: "0x1AAAAAAAAkg0s2VIOD34y5",
Url: "https://non-existent-example.execute-api.us-east-1.amazonaws.com/latest",
Context: "9BUgmlm48F92WUoqv97a49ZuEJJ50TCk9MVr3C7WMtQ0X6flVbufM4n8mjFLmbLVAPgaQ1Jydeaja94iAS49ljb",
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",
}
code, err := client.Solve(cap.ToRequest())
if err != nil {
log.Fatal(err);
}
fmt.Println("code "+code)
}
Цена
Автоматический обход капчи Amaozn AWS captcha с помощью ruCaptcha API — отличный способ автоматизировать процесс обхода.
Цена за 1000 решений 160 ₽.
Полезные материалы
Подробная информация об обходе капчи Amazon доступна в документации по API.
Дополнительная информация по работе с сервисом для заказчиков размещена в FAQ.
Примеры кода на разных языках программирования:
Примеры кода по работе с сервисом на официальной странице в GitHub.