EveryInfra

Cutcaptcha

CutcaptchaCutcaptcha拼图(切块拼合)一个拼图式挑战:把切开/缺失的图块选出来拼成完整图像。绝大多数人遇到它的场景是同一个——点开一个文件分享站的下载容器页,要拿链接就得先拼完这个图。

正在查询可用性…$2.22 / 1K 次按成功计费,失败退款

接口规格

项目
typecutcaptcha
必填参数website_urlmisery_keycaptcha_api_key
可选参数
返回一个 token 字符串solution.token
怎么用这个解填回目标站表单的 Cutcaptcha 响应字段
价格$2.22 / 1K 次 —— 按成功计费,没解出来退款

参数去页面哪里取

下面全部是可以直接照做的定位方法 —— DOM 属性名、JS 全局变量名、script 上的 query 参数。

两个参数都不在常规的 data-sitekey 上,位置都不直觉,逐个说。

misery_key

它是页面上的一个全局 JS 变量,名字就叫 CUTCAPTCHA_MISERY_KEY
最快的取法:DevTools 的 Console 里直接敲

CUTCAPTCHA_MISERY_KEY

回车就打印出来。取不到就在页面源码 Ctrl+F 搜这个变量名。
值是 40 位十六进制(SHA-1 长度),例如 56a9e9b989aa8cf99e0cea28d4b4678b84fa7a4e

captcha_api_key

有两条等价路径,哪条能走通用哪条:
① 找到 Cutcaptcha 的 iframe,取它内部 document 的 body 元素上的 `data-apikey` 属性

注意是 iframe 内部文档的 body,不是外层页面里的 iframe 标签本身——在外层 DOM 上

querySelector('[data-apikey]') 是找不到的。

② 或者看页面引入的那个 Cutcaptcha JS 文件的文件名——文件名本身就是这个 key。

在 Network 面板按 JS 过滤,那个名字像随机串、又不像业务脚本的就是。

值是 8 位大小写字母数字,例如 SAs61IAISAb83IIB

跨域取不到 iframe 内部 DOM 时,第 ② 条更稳,优先用它。

website_url

必须带上验证码实际所在的那一层路径,不能只给域名根,容器页的完整 URL 照抄。

解出来之后往哪填

document.querySelector('input#cap_token').value = '<token>';
document.querySelector('form').submit();

如果页面定义了回调,也可以直接 capResponseCallback('<token>')

调用示例

一个端点解全部验证码类型 —— 换一种验证码只改 type 这一个字段。

请求
curl -X POST https://api.everyinfra.com/api/v1/captcha \  -H "Authorization: Bearer omg_你的KEY" \  -H "Content-Type: application/json" \  -d '{"type":"cutcaptcha","website_url":"<website_url>","misery_key":"<misery_key>","captcha_api_key":"<captcha_api_key>"}'
响应
{  "solution": {    "token": "…"  },  "billing": { "charged": true, "credits": 160 }}

怎么确认目标站用的就是它

挑战由页面内嵌的一个 iframe 承载,页面另有一个全局 JS 变量携带站点标识(misery key),JS 文件名本身携带另一个标识(api key)。解出的 token 写进表单里 id 为 `cap_token` 的 input 后提交该 form,或直接调用页面上已定义的回调函数交付。

容易搞混的

三个方向。一是和开源的 Cap / cap.js(工作量证明式验证码)完全无关,只是名字缩写撞车,搜索时极易串台。二是 FileCrypt 同时还会下发另一种叫 powCAPTCHA(powcaptcha.com)的挑战,长相和参数体系都不同——下载器报「不支持」时要先分清面前是哪一个,按 Cutcaptcha 的方法去 powCAPTCHA 上找 CUTCAPTCHA_MISERY_KEY 只会白找。三是参数名在不同 API 风格下大小写不同:misery_key/api_keymiseryKey/apiKey 指的是同一个东西,不是两套参数。

常见部署场景

已知的坑

没有正经官网可查。cutcaptcha.com 目前是域名停放页(返回的是广告导航脚本,不是厂商站点);v2.cutcaptcha.net 根路径只返回一行联系方式,大意是「对 cutcaptcha 有兴趣请联系 [email protected]」。所以任何「官方文档」都不存在,参数只能从真实部署页面反推——这也是它资料稀缺的根本原因。

不要去搜 data-sitekey,Cutcaptcha 没有这个属性。misery key 是全局 JS 变量,api key 在 iframe body 的 data-apikey 上或就是 JS 文件名。

data-apikey 在 iframe 内部文档的 body 上,不在外层页面 DOM 里;跨域时直接读不到,这种情况改用「JS 文件名就是 key」那条路。

服务可用性有前科:2024 年 6 月 v2.cutcaptcha.net 的 SSL 证书过期,浏览器直接拦截连接,依赖它的站点集体不可用。它是单点,出问题时不是参数取错而是根本连不上,排查时先确认服务本身活着。

website_url 必须精确到验证码所在的那一层路径,只给域名根会失败。

部署面窄且集中,样本难找——想拿真实页面做参数练习,基本只能去文件容器类站点上找。

常见问题

Cutcaptcha 要传哪些参数?

必填 website_url、misery_key、captcha_api_key,没有可选参数。请求里 type 传 cutcaptcha。

解出来的东西怎么用?

返回一个 token 字符串,取 solution.token。填回目标站表单的 Cutcaptcha 响应字段

data-apikey 要去页面的哪里找?

重点找 data-apikey、SAs61IAI、SAb83IIB。本页「参数去页面哪里取」一节写了全部位置与取法,含可直接粘进控制台的一行命令。

怎么确认目标站用的就是 Cutcaptcha?

三个方向。一是和开源的 Cap / cap.js(工作量证明式验证码)完全无关,只是名字缩写撞车,搜索时极易串台。二是 FileCrypt 同时还会下发另一种叫 powCAPTCHA(powcaptcha.com)的挑战,长相和参数体系都不同——下载器报「不支持」时要先分清面前是哪一个,按 Cutcaptcha 的方法去 powCAPTCHA 上找 CUTCAPTCHA_MISERY_KEY 只会白找。三是参数名在不同 API 风格下大小写不同:misery_key/api_keymiseryKey/apiKey 指的是同一个东西,不是两套参数。

有什么容易踩的坑?

没有正经官网可查。cutcaptcha.com 目前是域名停放页(返回的是广告导航脚本,不是厂商站点);v2.cutcaptcha.net 根路径只返回一行联系方式,大意是「对 cutcaptcha 有兴趣请联系 [email protected]」。所以任何「官方文档」都不存在,参数只能从真实部署页面反推——这也是它资料稀缺的根本原因。

多少钱一次,失败扣不扣?

$2.22 / 1K 次。按成功计费 —— 没解出来一律退款,所以失败不花钱。账单按次记,标价按每千次是为了让量级读得出来。

开始接入

一个端点覆盖全部验证码类型,按成功计费,失败与空结果一律退款。