19
2025
06
16:37:50

如何绕过烦人的 hCaptcha & Cloudflare Captcha

对于普通人来说,你只要看这一段就行了。

请注意,本文完成于 2020 年 4 月 10 日,hCaptcha 随时可能更新他们的使用政策,文中提到的方法随时都会可能失效!

1. 注册 hCaptcha 无障碍服务账号

点击 这个链接 进行注册。

37c38d6669a87cf0293875a0e0889728_708668e0243467da.png

不一定要用真实的邮箱,能收到邮件的临时邮箱就行;国家和地区根据你常用的 IP 进行选择就好了。点击「Submit」开始注册。

2. 去邮箱收件

去你的邮箱获取 hCaptcha 发来的邮件,这幅邮件应该长这样:

f1328fb111e034317c69061392876f54_a65aefb746dd57c8.png

保存好这封邮件,这个按钮以后还用得到的。你也可以直接复制这个按钮的链接、将其添加到你的浏览器书签中。

需要注意的是大部分邮箱都会使用跳转页面和追踪链接,所以你要确保复制的是 hCaptcha 的链接,它应该长这样:

https://accounts.hcaptcha.com/verify_email/xxxxxxxx-xxxx-x4xx-xxxx-xxxxxxxxxxxx

accounts.hcaptcha.com/verify_email/ 打头,结尾是一串 v4 的 UUID)。

点击按钮将会跳转到 hCaptcha 的设置页面:

281dfd35f12598206aed6d02cbd82c35_f170857a6be2ae0b.png

点击「Set Cookie」按钮,等按钮下方出现一行字「Cookie set.」时就大功告成了!

970bc26043f848a536de620513670f04_63d24a481b8ba645.png

现在你可以测试一下是不是生效了:试试访问 这个链接,当出现 hCaptcha 时,直接点击「I am human」左边的方框,是不是不用再选图片、直接就通过了?

3d8628868b5457fa07327cbef75a25b6_93997d026679a43d.png

是的,就这么简单!

当然,hCaptcha 的 Cookie 有效期只有 12 小时。还记得我之前说的么,把 hCaptcha 发给你的链接添加到书签!


如果你只是一个想在 hCaptcha 上省点事的人,那么你现在可以关掉这个页面了。

如果你点开这篇文章是为了学习如何干坏事的话,那么你来对地方了,接着读下去吧。

hCaptcha 的链接

还记得上文说过么,hCaptcha 通过邮件发送的链接的格式是这样的:

https://accounts.hcaptcha.com/verify_email/[v4 uuid]

邮件中的 URL 将会跳转到「Set Cookie」页面,那么随机生成的 UUID 呢?

const { v4: uuidv4 } = require("uuid");console.log('https://accounts.hcaptcha.com/verify_email/' + uuidv4());// "https://accounts.hcaptcha.com/verify_email/3cb9faea-2e45-4cb4-a4e1-d532ce53504e"


尝试访问以后跳转到的是 hCaptcha 面板的登陆页面,看来随机 UUID 是行不通的。

试试看 curl 会得到什么结果:


$ curl -v https://accounts.hcaptcha.com/verify_email/[redacted]

...< HTTP/1.1 302 FOUND...< Set-Cookie: __cfduid=[redacted]< Set-Cookie: INGRESSCOOKIE=[redacted]< Set-Cookie: hmt_id=[redacted]< Set-Cookie: session=[redacted]< Location: https://dashboard.hcaptcha.com/welcome_accessibility... $ curl -v https://accounts.hcaptcha.com/verify_email/3cb9faea-2e45-4cb4-a4e1-d532ce53504e

...< HTTP/1.1 302 FOUND...< Set-Cookie: __cfduid=[redacted]< Set-Cookie: INGRESSCOOKIE=[redacted]< Set-Cookie: hmt_id=[redacted]< Location: https://dashboard.hcaptcha.com/login...


所以,只有正确的 UUID 才能得到 session 这个 Cookie。值得注意的是,session 这个 Cookie 没有过期日期,即浏览器关闭以后这个 Cookie 就会被删除。

打开我们的好伙伴——浏览器的开发者工具,并切换到 Network Tab,访问 hCaptcha 的获取 Cookie 页面。

可以注意到,点击「Set Cookie」会触发一个  GET https://accounts.hcaptcha.com/accessibility/get_cookie:

af3843c2497c85732287cde3f6f3f923_908c172dd247cb03.png

3fedf0a83dd3341fcc3a00e17ffda6f6_9dbbf9914718bfd4.png

啊哈!只需要一个带 session Cookie 的 GET 请求,我们就直接拿到了 hc_accessibility 这个 Cookie,有效域是 .hcaptcha.com ,有效期是 12 小时。

对,你没有想错。不论是获取 session 还是 hc_accessibility,全程只需要 curl 就可以完成!

Cloudflare Captcha

Cloudflare 的 Captcha 页面基本是依赖 JS 实现。首先 Cloudflare Captcha 页面会加载一段 JS:

https://site.at.cloudflare.example.com/cdn-cgi/scripts/hcaptcha.challenge.js

当 Solve Captcha 以后,Cloudflare 的这个 JS 会产生一个 POST 请求:

POST ?__cf_chl_captcha_tk__=GENERATED_TOKEN

GENERATED_TOKEN 根据 Captcha 的返回值和 inline 在 Captcha 页面的 ID 计算得到,其中 POST 的数据类型是 formdata,包括如下字段:

  • r:用于统计的信息,经过加盐和 encode

  • cf_captcha_kind:Captcha 类型,hCaptcha 是 h

  • h-recaptcha-response:hCaptcha 的返回值

  • g-recaptcha-response:之前是 reCAPTCHA 的返回值,现在和 h-recaptcha-response 相同,应该是作为 reCAPTCHA 的向前兼容

Cloudflare 会给这个 POST 请求返回原始请求的内容,同时传递一个 cf_clearance Cookie(有效期 24 小时),这个 Cookie 在接下来的 1000 个请求中都有效(Cloudflare 也会根据站长的设置在一定时间内要求访客再次进行验证)。

Cloudflare 对于使用 cf_clearance 的请求有如下几点要求:

  • cf_clearance 本身依然有效

  • User-Agent 要一致

  • IP 要在同一个 C 段内(不要求同一个 IP)

只要满足上述三个需求,就可以使用 cf_clearance  通过 Cloudflare 了。



推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://www.hqyman.cn/post/11698.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: