【问题标题】:Javascript callback to resolve hCaptcha用于解析 hCaptcha 的 Javascript 回调
【发布时间】:2021-08-25 14:26:48
【问题描述】:

我是一个 JS 编码的菜鸟,需要帮助解决 hCaptcha。

目前有问题的网站是 coinhunt.cc,有两个验证码,我可以解决 reCaptcha,但是使用 hCaptcha 我不知道如何解决这个问题。

目前的代码可以解析reCaptcha(我从2Captcha收到token,有一个代码将myjs替换为token代码):

document.getElementById("g-recaptcha-response").value="myjs"

function excuteCallback(obj, name) {

ret = null;

if (Object.hasOwnProperty(obj, name)) {

ret = Object.getOwnPropertyDescriptor(obj, name).value;

}

if (ret != null) {

return ret;

}

for (var objName in obj) {

var o=obj[objName];

if (o.hasOwnProperty(name)) {

ret = Object.getOwnPropertyDescriptor(o, name).value;

}

if (ret != null) {

return ret;

}

excuteCallback(o, name);

}

}

excuteCallback(window.___grecaptcha_cfg.clients[0], "callback")("myjs");

根据 2Captcha,我需要在 h-captcha-response 和 g-captcha-response 中输入回报,目前我可以通过以下方式做到这一点:

document.getElementsByName("h-captcha-response").value="myjs"
document.getElementsByName("g-recaptcha-response").value="myjs"

但是,当我尝试运行此脚本时,我遇到了错误:

javascript 错误:无法读取未定义的属性“客户”

我不知道回调是否正确,也不知道在哪里可以从本网站获取正确的 hcaptcha 回调,我是菜鸟,刚开始学习 JS。

【问题讨论】:

    标签: javascript 2captcha


    【解决方案1】:

    我认为您正在寻找用于解决 Cloudflare 保护网站上的 hCaptcha 的 javascript。 如果不是,这段代码应该可以工作。

    let frame = document.getElementById("hcaptcha_widget");
    frame || (frame = document.getElementById("cf-hcaptcha-container")), t = document.getElementsByName("h-captcha-response"), t[0].innerHTML = "myjs", frame.closest("form").submit();
    

    如果是 cloudflare,他们最近改变了提交解决方案的方式。 详情:https://2captcha.com/blog/hcaptcha-cloudflare-en 您可以参考他们的 chrome 扩展代码,该代码成功解决了启用 cloudflare 的网站上的 hcaptcha。 因为我也不是 js 程序员,所以我无法导出有效的 js 代码。 我认为 2captcha 扩展上的这两种方法是相关的。

    function doActionsOnSuccess(msg) {
        debugger;
        let widget = getWidgetInfo(msg.request.captchaType, msg.request.widgetId);
        let processor = CaptchaProcessors.get(msg.request.captchaType);
        processor.onSolved(widget, msg.response.code);
    
        Config.getAll().then(config => {
            let callback = processor.getCallback(widget);
    
            if (callback) {
                location.href = `javascript: window["${callback}"]("${msg.response.code}")`;
            }
    
            if (config.autoSubmitForms === true) {
                let timeout = parseInt(config.submitFormsDelay) * 1000;
    
                setTimeout(function() {
                    processor.getForm(widget).submit();
                }, timeout);
            }
        });
    }
    
    
    onSolved: function(widget, answer) {
        let container = $("#" + widget.containerId);
    
        container.find("textarea").val(answer);
        container.find("iframe").attr("data-hcaptcha-response", answer);
    },
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-09
      • 1970-01-01
      • 1970-01-01
      • 2021-10-22
      • 2014-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多