recaptcha v3 验证和评分问题

时间:2021-04-05 00:05:47

标签: recaptcha invisible-recaptcha recaptcha-v3

我在我的网站上使用 google reCaptcha v3,我截获了用于获取最后阶段发送到我的后端服务器的验证码值的请求,网络请求如下

  1. GET www.google.com/recaptcha/api2/anchor?ar=1&k=MY_SITE_KEY&co=SOME_CODE_HERE&hl=en&v=SOME_CODE_HERE&size=invisible&cb=fdjhflkdjldfj ,发送此请求,响应包含 recaptcha-token
  2. 从前一个响应中收到的 Recaptcha 令牌用于制定对 www.google.com/recaptcha/api2/reload?k=MY_SITE_KEY 的 POST 请求,并且该请求将具有 Content-Type: application/x-protobuffer strong> ,POST 请求将在正文中包含很多信息,并且不可读。此请求的响应将包含实际的验证码令牌,该令牌将发送到后端服务器,然后由 google 验证。
POST /recaptcha/api2/reload?k=MY_SITE_KEY HTTP/1.1
Host: www.google.com
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:87.0) Gecko/20100101 Firefox/87.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-protobuffer
Content-Length: 6514
Origin: https://www.google.com
DNT: 1
Connection: close



5jg5fr8dsdfsffffdfddsf5dsf6s03AGdBq25bIYfsddfdsffsdtMhUdgdgdsfswdfsfdfsdfsdfIoxLpxkNf9gh2zpQQfWqy8fDPh2juM8i5o3XwUVu1bj514acUgCT9WrtG2jwMMffZ9O1c-zS2vSEMwK9yb2GGFVl3hd_FO8fmtHkDcJBohWfxtFqwQzv8pkRlfVMpROiIQqMhB7NxJaFSfAwfzrg66fsjff2NrKFOZQ4qfniYNvjxyJw2sesUntfEY_ktufH5Q9o7ndzf3Ws8NOGasTxLMM-dsfdsgCPqoJ6Nz6rwep3sdfsdfdsfds5wEi_5Co_POdBaejwRfBYATssqCulwlsyvwpNhH8U1vwxm6Lz6xEz6Xen8IcJfAoswNZHx-NvTL2Qzfsdfsdftw

在前两个请求中,我执行了以下操作:

  • 使用相同的第一个请求获取recaptcha-token
  • 将第二个请求更改为相同路径的新请求,但使用 Content-Type: application/x-www-form-urlencoded 和具有所需参数的正文(通过拦截找到此示例请求来自以下示例的请求 https://www.google.com/recaptcha/api2/demo 并且我收到了一个指向路径 /recaptcha/api2/userverify 的请求,因为它与原始请求有一些相似的参数。)< /li>
New Request :
POST /recaptcha/api2/reload?k=MY_SITE_KEY HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: www.google.com
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:87.0) Gecko/20100101 Firefox/87.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Origin: https://www.google.com
DNT: 1
Connection: close
Content-Length: 2648

v=fdgdfgfdgfdgdfgdfgdfg&reason=q&**c**=03AGdBq24NKRvgQ9EwzfnPId4hR4cILxjFOneX4Sy8351xWji_VQIn_DPkgFnS7LBlAb5hRF3JID6lJnfXonVqcyVn0sssssioCClJAP1s51sxsssv4cKdfgfdgfdggfdgfdgUPZgFwrZP0mSx66uZ5gJgUZ0nqpj96gfdgdfgdfsBBWgdfgfdzoX27dGKFrssmu-IfqFqTyjdfgdfgdf2yCqpENBadrRAUtVSiBYkgdfgdfgdfgrgaX5LOjGoVf-maMV7hqMlpOVGb-BMaYhsssRyOsssEAlssyDOuftfddgdfgdfgdfv6Zr-gaeeOspg9_-VhPOZSgQMT_k2ss0M5gfdggdfgdfgdfgdfgdfgdfgjag1xU_-DiV4pL0ohjxbsssTkBmBrmApOIUWqkAshWxck8XWCzkTP6sssAP5YJygdfgdfgdfuUp5Ru9-sScQs80j2lj&co=gdfgfdgsssfdgwdwdadsadsadasdasdasd&hl=en&size=invisible&chr=%5B89%2C6sss4%2C27%5D&vh=135sss99012192&**bg**=!b2mgaWwKAAQeDjZybQsssEHDwIbeVoCNhLRRCE9qZxCQZx-6SGETEsssseRXgKCPBGhNh3Nj-u-V49g_B1QeEHd-mv4ssGqhGVqsZtSb-tmMlssssssadsdasdsadx-m_nrKwd07N1PV0dadasdassdas_EJCHbNvvCeNC6YJP_kcroXlFGdMqj7huMhj34VpVktyiUW0IuUezBFwEYzvbjLNKSrjE494Gwdasdsadp_C50VZn1hjiasdasdsaQk6SUNgMFQAi8V9rHQQJjEf8dSCQItFCPCfHu89ssRt0RFmXBconTjwPSy4qfGckOHjaGr9o31V34citVaeoXQat1_AdasdasW-O2Pa2Ksadsadsadsalwvdasdas2Ys20KHFBYiZ9Ryh0V9H5PAx4qcATrU_o6hMdsadsa_PfysLJHhPOecAG1k7XTCdsadasLgYwzTFrhv6nm7Oa3dXm9KzhiSMVwA6YMm6xY3WWrJO6wLzGg7HoEMzoZM1zhZW9FaaF9r6tHG3iC5bFRrcmtby1N2HC-8ArrtSG1A7nuPbRVVk6uRRg9tM5N-YGGfGEVJ9c1Gqk7i5G

我的问题:

  1. 在完成之前的更改后,我能够向谷歌发送两个新请求,并且能够获得一个有效的验证码令牌,我将其添加到我的请求中并在后端正确验证,那么如何更改第二个请求content-type 和新的完全不同的值的正文不会影响功能,并且能够检索正确的验证码令牌并将其发送到后端并进行验证?

  2. 我使用了这个网站 https://www.google.com/recaptcha/api2/demo 并拦截了请求,我从带有 Bath bg 的 POST 正文参数的值>/recaptcha/api2/userverify 并将其替换为我的新编辑 POST 请求 (上面提到的) 和路径 (/recaptcha/api2/reload ) 并开始在请求中使用它来生成验证码令牌并且请求有效并且在后端检索并检查了有效的验证码,这怎么可能发生并且运行良好?从其他站点验证码流的另一个请求中获取价值,并在与我站点验证码相关的请求中使用它?

  3. 我在一些工具中使用了前面提到的请求(上面第 1 点和第 2 点中提到的请求)对我的网站发出自动请求,该工具将首先转到 GET www.google.com/recaptcha/api2/anchor 获取 recaptcha-token 并向 www.google.com/recaptcha/api2/reload?k=MY_SITE_KEY 发出另一个 POST 请求 (内容类型:application/x-www-form-urlencoded而不是 Content-Type: application/x-protobuffer) 来获取应该发送到后端的真实验证码令牌,一旦我收到验证码令牌,我就会使用此站点对其进行验证 https://www.google.com/recaptcha/api/siteverify? 并给出了 0.9 分!! 自动脚本如何生成分数为 0.9 的验证码令牌?这不是验证码的绕过和流程吗?

  4. 使用上述同样的自动化工具,有时生成的验证码令牌得分为 0.9,有时为 0.3,为什么会出现这种变化,即使是自动化工具?

  5. recaptcha v3 的最佳替代方案是什么并且更可靠和安全?

谢谢。

0 个答案:

没有答案