reCAPTCHA solver

reCAPTCHA solver

reCAPTCHA, a visually-based challenge designed to be difficult for bots to bypass, typically presents users with a series of images that they need to solve or identify correctly to bypass, but it also blocks traffic from automated bots, leading to accessibility and testing issues.

2Captcha is the fastest reCAPTCHA solver allows you to automatically bypass Google reCAPTCHAs found on any webpage.

  • No risk: pay only for solved captchas
  • Сaptcha bypass service is fully automated
  • 24/7 Support
Start now
Captcha namePrice per 1000Solving speedHow to bypass
reCAPTCHA V2Price per 1000$1 - $2.99Solving speed0sHow to bypass
reCAPTCHA V3Price per 1000$1.45 - $2.99Solving speed0sHow to bypass
reCAPTCHA EnterprisePrice per 1000$1 - $2.99Solving speed0sHow to bypass
More

How to bypass reCAPTCHA

  • Sign up on best captcha solving service
  • Implement anti captcha API
  • Send CAPTCHAS for solve automatically
  • Get fast bypassed captcha
reCAPTCHA bypass

reCAPTCHA

The demand for software that can distinguish between human and bot activity has increased as studies show that bots generate more than 40% of all traffic.

reCAPTCHA challenges continue to be a significant burden on the web, delaying and frequently blocking access to services and information based on physical and cognitive abilities, social and cultural background, and the devices or networks connected from.

reCAPTCHA difficulty can be so tricky that they appear friendlier to bots than to humans.The goal of the reCAPTHCA bypass project is to improve our experience with captchas by providing easy access to solutions already used by automated systems.

Reasons to reCAPTCHA bypass in instances like these:

  • Learning DDoS cyber attack
  • Understanding CDN and DDoS protection
  • Learning web scraping
  • Learning search engine technology
Example of reCAPTCHA widget 'i am not a robot'

What is reCAPTCHA?

A reCAPTCHA is a test that determines whether an online form is being filled out by a human or a computer program. Its purpose is to prevent bots, auto-entry services, hackers, and other automated logins from abusing the system.

What's the story behind the amusing name? CAPTCHA stands for "Completely Automated Public Turing Test to Distinguish Computers and Humans." A Turing Test is a computer or program intelligence test.

CAPTCHAs have numerous applications. They prevent hackers from performing brute force attacks, in which they try every possible password combination to gain access to an account. They also prevent bogus sweepstakes entries and illegitimate contest votes.

Captcha is merely a feature for preventing spam, bulk posting, and distinguishing humans from bots. The most popular service is Google reCAPTCHA.

Reasons for using reCAPTCHA. Avoiding threats, fraud and attacks:

  • Web scraping. Prevent the theft of sensitive data and valuable content.
  • Fraud. Stop simulating and faking actual user clicks and views.
  • Inventory denial. Reduce automated assaults that deplete goods or services supplies;
  • Bots are prevented from registering for services such as free email.
reCAPTCHA workflow

How does reCAPTCHA work?

It gives users the option of selecting a picture or typing a difficult-to-decipher word. Something that, presumably, only a human being is capable of.

Google reCAPTCHA is a free service offered to prevent spam and abuse of websites. It uses advanced risk analysis techniques and allows only valid users to proceed.

reCAPTCHA uses an advanced risk analysis engine and adaptive challenges to keep malicious software from engaging in abusive activities on your website. Meanwhile, legitimate users will be able to login, make purchases, view pages, or create accounts and fake users will be blocked.

To overcome the binary heuristic logic of traditional challenge-based bot detection technologies, reCAPTCHA's risk-based bot algorithms employ continuous machine learning that takes into account every customer and bot interaction.

  • reCAPTCHA v2 verifies if an interaction is legitimate with the “I am not a robot” checkbox and invisible reCAPTCHA badge challenges.
  • reCAPTCHA v3 assigns a score to requests and allows you to take action in the context of the site.
  • reCAPTCHA Enterprise provides a frictionless user experience by easily extending fraud protection across websites rather than being limited to specific pages. Using an API-based service, it can be integrated into your mobile application.
reCAPTCHA widget on web site

reCAPTCHA bypass reasons

While browsing the web, you may encounter a captcha screen - those small quiz boxes that must be completed to prove you are not a spambot. Before you can access some parts of a website, you must first pass the CAPTCHA test to prove you are "not a robot." This usually happens when you need to fill out a form to sign up. As a result, it is extremely frustrating.

In such cases, it is necessary to bypass the captcha. Reasons:

  • Understanding a DDoS cyber attack
  • To comprehend CDN and DDoS protection
  • Understanding web scraping
  • Learning search engine technology
Problems when using reCAPTCHA

CAPTCHAs degrade user experience. If the CAPTCHA test is poorly designed, it may fail multiple times. For example, if the requirement is to "pick all boxes that have a fire hydrant" and it's all one big fire hydrant with only the tip of a piece on a few pixels on one box, should it be clicked or not?

Show legitimate ways to get around Google ReCAPTCHA is only effective against humans, not bots. Stop wasting time solving captchas and start browsing instead!

This post will teach you how to bypass the recaptcha, which will save you a lot of nervousness.

The article will be beneficial to those who have a large number of similar tasks that can be automated.

