Amazon AWF
Hướng dẫn sử dụng API giải Captcha Amazon AWF của 2captcha.net
1. Tìm các tham số của Captcha Amazon AWF
Mở developer's console của browser và tìm các tham số mà bạn cần
2. Tạo yêu cầu/Request
POST : https://2captcha.net/api/captcha
Các tham số Body:
POST HTTP
Url: https://2captcha.net/api/captcha
Content-Type: application/json
{
"apikey": "YOUR_API_KEY",
"type": 25, // captcha id của Amazon AWF
"pageurl": "https://norway-meetup.aws.wslab.no/" // thay bằng url của bạn
//"websitekey": "AQIDAHjcYu/GjX+QlghicBgQ/7bFaQZ+m5FKCMDnO+vTbNg96AELMN914s+NREyTdDq+z5QWAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMVlzjBMUDRma8BC83AgEQgDuUR5Y++wlUGjJqHI2OBTqF2S2iH2DWQZZo1TIAFZjova9h/qRPwfsySRco2sTpGUC+k1LbCr9KsBJCLA==", // thay bằng key amazon awf của bạn
//"context": "eUbRs0dztvKIT9wrTG/8r7ox/cyaWTixaHgTTPhbEtFXMurNl8noKwPWzeNjP6CYZ/sqnftiHcH6RvqJyzC8Uj21nPG3ej8cBSS+xm+qzEJFhDUvvrD2o8HSfbKVXzLidKkG1HmjA5Ymw+z5wld1LOK6Y5wAkVWQiPDEBpN7asbnRs6UZeFvJ6tElh9ID+NvMAn4isDLer6XMn8FTOQR5tFyYKje1sa+xOGHOOG5l5Gy4icXuHDG8wWKjA/o4BHjAWKmH8Tu2tR0j08aUjvtbVfSzQtxtmOBKTNd7Q02VO7LJMdcboyGdD/L07oxJj7f8M2gX2rX6wOtmC4Y7EYI47TQ/TSN", // thay bằng context của bạn
//"iv": "EkQvKQB+S1AAAAqc", // thay bằng iv của bạn
//"captcha_script": "https://1127390e2833.de01b5d8.us-west-1.captcha.awswaf.com/1127390e2833/1755d2d50619/cad127e790dc/captcha.js", // thay bằng url captcha_script của bạn
//"challenge_script": "https://1127390e2833.de01b5d8.us-west-1.token.awswaf.com/1127390e2833/1755d2d50619/cad127e790dc/challenge.js" // thay bằng url challenge_script của bạn
}
3. Nhận kết quả trả về/Response
Kết quả trả về dạng JSON gồm các trường sau
{
"success": true,
"message": "Thành công",
"captcha": "223d1f60-0e9f-4238-ac0a-e766b15a778e:EQoAf0APpGIKAAAA:AJam3OWpff1VgKIJxH4lGMMHxPVQ0q0R3CNtgcMbR4VvnIBSpgt1Otbax4kuqrgkEp0nFKanO5oPtwt9+Butf7lt0JNe4rZQwZ5IrEnkXvyeZQPaCFshHOISAFLTX7AWHldEXFlZEg7DjIc=", //kết quả cookie giải ra
"base64img": null
}
{
"success": false,
"message": null,
"captcha": null,
"base64img": null
}
hoặc
{
"success": false,
"message": "Số xu không đủ",
"captcha": ""
}
hoặc
{
"success": false,
"message": "Api key không chính xác",
"captcha": ""
}
4. Code mẫu
public class CatpchaResult
{
public string log { get; set; }
public bool status { get; set; }
public string catcha { get; set; }
}
public class 2captchaTopApi
{
public string apiKey = "";
public string Post(string url, object data, string method = "POST")
{
int num = 0;
NameValueCollection values;
while (num < 1)
{
try
{
using (WebClient webClient = new WebClient())
{
values = new NameValueCollection();
if (data != null)
{
data.GetType().GetProperties().ToList().ForEach(delegate (PropertyInfo pi)
{
values.Add(pi.Name, (pi.GetValue(data, null) ?? "").ToString());
});
byte[] bytes = webClient.UploadValues(url, method, values);
return Encoding.UTF8.GetString(bytes);
}
return webClient.DownloadString(url);
}
}
catch
{
}
}
return "";
}
public CatpchaResult GetCatpcha(int type=25,string websitekey,string pageurl,string context,string iv,string captcha_script,string challenge_script)
{
var data = new
{
apikey = apiKey,
type = type,
websitekey = websitekey,
pageurl = pageurl,
context = context,
iv = iv,
captcha_script = captcha_script,
challenge_script = challenge_script
};
var rs = new CatpchaResult
{
status = false
};
try
{
var result = JsonConvert.DeserializeObject<dynamic>(Post("https://2captcha.net/api/captcha", data));
if (result.success == true)
{
rs.status = true;
rs.catcha = result.captcha;
rs.log = result.message;
}
}
catch
{
}
return rs;
}
}
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://2captcha.net/api/captcha",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"apikey\"\r\n\r\n[apikey]\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"type\"\r\n\r\n25\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"websitekey\"\r\n\r\nAQIDAHjcYu/GjX+QlghicB...\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"pageurl\"\r\n\r\n[url chứa amazon awf captcha]\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--; name=\"context\"\r\n\r\neUbRs0dztvKIT9wrTG...\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--; name=\"iv\"\r\n\r\nEkQvKQB+S1AAAAqc\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--; name=\"captcha_script\"\r\n\r\n[url của captcha_script]\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--; name=\"challenge_script\"\r\n\r\n[url của challenge_script]\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--",
CURLOPT_HTTPHEADER => array(
"cache-control: no-cache",
"content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
var form = new FormData();
form.append("apikey", "[apikey]");
form.append("type", "25");
form.append("websitekey", "AQIDAHjcYu/GjX+QlghicBgQ/7bFaQZ+m5FKCMDnO+...");
form.append("pageurl", "[url chứa amzon awf captcha]");
form.append("context", "eUbRs0dztvKIT9wrTG/8r7ox/cyaWTi...");
form.append("iv", "EkQvKQB+S1AAAAqc");
form.append("captcha_script", "[url của captcha_script]");
form.append("challenge_script", "[url của challenge_script]");
var settings = {
"async": true,
"crossDomain": true,
"url": "https://2captcha.net/api/captcha",
"method": "POST",
"headers": {
"cache-control": "no-cache"
},
"processData": false,
"contentType": false,
"mimeType": "multipart/form-data",
"data": form
}
$.ajax(settings).done(function (response) {
console.log(response);
});
5. Sử dụng kết quả nhận được
Sau khi giải captcha thành công, bạn cần tạo cookie aws-waf-token và thêm giá trị cookie mà bạn nhận được từ kết quả vào.
Lưu ý: Nên sử dụng phần mềm PostMan để kiểm tra chạy test trước
Last updated