0
0

More than 1 year has passed since last update.

ClickCaptchaの突破方法

Posted at

1 CAPTCHA画像をダウンロードします。

2 画像を API に送信します。

SDKを使用する場合 (推奨):

PHP
    // https://github.com/2captchacom/2captcha-php

    require(__DIR__ . '/../src/autoloader.php');

    $solver = new \TwoCaptcha\TwoCaptcha('YOUR_API_KEY');

    try {
        $result = $solver->coordinates([
            'file' => 'path/to/captcha.jpg',
            'lang' => 'en',
        ]);
    } catch (\Exception $e) {
        die($e->getMessage());
    }

    die('Captcha solved: ' . $result->code);
Python
    # https://github.com/2captchacom/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, defaultTimeout=120, pollingInterval=5)

    try:
        result = solver.coordinates('path/to/captcha.jpg',
                                    lang='en')
    except Exception as e:
        sys.exit(e)

    else:
        sys.exit('solved: ' + str(result))
Java
    // https://github.com/2captchacom/2captcha-java

    package examples;

    import java.io.File;
    import com.twocaptcha.TwoCaptcha;
    import com.twocaptcha.captcha.Coordinates;

    public class CoordinatesOptionsExample {
        public static void main(String[] args) {
            TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY");
            Coordinates captcha = new Coordinates();
            captcha.setFile("path/to/captcha.jpg");
            captcha.setLang("en");
            try {
                solver.solve(captcha);
                System.out.println("Captcha solved: " + captcha.getCode());
            } catch (Exception e) {
                System.out.println("Error occurred: " + e.getMessage());
            }
        }
    }
C#
    // https://github.com/2captchacom/2captcha-csharp

    using System;
    using System.IO;
    using System.Linq;
    using TwoCaptcha.Captcha;

    namespace TwoCaptcha.Examples {
        public class CoordinatesOptionsExample {
            public void Main() {
                TwoCaptcha solver = new TwoCaptcha("YOUR_API_KEY");
                Coordinates captcha = new Coordinates();
                captcha.SetFile("path/to/captcha.jpg");
                captcha.SetLang("en");
                try
                {
                    solver.Solve(captcha).Wait();
                    Console.WriteLine("Captcha solved: " + captcha.Code);
                }
                catch (AggregateException e)
                {
                    Console.WriteLine("Error occurred: " + e.InnerExceptions.First().Message);
                }
            }
        }
    }
Go
    // https://github.com/2captchacom/2captcha-go

    package main

    import (
        "fmt"
        "log"
        "github.com/2captcha/2captcha-go"
    )

    func main() {
        client := api2captcha.NewClient("API_KEY")
        cap := api2captcha.Coordinates{
            File: "path/to/captcha.jpg",
            Lang: "en",
        }
        code, err := client.Solve(cap.ToRequest())
        if err != nil {
            log.Fatal(err);
        }
        fmt.Println("code "+code)
    }
C++
    // https://github.com/2captchacom/2captcha-cpp

    #include <cstdio>

    #include "curl_http.hpp"
    #include "api2captcha.hpp"

    int main (int ac, char ** av)
    {
    if (ac < 2)
    {
        printf ("Usage: ./coordinates path/to/image.jpg\n");
        return 0;
    }

    api2captcha::curl_http_t http;
    http.set_verbose (true);

    api2captcha::client_t client;
    client.set_http_client (&http);
    client.set_api_key (API_KEY);

    assert (ac > 1);
    api2captcha::coordinates_t cap (av[1]);

    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;   
    }

手動:

2.1 マルチパートのサンプルフォーム:

    ```html
    <form method="post" action="https://{{ hostname }}/in.php" enctype="multipart/form-data">
        <input type="hidden" name="method" value="post">
        <input type="hidden" name="coordinatescaptcha" value="1">
        Your key:
        <input type="text" name="key" value="YOUR_APIKEY">
        ClickCaptcha file:
        <input type="file" name="file">
        <input type="submit" value="Upload and get the ID">
    </form>
    ```

2.2 何も問題がなければ、サーバーはCAPTCHAのIDを返します。

    `OK|2122988149`

それ以外の場合、サーバーはエラーコードを返します。

2.3 5 秒後にGETリクエストを送信して結果を取得します。

    `GET https://{{ hostname }}/res.php?key=YOUR_API_KEY&action=get&id=2122988149`

CAPTCHAがすでに解決済みの場合、サーバーは回答トークンで応答します。

    `OK|coordinates:x=127,y=69;x=131,y=207;x=133,y=133`

CAPTCHAが未解決の場合、サーバーは「CAPCHA_NOT_READY」の結果を返します。この場合、5 秒以内にリクエストを繰り返してください。何か問題が発生した場合、サーバーは エラーコード を返します。

3 デベロッパーコ​​ンソールで、name="answer"inputを見つけて、そこに受け取ったコードを貼り付けます。次に、「確認」ボタンをクリックします。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0