Security specialists and highload system developers will also be interested.

  • reCAPTCHA bypass methods

    How to bypass reCAPTCHA

    Is it possible to automatically bypass recaptcha? Yes, computers can solve CAPTCHAs, in a nutshell! It entails using neural networks (the meat and potatoes of artificial intelligence) to train computers based on CAPTCHA examples and the text in each image.

    There are different types of solvers:

    • Human-based method
    • Optical character recognition
  • reCAPTCHA bypass extensions

    Yes, if you have good enough computer vision, a CAPTCHA (a completely automated public Turing test to tell humans and computers apart) is by-passable.

    Google's efforts to solve own CAPTCHAs have reached 96% accuracy.

    This is one of the reasons Google stopped using them, and CAPTCHAs are no longer legal components of e-signatures.

    To bypass reCAPTCHA the following are use

  • reCAPTCHA bypass services

    Using reCAPTCHA bypass service the accuracy is not 100 percent, but if you're only going to encounter the Google reCAPTCHA a few, will do.

    To automate recaptcha bypass, a neural network must be trained. There are several tools available on the market to assist with this, as well as automation of product protection testing. A single captcha bypass with such a tool can cost you less than a cent.

    All that is required is to:

    • Join the best captcha solving service.
    • Use an anti-captcha API.
    • CAPTCHAS are sent to be solved automatically.
    • Get captcha bypassed quickly.
reCAPTCHA V2

How to bypass reCAPTCHA V2

The most popular Google captcha, also known as "I'm not a robot." Finding and marking pictures of the requested objects is critical to a solution.

reCAPTCHA V2 is more user-friendly and provides more accurate bot identification. Stop dangerous bots and protect user privacy. Any publisher can use captcha for free. more control that necessitates top-tier security.

reCAPTCHA V2

$1.00 - $2.99
Price per 1000
0 sec.
Solving speed

reCAPTCHA solver API:

  • We support API for «PHP» language
  • We support API for «Python» language
  • We support API for «Go» language
  • We support API for «Ruby» language
  • We support API for «C#» language
  • We support API for «Java» language
reCAPTCHA V2 bypass workflow

The process of solving reCAPTCHA V2 is as follows:

  • Service take the captcha parameters from the page in the form of the data-sitekey parameter and the page URL and transfer it to the server, where the solves it
  • Response is returned in the form of a token, which must be entered into the appropriate field for the captcha solving.

Recognition price: $1.00 - $2.99 for 1000 solving captchas.

reCAPTCHA V2 bypass API service

  1. Open developer's console in your browser and find element with data-sitekey attribute.

    <div
    class="g-recaptcha"
    data-sitekey="6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u"
    id="recaptcha"
    ></div>
  2. Send sitekey and pageurl to 2Captcha API. Wait for the result, which may look like this:

    03AGdBq27lvCYmKkaqDdxWLfMe3ovADGfGlSyiR-fN_EJrZGniTAmdH1XSjK8ralsctfjOLX2K0T7dJfxPqqga8dtSG2Lmns8Gk2ckcU6PQzUFieBqrtpkr5PPwnngew0Rnot2ik1y8m202u6pHTIquExlEYSlzS8vfoyPPt8fCf-Zrbu8vWkiY8Ogj17ommHMgkguZbmEyOdfLTXzhRko-a655_jJdCMjEtMxva-b78DnGlXu9d0o6vEmrw9n8ABu4lLsWnIbYPH0beXRRIkUE3si64Xhwkh1aO3L1HaIR3sfR0vOs3GV1OBzry_tFsZM0ZhSQovKJwjLlotrYajyTSRv3hgvXtLlLxXzbAwgeI91-wM7AFEte0uO_DhcNajxZr7E50wU9vuAe_drGWe4q-hNx4PQPenjaw

  3. In developer's console, find textarea with id="g-recaptcha-response", and put there received code. Then, click the Check button.

    Read more - captcha solving API dоcumentation.

    // https://github.com/2captcha/2captcha-php
    
    require(__DIR__ . '/../src/autoloader.php');
    
    $solver = new \TwoCaptcha\TwoCaptcha('YOUR_API_KEY');
    
    try {
        $result = $solver->recaptcha([
            'sitekey' => '6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u',
            'url'     => 'https://2captcha.com/demo/recaptcha-v2',
        ]);
    } catch (\Exception $e) {
        die($e->getMessage());
    }
    
    die('Captcha solved: ' . $result->code);
    # https://github.com/2captcha/2captcha-python
    
    import sys
    import os
    
    sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))
    
    from twocaptcha import TwoCaptcha
    
    api_key = os.getenv('APIKEY_2CAPTCHA', 'YOUR_API_KEY')
    
    solver = TwoCaptcha(api_key)
    
    try:
        result = solver.recaptcha(
            sitekey='6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u',
            url='https://2captcha.com/demo/recaptcha-v2')
    
    except Exception as e:
        sys.exit(e)
    
    else:
        sys.exit('solved: ' + str(result))
    // https://github.com/2captcha/2captcha-csharp
    
    using System;
    using System.Linq;
    using TwoCaptcha.Captcha;
    
    namespace TwoCaptcha.Examples
    {
        public class reCAPTCHAV2Example
        {
            public void Main()
            {
                TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY");
                ReCaptcha captcha = new ReCaptcha();
                captcha.SetSiteKey("6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u");
                captcha.SetUrl("https://2captcha.com/demo/recaptcha-v2");
                try
                {
                    solver.Solve(captcha).Wait();
                    Console.WriteLine("Captcha solved: " + captcha.Code);
                }
                catch (AggregateException e)
                {
                    Console.WriteLine("Error occurred: " + e.InnerExceptions.First().Message);
                }
            }
        }
    }
    // https://github.com/2captcha/2captcha-java
    
    package examples;
    
    import com.twocaptcha.TwoCaptcha;
    import com.twocaptcha.captcha.reCAPTCHA;
    
    public class reCAPTCHAV2Example {
        public static void main(String[] args) {
            TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY");
            ReCaptcha captcha = new ReCaptcha();
            captcha.setSiteKey("6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u");
            captcha.setUrl("https://2captcha.com/demo/recaptcha-v2");
            try {
                solver.solve(captcha);
                System.out.println("Captcha solved: " + captcha.getCode());
            } catch (Exception e) {
                System.out.println("Error occurred: " + e.getMessage());
            }
        }
    
    }
    // https://github.com/2captcha/2captcha-go
    
    package main
    
    import (
        "fmt"
        "log"
        "github.com/2captcha/2captcha-go"
    )
    
    func main() {
        client := api2captcha.NewClient("API_KEY")
        cap := api2captcha.ReCaptcha{
            SiteKey: "6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u",
            Url: "https://2captcha.com/demo/recaptcha-v2",
        } 
        code, err := client.Solve(cap.ToRequest())
        if err != nil {
            log.Fatal(err);
        }
        fmt.Println("code "+code)
    }
    // https://github.com/2captcha/2captcha-cpp
    
    #include <cstdio>
    
    #include "curl_http.hpp"
    #include "api2captcha.hpp"
    
    int main (int ac, char ** av)
    {
    api2captcha::curl_http_t http;
    http.set_verbose (true);
    
    api2captcha::client_t client;
    client.set_http_client (&http);
    client.set_api_key (API_KEY);
    
    api2captcha::recaptcha_t cap;
    cap.set_site_key ("6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u");
    cap.set_url ("https://2captcha.com/demo/recaptcha-v2");
    
    try
    {
        client.solve (cap);
        printf ("code '%s'\n", cap.code ().c_str ());
    }
    catch (std::exception & e)
    {
        fprintf (stderr, "Failed: %s\n", e.what ());
    }
    
    return 0;   
    }
    require 'api_2captcha'
    
    client =  Api2Captcha.new("YOUR_API_KEY")
    
    result = client.recaptcha_v2({
      googlekey: '6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
      pageurl: 'https://mysite.com/page/with/recaptcha_v2'
    })
