A simple simulated submission example for reCaptchaV3
今天一个客户技术咨询,目标地址:
右下角显示应该是一个reCaptchaV3或者reCaptchaV2 invisible
通过如何判断 reCaptcha 是什么版本中的findRecaptchaClients()
函数可以获取具体的版本和sitekey参数
然后由于这里没有获得回调函数,所以我们需要去找一找,具体方法:如何查找 reCaptcha 系列的回调函数
这里我们通过在Elements中搜索关键词:grecaptcha
,可以看到回调函数:
这里我们将这个函数改造一下,因为我们只需要执行获取到TOKEN之后的步骤
function verify(token) {
$('#ctl00_ContentPlaceHolder1_GOOGLEV3_TOKEN').val(token);
document.getElementById('ctl00_ContentPlaceHolder1_AddShopingCartDisplayNone').click();
};
然后我们再通过api接口获取TOKEN,最后将获取到的TOKEN值进行回调执行即可
verify("你在平台获取的TOKEN")
接下来我们通过api接口请求一下TOKEN:RecaptchaV3TaskProxyless: reCaptcha V3 协议接口
这里有三个注意的点,
一是websiteURL只需要提交域名即,可后面的参数不需要,
二是reCaptchaV3已经不再强制需要提交pageaction参数。
三是如果RecaptchaV3TaskProxyless
无法通过,可以尝试RecaptchaV3TaskProxylessM1
或者固定M1S9
{
"clientKey" : "YOUR CLIENTKEY",
"task" : {
"websiteURL" : "https://orders.ibon.com.tw/",
"websiteKey" : "6Lc67Q8eAAAAAF72KuNWCIGBDl4dNhIe03ILm6p5",
"type" : "RecaptchaV3TaskProxylessM1"
}
}
创建任务之后,很快就返回了TOKEN
{
"errorId": 0,
"errorCode": null,
"errorDescription": null,
"solution": {
"gRecaptchaResponse": "03ANYolqvhAyCiR-NGvG5mZczpIctFfeVHFNUqyzXXPKv0E4PrJxGue4Dr-LW_BQ0v7vwGj8gVXoIqsiyk3KIkRpFuEnhxjmgq2CRM6ajxXc71SyO_oe88E7fAa8I0KrQJXm6lIl0VW093Q14poZv7ZtkKMFuXH5Y7M8iyT9pJtytAS9jlnx20cVZ2zYFAh3n9JjoLpVQj2i0mzIGDAA89EyyNFHa7WmeUgfQoRKDxXPg1lzC5lfUtibWpRTQoDCRPJBfACnBWKKFje6gkkM5dAtdw1NJdpIxk9EouE5fSspDtJuug7UzO-d6nszJWYZQe6TVN11RGtuYYyLKC4eVFE1qXIcgkfWJS6Q5MXLE8ae2u8YQwu-1i7aOu-eoPjTNQYcWOo1fjRHs3DxHfe-HjcmMPMK5Z7ybAcqS8dx-OYPXVPB017Ozb84hwlGqZ4CZp8D0T83UDrCZtyIb4rk96CuaztJ6nZoMZUl-RC0Fo5g3vqmJtFJxvEA-Q7qcSINQnLW2GqAbqJO8ua0Aq61Eyu0HVoBGyvIh1Yq_clrLwgHQM3fHmLTiZPuhv4vQyvGJfZGazhQ5Hxz4gZ3f_sMgltgEwX18rU040EA"
},
"status": "ready"
}
然后我们到网页上,打开F12->Console,先创建回调函数,然后执行函数
点击提交之后,验证不正确会跳回首页,验证正确就会提示需要登陆,如果已经登陆,那就已经进入下一步了。