Join And Get Free Trial!

jak znaleźć odpowiednie parametry zadania reCAPTCHA#

logoNextCaptcha
April 22,2024

Rozwiąż i omiń usługę solwera reCAPTCHA#

Aby zbudować zadania rozwiązywania captcha recaptcha v2, recaptcha v2 invisible, recaptcha v2 Enterprise, recaptcha v3 lub recaptcha v3 Enterprise, oto kilka kluczowych parametrów
  • params of recaptcha v2 / recaptcha v2 invisible solve task
    a. websiteURL
    b. websiteKey
    c. recaptchaDataSValue
    d. isInvisible

  • params of recaptcha v2 Enterprise solve task
    a. websiteURL
    b. websiteKey
    c. pageAction
    d. enterprisePayload
    e. isInvisible

  • params of recaptcha v3 / recaptcha v3 Enterprise solve task
    a. websiteURL
    b. websiteKey
    c. pageAction


Jak znaleźć odpowiednie parametry na docelowej stronie?
Następnie pokażę Ci kilka sposobów na znalezienie odpowiednich parametrów recaptcha v2, recaptcha v2 invisible, recaptcha v2 Enterprise, recaptcha v3 lub recaptcha v3 Enterprise rozwiązując zadanie
  • Jak odróżnić wersję Enterprise od wersji Regular
    a. otwórz konsolę przeglądarki i sprawdź, które żądania `www.google.com/recaptcha` kończą się na `anchor`
    b. Sprawdź, czy adres URL zawiera Enterprise
    c. jest to typ recaptcha Enterprise lub Regular

  • Jak znaleźć klucz witryny internetowej
    a. otwórz konsolę przeglądarki i sprawdź, które żądania `www.google.com/recaptcha` kończą się na `anchor`
    b. ładunek „k” jest docelowym kluczem witryny internetowej

  • jak znaleźć wartość „recaptchaDataSValue”.
    a. otwórz konsolę przeglądarki i sprawdź, które żądania `www.google.com/recaptcha` kończą się na `anchor`
    b. ładunek `s` to docelowa witryna recaptcha `recaptchaDataSValue`

  • jak znaleźć rozróżnienie „niewidzialnego”.
    a. otwórz konsolę przeglądarki i sprawdź, które żądania `www.google.com/recaptcha` kończą się na `anchor`
    b. ładunek „rozmiar” jest wartością „isInvisible” docelowej witryny recaptcha

  • jak znaleźć recaptcha `pageAction`
    a. `getMessageFallback` called for how-to-find-the-params-of-recaptcha-solve-task.list5-
    b. znajdź go w `___grecaptcha_cfg.clients`


Następnie pokażę Ci kilka sposobów na znalezienie odpowiednich parametrów recaptcha v2, recaptcha v2 invisible, recaptcha v2 Enterprise, recaptcha v3 lub recaptcha v3 Enterprise rozwiązując zadanie
function getRecaptchaWidgetInfo(widget) {
  let info = {
    captchaType: "recaptcha",
    widgetId: widget.id,
    version: "v2",
    sitekey: null,
    action: null,
    s: null,
    callback: null,
    enterprise: window?.grecaptcha?.enterprise ? true : false,
    containerId: null,
    bindedButtonId: null,
  };

  /*
   * Check if is badge
   */
  let isBadge = false;

  mainLoop: for (let k1 in widget) {
    if (typeof widget[k1] !== "object") continue;

    for (let k2 in widget[k1]) {
      if (widget[k1][k2] && widget[k1][k2].classList && widget[k1][k2].classList.contains("grecaptcha-badge")) {
        isBadge = true;
        break mainLoop;
      }
    }
  }


  /*
   * 1. Look for version
   */
  if (isBadge) {
    info.version = "v3";

    for (let k1 in widget) {
      let obj = widget[k1];

      if (typeof obj !== "object") continue;

      for (let k2 in obj) {
        if (typeof obj[k2] !== "string") continue;
        if (obj[k2] == "fullscreen") info.version = "v2_invisible";
      }
    }
  }

  /*
   * 2. Look for containerId
   */
  let n1;
  for (let k in widget) {
    if (widget[k] && widget[k].nodeType) {
      if (widget[k].id) {
        info.containerId = widget[k].id;
      } else if (widget[k].dataset.sitekey) {
        widget[k].id = "recaptcha-container-" + Date.now();
        info.containerId = widget[k].id;
      } else if (info.version == 'v2') {
        if (!n1) {
          n1 = widget[k];
          continue;
        }

        if (widget[k].isSameNode(n1)) {
          widget[k].id = "recaptcha-container-" + Date.now();
          info.containerId = widget[k].id;
          break;
        }
      }
    }
  }

  /*
   * 3. Look for sitekey, action, s and callback
   */
  for (let k1 in widget) {
    let obj = widget[k1];

    if (typeof obj !== "object") continue;

    for (let k2 in obj) {
      if (obj[k2] === null) continue;
      if (typeof obj[k2] !== "object") continue;
      if (obj[k2].sitekey === undefined) continue;
      if (obj[k2].action === undefined) continue;

      for (let k3 in obj[k2]) {
        if (k3 === "sitekey") info.sitekey = obj[k2][k3];
        if (k3 === "action") info.action = obj[k2][k3];
        if (k3 === "s") info.s = obj[k2][k3];
        if (k3 === "callback") info.callback = obj[k2][k3];
        if (k3 === "bind" && obj[k2][k3]) {
          if (typeof obj[k2][k3] === "string") {
            info.bindedButtonId = obj[k2][k3];
          } else {
            let button = obj[k2][k3];
            if (button.id === undefined) {
              button.id = "recaptchaBindedElement" + widget.id;
            }
            info.bindedButtonId = button.id;
          }
        }
      }
    }
  }

  /*
   * 4. Prepare callback
   */
  if (typeof info.callback === "function") {
    let callbackKey = "reCaptchaWidgetCallback" + widget.id;
    window[callbackKey] = info.callback;
    info.callback = callbackKey;
  }

  return info;
}

otwórz konsolę przeglądarki, wklej ten kod i naciśnij Enter, a następnie wpisz `getRecaptchaWidgetInfo(___grecaptcha_cfg.clients[0])`

Wniosek#

Aby rozwiązać wyzwanie reCAPTCHA, należy zadbać o te parametry, ponieważ są one niezbędne do prawidłowego działania solwera CAPTCHA.