reCAPTCHA V2 Callback

How to bypass reCAPTCHA V2 Callback

reCAPTCHA V2 Callback is more user-friendly and provides more accurate bot identification. Stop dangerous bots and protect user privacy. Captcha is free to use for any publisher. more control that requires top-notch security.

The process of solving reCAPTCHA V2 Callback does not differ from the similar process of solving reCAPTCHA V2.

reCAPTCHA V2 Callback

$1.00 - $2.99
Price per 1000
0 sec.
Solving speed

reCAPTCHA solver API:

  • We support API for «PHP» language
  • We support API for «Python» language
  • We support API for «Go» language
  • We support API for «Ruby» language
  • We support API for «C#» language
  • We support API for «Java» language
reCAPTCHA V2 Callback bypass workflow

The process of solving reCAPTCHA V2 Callback is as follows:

  • Service take the captcha parameters from the page in the form of the data-sitekey parameter and the page URL and transfer it to the server, where the solves it
  • Response is returned in the form of a token, which must be entered into the appropriate field for the captcha solving.

Instead, a callback function can be used.

When the captcha is recognized, this function is called. The callback function is typically specified in the data-callback parameter or as the callback parameter of the grecaptcha.render method call.

Recognition price: $1.00 - $2.99 for 1000 solving captchas.

