一个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
然后我们到网页上,打开F12->Console,先创建回调函数,然后执行函数
点击提交之后,验证不正确会跳回首页,验证正确就会提示需要登陆,如果已经登陆,那就已经进入下一步了。