reCAPTCHA V2 Callback bypass API service

  1. Open developer's console in your browser and find element with data-sitekey attribute.

    <div
    class="g-recaptcha"
    data-sitekey="6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u"
    id="recaptcha"
    ></div>
  2. Send sitekey and pageurl to 2Captcha API. Wait for the result, which may look like this:

    03AGdBq27lvCYmKkaqDdxWLfMe3ovADGfGlSyiR-fN_EJrZGniTAmdH1XSjK8ralsctfjOLX2K0T7dJfxPqqga8dtSG2Lmns8Gk2ckcU6PQzUFieBqrtpkr5PPwnngew0Rnot2ik1y8m202u6pHTIquExlEYSlzS8vfoyPPt8fCf-Zrbu8vWkiY8Ogj17ommHMgkguZbmEyOdfLTXzhRko-a655_jJdCMjEtMxva-b78DnGlXu9d0o6vEmrw9n8ABu4lLsWnIbYPH0beXRRIkUE3si64Xhwkh1aO3L1HaIR3sfR0vOs3GV1OBzry_tFsZM0ZhSQovKJwjLlotrYajyTSRv3hgvXtLlLxXzbAwgeI91-wM7AFEte0uO_DhcNajxZr7E50wU9vuAe_drGWe4q-hNx4PQPenjaw

  3. In developer's console, find textarea with id="g-recaptcha-response", and put there received code. Then, click the Check button.

    Read more - captcha solving API dоcumentation.

    // https://github.com/2captcha/2captcha-php
    
    require(__DIR__ . '/../src/autoloader.php');
    
    $solver = new \TwoCaptcha\TwoCaptcha('YOUR_API_KEY');
    
    try {
        $result = $solver->recaptcha([
            'sitekey' => '6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u',
            'url'     => 'https://2captcha.com/demo/recaptcha-v2-callback',
        ]);
    } catch (\Exception $e) {
        die($e->getMessage());
    }
    
    die('Captcha solved: ' . $result->code);
    # https://github.com/2captcha/2captcha-python
    
    import sys
    import os
    
    sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))
    
    from twocaptcha import TwoCaptcha
    
    api_key = os.getenv('APIKEY_2CAPTCHA', 'YOUR_API_KEY')
    
    solver = TwoCaptcha(api_key)
    
    try:
        result = solver.recaptcha(
            sitekey='6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u',
            url='https://2captcha.com/demo/recaptcha-v2-callback')
    
    except Exception as e:
        sys.exit(e)
    
    else:
        sys.exit('solved: ' + str(result))
    // https://github.com/2captcha/2captcha-csharp
    
    using System;
    using System.Linq;
    using TwoCaptcha.Captcha;
    
    namespace TwoCaptcha.Examples
    {
        public class reCAPTCHAV2Example
        {
            public void Main()
            {
                TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY");
                ReCaptcha captcha = new ReCaptcha();
                captcha.SetSiteKey("6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u");
                captcha.SetUrl("https://2captcha.com/demo/recaptcha-v2-callback");
                try
                {
                    solver.Solve(captcha).Wait();
                    Console.WriteLine("Captcha solved: " + captcha.Code);
                }
                catch (AggregateException e)
                {
                    Console.WriteLine("Error occurred: " + e.InnerExceptions.First().Message);
                }
            }
        }
    }
    // https://github.com/2captcha/2captcha-java
    
    package examples;
    
    import com.twocaptcha.TwoCaptcha;
    import com.twocaptcha.captcha.reCAPTCHA;
    
    public class reCAPTCHAV2Example {
        public static void main(String[] args) {
            TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY");
            ReCaptcha captcha = new ReCaptcha();
            captcha.setSiteKey("6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u");
            captcha.setUrl("https://2captcha.com/demo/recaptcha-v2-callback");
            try {
                solver.solve(captcha);
                System.out.println("Captcha solved: " + captcha.getCode());
            } catch (Exception e) {
                System.out.println("Error occurred: " + e.getMessage());
            }
        }
    
    }
    // https://github.com/2captcha/2captcha-go
    
    package main
    
    import (
        "fmt"
        "log"
        "github.com/2captcha/2captcha-go"
    )
    
    func main() {
        client := api2captcha.NewClient("API_KEY")  
        cap := api2captcha.ReCaptcha{
            SiteKey: "6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u",
            Url: "https://2captcha.com/demo/recaptcha-v2-callback",
        }
        code, err := client.Solve(cap.ToRequest())
        if err != nil {
            log.Fatal(err);
        }
        fmt.Println("code "+code)
    }
    // https://github.com/2captcha/2captcha-cpp
    
    #include <cstdio>
    
    #include "curl_http.hpp"
    #include "api2captcha.hpp"
    
    int main (int ac, char ** av)
    {
    api2captcha::curl_http_t http;
    http.set_verbose (true);
    
    api2captcha::client_t client;
    client.set_http_client (&http);
    client.set_api_key (API_KEY);
    
    api2captcha::recaptcha_t cap;
    cap.set_site_key ("6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u");
    cap.set_url ("https://2captcha.com/demo/recaptcha-v2-callback");
    
    try
    {
        client.solve (cap);
        printf ("code '%s'\n", cap.code ().c_str ());
    }
    catch (std::exception & e)
    {
        fprintf (stderr, "Failed: %s\n", e.what ());
    }
    
    return 0;   
    }
    require 'api_2captcha'
    
    client =  Api2Captcha.new("YOUR_API_KEY")
    
    result = client.recaptcha_v2({
      googlekey: '6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
      pageurl: 'https://mysite.com/page/with/recaptcha_v2'
    })
reCAPTCHA V2 Invisible

How to bypass reCAPTCHA V2 Invisible

Depending on the state of your cookies, you may or may not see this invisible captcha. The captcha will not be displayed if their quality is good; otherwise, the default Google reCAPTCHA V2 will be displayed.

Rather than requiring the user to select a checkbox, the reCAPTCHA V2 Invisible badge is activated when they click on an already-existing button on your website or make a JavaScript API call. Only the most suspicious traffic will be asked to complete a captcha.

reCAPTCHA V2 Invisible

$1.00 - $2.99
Price per 1000
0 sec.
Solving speed

reCAPTCHA solver API:

  • We support API for «PHP» language
  • We support API for «Python» language
  • We support API for «Go» language
  • We support API for «Ruby» language
  • We support API for «C#» language
  • We support API for «Java» language
reCAPTCHA V2 Invisible bypass workflow

The process of solving reCAPTCHA V2 Invisible is as follows:

  • Service take the captcha parameters from the page in the form of the data-sitekey parameter and the page URL and transfer it to the server, where the solves it
  • Response is returned in the form of a token, which must be entered into the appropriate field for the captcha solving.

Recognition price: $1.00 - $2.99 for 1000 solving captchas.

reCAPTCHA V2 Invisible bypass API service

  1. Open developer's console in your browser and find element with data-sitekey attribute.

    <div
    class="g-recaptcha"
    data-sitekey="6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u"
    id="recaptcha"
    ></div>
  2. Send sitekey and pageurl to 2Captcha API. Wait for the result, which may look like this:

    03AGdBq27lvCYmKkaqDdxWLfMe3ovADGfGlSyiR-fN_EJrZGniTAmdH1XSjK8ralsctfjOLX2K0T7dJfxPqqga8dtSG2Lmns8Gk2ckcU6PQzUFieBqrtpkr5PPwnngew0Rnot2ik1y8m202u6pHTIquExlEYSlzS8vfoyPPt8fCf-Zrbu8vWkiY8Ogj17ommHMgkguZbmEyOdfLTXzhRko-a655_jJdCMjEtMxva-b78DnGlXu9d0o6vEmrw9n8ABu4lLsWnIbYPH0beXRRIkUE3si64Xhwkh1aO3L1HaIR3sfR0vOs3GV1OBzry_tFsZM0ZhSQovKJwjLlotrYajyTSRv3hgvXtLlLxXzbAwgeI91-wM7AFEte0uO_DhcNajxZr7E50wU9vuAe_drGWe4q-hNx4PQPenjaw

  3. In developer's console, find textarea with id="g-recaptcha-response", and put there received code. Then, click the Check button.

    Read more - captcha solving API dоcumentation.

    // https://github.com/2captcha/2captcha-php
    
    require(__DIR__ . '/../src/autoloader.php');
    
    $solver = new \TwoCaptcha\TwoCaptcha('YOUR_API_KEY');
    
    try {
        $result = $solver->recaptcha([
            'sitekey' => '6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u',
            'url'     => 'https://2captcha.com/demo/recaptcha-v2-invisible',
        ]);
    } catch (\Exception $e) {
        die($e->getMessage());
    }
    
    die('Captcha solved: ' . $result->code);
    # https://github.com/2captcha/2captcha-python
    
    import sys
    import os
    
    sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))
    
    from twocaptcha import TwoCaptcha
    
    api_key = os.getenv('APIKEY_2CAPTCHA', 'YOUR_API_KEY')
    
    solver = TwoCaptcha(api_key)
    
    try:
        result = solver.recaptcha(
            sitekey='6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u',
            url='https://2captcha.com/demo/recaptcha-v2-invisible')
    
    except Exception as e:
        sys.exit(e)
    
    else:
        sys.exit('solved: ' + str(result))
    // https://github.com/2captcha/2captcha-csharp
    
    using System;
    using System.Linq;
    using TwoCaptcha.Captcha;
    
    namespace TwoCaptcha.Examples
    {
        public class reCAPTCHAV2Example
        {
            public void Main()
            {
                TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY");
                ReCaptcha captcha = new ReCaptcha();
                captcha.SetSiteKey("6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u");
                captcha.SetUrl("https://2captcha.com/demo/recaptcha-v2-invisible");
                try
                {
                    solver.Solve(captcha).Wait();
                    Console.WriteLine("Captcha solved: " + captcha.Code);
                }
                catch (AggregateException e)
                {
                    Console.WriteLine("Error occurred: " + e.InnerExceptions.First().Message);
                }
            }
        }
    }
    // https://github.com/2captcha/2captcha-java
    
    package examples;
    
    import com.twocaptcha.TwoCaptcha;
    import com.twocaptcha.captcha.reCAPTCHA;
    
    public class reCAPTCHAV2Example {
        public static void main(String[] args) {
            TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY");
            ReCaptcha captcha = new ReCaptcha();
            captcha.setSiteKey("6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u");
            captcha.setUrl("https://2captcha.com/demo/recaptcha-v2-invisible");
            try {
                solver.solve(captcha);
                System.out.println("Captcha solved: " + captcha.getCode());
            } catch (Exception e) {
                System.out.println("Error occurred: " + e.getMessage());
            }
        }
    
    }
    // https://github.com/2captcha/2captcha-go
    
    package main
    
    import (
        "fmt"
        "log"
        "github.com/2captcha/2captcha-go"
    )
    
    func main() {
        client := api2captcha.NewClient("API_KEY")
        cap := api2captcha.ReCaptcha{
            SiteKey: "6LdO5_IbAAAAAAeVBL9TClS19NUTt5wswEb3Q7C5",
            Url: "https://2captcha.com/demo/recaptcha-v2-invisible",
            Invisible: true,
        }
        code, err := client.Solve(cap.ToRequest())
        if err != nil {
            log.Fatal(err);
        }
        fmt.Println("code "+code)
    }
    // https://github.com/2captcha/2captcha-cpp
    
    #include <cstdio>
    
    #include "curl_http.hpp"
    #include "api2captcha.hpp"
    
    int main (int ac, char ** av)
    {
    api2captcha::curl_http_t http;
    http.set_verbose (true);
    
    api2captcha::client_t client;
    client.set_http_client (&http);
    client.set_api_key (API_KEY);
    
    api2captcha::recaptcha_t cap;
    cap.set_site_key ("6LdO5_IbAAAAAAeVBL9TClS19NUTt5wswEb3Q7C5");
    cap.set_url ("https://2captcha.com/demo/recaptcha-v2-invisible");
    cap.set_invisible (true);
    
    try
    {
        client.solve (cap);
        printf ("code '%s'\n", cap.code ().c_str ());
    }
    catch (std::exception & e)
    {
        fprintf (stderr, "Failed: %s\n", e.what ());
    }
    
    return 0;   
    }
    require 'api_2captcha'
    
    client =  Api2Captcha.new("YOUR_API_KEY")
    
    result = client.recaptcha_v2({
      googlekey: '6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
      pageurl: 'https://mysite.com/page/with/recaptcha_v2',
      invisible: 1
    })
reCAPTCHA V3

How to bypass reCAPTCHA V3

Google's best captcha, Google reCAPTCHA V3, is based on a user's humanity score, which can range from 0.1 to 0.9, and does not require them to perform any chores.

reCAPTCHA V3 identifies malicious traffic on your website without requiring user interaction. Instead of displaying a CAPTCHA challenge, reCAPTCHA V3 provides a score, allowing you to choose the best course of action for your site.

As a result, reCAPTCHA v3 assists businesses in detecting bots while ostensibly providing a better user experience — but at the expense of user privacy.

Here's how it works: Google analyzes behavior as users navigate a website, and they rank that behavior to determine how “risky” the user is, i.e., how likely it is that the session is actually a bot and not a human.

While reCAPTCHA v3 can help websites detect bots, it is only useful for that purpose. If you want to protect your website from ad fraud, you'll need to do more than rely on this service. Based on client performance data, carefully crafted malware and human fraud will bypass reCAPTCHA v3 and have a high false positive rate when misclassifying real people as fraud.

reCAPTCHA V3

$1.45 - $2.99
Price per 1000
0 sec.
Solving speed

reCAPTCHA solver API:

  • We support API for «PHP» language
  • We support API for «Python» language
  • We support API for «Go» language
  • We support API for «Ruby» language
  • We support API for «C#» language
  • We support API for «Java» language
reCAPTCHA V3 bypass workflow

The process of solving reCAPTCHA V3 is as follows:

  • Service take the captcha parameters from the page in the form of the data-sitekey parameter and the page URL and transfer it to the server, where the solves it
  • Response is returned in the form of a token, which must be entered into the appropriate field for the captcha solving.

Type of captcha is similar to reCAPTCHA V2, i.e. the basic principle remains the same - the service receives a token, which is sent in a POST request to the site, and the site verifies the token through the API.

Recognition price: $1.45 - $2.99 for 1000 solving captchas.

reCAPTCHA V3 bypass API service

  1. Open developer's console in your browser and find element with data-sitekey attribute.

    <div
    class="g-recaptcha"
    data-sitekey="6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u"
    id="recaptcha"
    ></div>
  2. Send sitekey and pageurl to 2Captcha API. Wait for the result, which may look like this:

    03AGdBq27lvCYmKkaqDdxWLfMe3ovADGfGlSyiR-fN_EJrZGniTAmdH1XSjK8ralsctfjOLX2K0T7dJfxPqqga8dtSG2Lmns8Gk2ckcU6PQzUFieBqrtpkr5PPwnngew0Rnot2ik1y8m202u6pHTIquExlEYSlzS8vfoyPPt8fCf-Zrbu8vWkiY8Ogj17ommHMgkguZbmEyOdfLTXzhRko-a655_jJdCMjEtMxva-b78DnGlXu9d0o6vEmrw9n8ABu4lLsWnIbYPH0beXRRIkUE3si64Xhwkh1aO3L1HaIR3sfR0vOs3GV1OBzry_tFsZM0ZhSQovKJwjLlotrYajyTSRv3hgvXtLlLxXzbAwgeI91-wM7AFEte0uO_DhcNajxZr7E50wU9vuAe_drGWe4q-hNx4PQPenjaw

  3. In developer's console, find textarea with id="g-recaptcha-response", and put there received code. Then, click the Check button.

    Read more - captcha solving API dоcumentation.

    // https://github.com/2captcha/2captcha-php
    
    require(__DIR__ . '/../src/autoloader.php');
    
    $solver = new \TwoCaptcha\TwoCaptcha('YOUR_API_KEY');
    
    try {
        $result = $solver->recaptcha([
            'sitekey' => '6LfdxboZAAAAAMtnONIt4DJ8J1t4wMC-kVG02zIO',
            'url'     => 'https://2captcha.com/demo/recaptcha-v3',
            'version' => 'v3',
        ]);
    } catch (\Exception $e) {
        die($e->getMessage());
    }
    
    die('Captcha solved: ' . $result->code);
    # https://github.com/2captcha/2captcha-python
    
    import sys
    import os
    
    sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))
    
    from twocaptcha import TwoCaptcha
    
    api_key = os.getenv('APIKEY_2CAPTCHA', 'YOUR_API_KEY')
    
    solver = TwoCaptcha(api_key)
    
    try:
        result = solver.recaptcha(
            sitekey='6LfdxboZAAAAAMtnONIt4DJ8J1t4wMC-kVG02zIO',
            url='https://2captcha.com/demo/recaptcha-v3'
            version='v3')
    
    except Exception as e:
        sys.exit(e)
    
    else:
        sys.exit('solved: ' + str(result))
    // https://github.com/2captcha/2captcha-csharp
    
    using System;
    using System.Linq;
    using TwoCaptcha.Captcha;
    
    namespace TwoCaptcha.Examples
    {
        public class reCAPTCHAV2Example
        {
            public void Main()
            {
                TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY");
                ReCaptcha captcha = new ReCaptcha();
                captcha.SetSiteKey("6LfdxboZAAAAAMtnONIt4DJ8J1t4wMC-kVG02zIO");
                captcha.SetUrl("https://2captcha.com/demo/recaptcha-v3");
                captcha.SetVersion("v3");
                try
                {
                    solver.Solve(captcha).Wait();
                    Console.WriteLine("Captcha solved: " + captcha.Code);
                }
                catch (AggregateException e)
                {
                    Console.WriteLine("Error occurred: " + e.InnerExceptions.First().Message);
                }
            }
        }
    }
    // https://github.com/2captcha/2captcha-java
    
    package examples;
    
    import com.twocaptcha.TwoCaptcha;
    import com.twocaptcha.captcha.reCAPTCHA;
    
    public class reCAPTCHAV2Example {
        public static void main(String[] args) {
            TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY");
            ReCaptcha captcha = new ReCaptcha();
            captcha.setSiteKey("6LfdxboZAAAAAMtnONIt4DJ8J1t4wMC-kVG02zIO");
            captcha.setUrl("https://2captcha.com/demo/recaptcha-v3");
            captcha.setVersion("v3");
            try {
                solver.solve(captcha);
                System.out.println("Captcha solved: " + captcha.getCode());
            } catch (Exception e) {
                System.out.println("Error occurred: " + e.getMessage());
            }
        }
    
    }
    // https://github.com/2captcha/2captcha-go
    
    package main
    
    import (
        "fmt"
        "log"
        "github.com/2captcha/2captcha-go"
    )
    
    func main() {
        client := api2captcha.NewClient("API_KEY")
        cap := api2captcha.ReCaptcha{
            SiteKey: "6LfB5_IbAAAAAMCtsjEHEHKqcB9iQocwwxTiihJu",
            Url: "https://2captcha.com/demo/recaptcha-v3",
            Version: "v3",
            Action: "demo_action",
            Score: 0.9,
        }
        code, err := client.Solve(cap.ToRequest())
        if err != nil {
            log.Fatal(err);
        }
        fmt.Println("code "+code)
    }
    // https://github.com/2captcha/2captcha-cpp
    
    #include <cstdio>
    
    #include "curl_http.hpp"
    #include "api2captcha.hpp"
    
    int main (int ac, char ** av)
    {
    api2captcha::curl_http_t http;
    http.set_verbose (true);
    
    api2captcha::client_t client;
    client.set_http_client (&http);
    client.set_api_key (API_KEY);
    
    api2captcha::recaptcha_t cap;
    cap.set_site_key ("6LfB5_IbAAAAAMCtsjEHEHKqcB9iQocwwxTiihJu");
    cap.set_url ("https://2captcha.com/demo/recaptcha-v3");
    cap.set_version ("v3");
    cap.set_action ("demo_action");
    cap.set_score (0.9);
    
    try
    {
        client.solve (cap);
        printf ("code '%s'\n", cap.code ().c_str ());
    }
    catch (std::exception & e)
    {
        fprintf (stderr, "Failed: %s\n", e.what ());
    }
    
    return 0;   
    }
    require 'api_2captcha'
    
    client =  Api2Captcha.new("YOUR_API_KEY")
    
    result = client.recaptcha_v3({
      googlekey: '6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
      pageurl: 'https://mysite.com/page/with/recaptcha_v3',
      version: 'v3',
      score: 0.3,
      action: 'verify'
    })
reCAPTCHA Enterprise

How to bypass reCAPTCHA Enterprise

Google's most recent captcha is known as reCAPTCHA Enterprise. It allows website managers to record the interaction outcome, including whether or not it was a person, and can be used as V2 and V3

To differentiate between humans and robots, the system employs sophisticated risk analysis methods.

Enterprise V2 combines the features of V3 and non-Enterprise V2. Users who completed V2 problems with the same appearance as V3 users received the same 0-1 score. Users with a score of 0.1 are classified as "bots," while those with a score of 0.9 are classified as "perfect humans." As a result, we created distinct task queues for Enterprise V2 that are only made up of workers with high V3 scores (0.7 and 0.9). You may have noticed that we have fewer employees at that level, as well as their work, because scores like these are extremely difficult to achieve even for an average surfer.

reCAPTCHA Enterprise

$1.00 - $2.99
Price per 1000
0 sec.
Solving speed

reCAPTCHA solver API:

  • We support API for «PHP» language
  • We support API for «Python» language
  • We support API for «Go» language
  • We support API for «Ruby» language
  • We support API for «C#» language
  • We support API for «Java» language
reCAPTCHA Enterprise bypass workflow

The process of solving reCAPTCHA Enterprise is as follows:

  • Service take the captcha parameters from the page in the form of the data-sitekey parameter and the page URL and transfer it to the server, where the solves it
  • Response is returned in the form of a token, which must be entered into the appropriate field for the captcha solving.

Recognition price: $1.00 - $2.99 for 1000 solving captchas.

reCAPTCHA Enterprise bypass API service

  1. First step is to determine that Enterprise version of reCAPTCHA is used. The main Enterprise attributes are:

    1. enterprise.js script instead of api.js is included on the page

      <script src="https://recaptcha.net/recaptcha/enterprise.js" async="" defer=""></script>

    2. grecaptcha.enterprise.METHOD calls in javascript code of the website instead of grecaptcha.METHOD

  2. Then you need to determine which implementation is used: V2, V2 Invisible or V3. It is quite easy, just follow the flowchart below, it works in 99% of cases.

    is the recaptcha checkbox visible? If yes, it is recaptcha v2; otherwise, does it ask to pass the test? If yes, it is recaptcha v2 invisible; otherwise, it is recaptcha v3

  3. Find captcha parameters the same way it is done for V2 or V3.

    • For V2 implementations there can be optional additional data used: in most cases that is a custom string value defined in `s` or `data-s` parameter. You can pass this data inside `data-s` request parameter.

    • For V3 you may also need the action value. To find it you need to dive into javascript code of the website and find the grecaptcha.enterprise.execute call. Action is passed to this call. But keep in mind that action is optional and can remain undefined.

  4. Add an additional parameter enterprise=1 to your request to in.php endpoint and interact with our API the same way it is done when solving V2 or solving V3 to get the token, then use the token in the same way it is used on your target website.

    Read more - captcha solving API dоcumentation.

    // https://github.com/2captcha/2captcha-php
    
    require(__DIR__ . '/../src/autoloader.php');
    
    $solver = new \TwoCaptcha\TwoCaptcha('YOUR_API_KEY');
    
    try {
        $result = $solver->recaptcha([
            'sitekey'   => '6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
            'url'       => 'https://mysite.com/page/with/recaptcha-enterprise',
            'enterprise' => 1,
        ]);
    } catch (\Exception $e) {
        die($e->getMessage());
    }
    
    die('Captcha solved: ' . $result->code);
    # https://github.com/2captcha/2captcha-python
    
    import sys
    import os
    
    sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))
    
    from twocaptcha import TwoCaptcha
    
    api_key = 'YOUR_API_KEY'
    
    solver = TwoCaptcha(api_key)
    
    try:
        result = solver.recaptcha(
            sitekey='6LdO5_IbAAAAAAeVBL9TClS19NUTt5wswEb3Q7C5',
            url='https://mysite.com/page/with/recaptcha-enterprise',
            invisible=1,
            enterprise=1
            )
    
    except Exception as e:
        sys.exit(e)
    
    else:
        sys.exit('result: ' + str(result))
    // https://github.com/2captcha/2captcha-csharp
    
    using System;
    using System.Linq;
    using TwoCaptcha.Captcha;
    
    namespace TwoCaptcha.Examples
    {
        public class ReCaptchaV2OptionsExample
        {
            public void Main()
            {
                TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY");
                ReCaptcha captcha = new ReCaptcha();
                captcha.SetSiteKey("6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-");
                captcha.SetUrl("https://mysite.com/page/with/recaptcha-enterprise");
                captcha.SetInvisible(true);
                captcha.SetEnterprise(true);
                try
                {
                    solver.Solve(captcha).Wait();
                    Console.WriteLine("Captcha solved: " + captcha.Code);
                }
                catch (AggregateException e)
                {
                    Console.WriteLine("Error occurred: " + e.InnerExceptions.First().Message);
                }
            }
        }
    }
    // https://github.com/2captcha/2captcha-java
    
    package examples;
    
    import com.twocaptcha.TwoCaptcha;
    import com.twocaptcha.captcha.ReCaptcha;
    
    public class ReCaptchaV2OptionsExample {
        public static void main(String[] args) {
            TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY");
            ReCaptcha captcha = new ReCaptcha();
            captcha.setSiteKey("6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-");
            captcha.setUrl("https://mysite.com/page/with/recaptcha-enterprise");
            captcha.setEnterprise(true);
            try {
                solver.solve(captcha);
                System.out.println("Captcha solved: " + captcha.getCode());
            } catch (Exception e) {
                System.out.println("Error occurred: " + e.getMessage());
            }
        }
    }
    // https://github.com/2captcha/2captcha-go
    
    package main
    
    import (
        "fmt"
        "log"
        "github.com/2captcha/2captcha-go"
    )
    
    func main() {
        client := api2captcha.NewClient("API_KEY")
        cap := api2captcha.ReCaptcha{
            SiteKey: "6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u",
            Url: "https://mysite.com/page/with/recaptcha-enterprise",
        Enterprise: true,
        }
        code, err := client.Solve(cap.ToRequest())
        if err != nil {
            log.Fatal(err);
        }
        fmt.Println("code "+code)
    }
    // https://github.com/2captcha/2captcha-cpp
    
    #include <cstdio>
    
    #include "curl_http.hpp"
    #include "api2captcha.hpp"
    
    int main (int ac, char ** av)
    {
    api2captcha::curl_http_t http;
    http.set_verbose (true);
    
    api2captcha::client_t client;
    client.set_http_client (&http);
    client.set_api_key (API_KEY);
    
    api2captcha::recaptcha_t cap;
    cap.set_site_key ("6LfD3PIbAAAAAJs_eEHvoOl75_83eXSqpPSRFJ_u");
    cap.set_url ("https://mysite.com/page/with/recaptcha-enterprise");
    cap.set_enterprise(true);
    
    try
    {
        client.solve (cap);
        printf ("code '%s'\n", cap.code ().c_str ());
    }
    catch (std::exception & e)
    {
        fprintf (stderr, "Failed: %s\n", e.what ());
    }
    
    return 0;
    }
    require 'api_2captcha'
    
    client =  Api2Captcha.new("YOUR_API_KEY")
    
    result = client.recaptcha_v2({
      googlekey: '6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
      pageurl: 'https://mysite.com/page/with/recaptcha_v2',
      enterprise: 1
    })
    # or
    result = client.recaptcha_v3({
      googlekey: '6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
      pageurl: 'https://mysite.com/page/with/recaptcha_v3',
      version: 'v3',
      score: 0.3,
      action: 'verify',
      enterprise: 1
    })

reCAPTCHA bypass in pentesting

To automate the testing of some server functions that require user input, a captcha implementation may be required. Try to test following:

  • Do not send the parameter related to the captcha.
  • Change from POST to GET or other HTTP Verbs
  • Change to JSON or from JSON
  • Send the captcha parameter empty.
  • Check if the value of the captcha is in the source code of the page.
  • Check if the value is inside a cookie.
  • Try to use an old captcha value
  • Check if you can use the same captcha value several times with the same or different sessionID.
  • If the captcha consists on a mathematical operation try to automate the calculation.
  • If the captcha consists of read characters from an image, check manually or with code how many images are being used and if only a few images are being used, detect them by MD5.
  • Use an OCR (https://github.com/tesseract-ocr/tesseract).