KyranRana / cloudflare-bypass

A new and improved PHP library which bypasses the Cloudflare IUAM page using cURL
MIT License
274 stars 98 forks source link

i found a solution for cloudflare #116

Closed Laky-64 closed 5 years ago

Laky-64 commented 5 years ago

This solution require min php 7.2, the first loading takes 3 seconds, future loading 0 seconds, since it reads the old cf_clarence and updates only the __cfuid

Make folder CloudflareRequest

cloudflare.php

<?php
header('Content-Type: text/plain');
include ("cf.php");

function bypassCloudF($link) {
    preg_match("/\/\/(.*?)\//",$_GET['linkf'],$filesave);
    $cookie = __DIR__ . "/CloudflareRequest/".getUserIpAddr().".$filesave[1].fast.txt";
    $cookie2 = __DIR__ . "/CloudflareRequest/".getUserIpAddr().".$filesave[1].slow.txt";
    $head = array(
        'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
        'Accept-Language: en-US,en;q=0.5',
        'Accept-Encoding: deflate, b, php, html, txt',
        'Connection: keep-alive',
        'Upgrade-Insecure-Requests: 1'
    );
    $ua = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36';
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $link);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, $ua);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $head);
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
    curl_setopt($ch, CURLOPT_HTTPGET, true);
    curl_setopt($ch, CURLINFO_HEADER_OUT, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt($ch, CURLOPT_TIMEOUT, 15);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    $h = curl_exec($ch);

    if (strpos($h, 'id="cf-dn') === false)
        $q = getClearanceLink_old($h, $link,0);
    else
        $q = getClearanceLink($h, $link,0);

    $cfuid = '_cfduid Not Found !';
    $cf_clearance = 'cf_clearance Not Found !';
    $c = @file_get_contents($cookie);
    if(preg_match("/__cfduid\s+[a-z0-9\-]+/",$c,$matchs)){
        $cfuid = str_replace('_cfduid   ','',$matchs[0]);
        $cfuid = str_replace('_','',$cfuid);
        $cfuid = trim($cfuid);
    }
    $c2 = @file_get_contents($cookie2);
    if(preg_match("/cf_clearance\s+[a-z0-9\-]+/",$c2,$clearance)) {
        $cf_clearance = $clearance[0];
        $cf_clearance = str_replace('cfclearance ','',$cf_clearance);
        $cf_clearance = str_replace('_','',$cf_clearance);
        $cf_clearance = trim($cf_clearance);
        $cf_clearance = str_replace('cfclearance    ','',$cf_clearance);
    }
    curl_setopt($ch, CURLOPT_URL, $q);
    curl_setopt($ch, CURLOPT_COOKIE, '__cfduid='.$cfuid.'; cf_clearance='.$cf_clearance.';');
    $html_page=curl_exec($ch);
    curl_close($ch);
    return ['id' => $cfuid, 'clear' => $cf_clearance, 'link_challenge' => $q, 'html' => $html_page];
}
function bypassCloudS($link) {
    preg_match("/\/\/(.*?)\//",$_GET['linkf'],$filesave);
    $cookie = __DIR__ . "/CloudflareRequest/".getUserIpAddr().".$filesave[1].slow.txt";
    $head = array(
        'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
        'Accept-Language: en-US,en;q=0.5',
        'Accept-Encoding: deflate, b, php, html, txt',
        'Connection: keep-alive',
        'Upgrade-Insecure-Requests: 1'
    );
    $ua = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36';
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $link);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, $ua);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $head);
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
    curl_setopt($ch, CURLOPT_HTTPGET, true);
    curl_setopt($ch, CURLINFO_HEADER_OUT, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt($ch, CURLOPT_TIMEOUT, 15);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    $h = curl_exec($ch);

    if (strpos($h, 'id="cf-dn') === false)
        $q = getClearanceLink_old($h, $link,3);
    else
        $q = getClearanceLink($h, $link,3);

    $cfuid = '_cfduid Not Found !';
    $cf_clearance = 'cf_clearance Not Found !';
    $c = @file_get_contents($cookie);
    if(preg_match("/__cfduid\s+[a-z0-9\-]+/",$c,$matchs)){
        $cfuid = str_replace('_cfduid   ','',$matchs[0]);
        $cfuid = str_replace('_','',$cfuid);
        $cfuid = trim($cfuid);
    }
    if(preg_match("/cf_clearance\s+[a-z0-9\-]+/",$c,$clearance)) {
        $cf_clearance = $clearance[0];
        $cf_clearance = str_replace('cfclearance ','',$cf_clearance);
        $cf_clearance = str_replace('_','',$cf_clearance);
        $cf_clearance = trim($cf_clearance);
        $cf_clearance = str_replace('cfclearance    ','',$cf_clearance);
    }
    curl_setopt($ch, CURLOPT_URL, $q);
    curl_setopt($ch, CURLOPT_COOKIE, '__cfduid='.$cfuid.'; cf_clearance='.$cf_clearance.';');
    $html_page=curl_exec($ch);
    curl_close($ch);
    return ['id' => $cfuid, 'clear' => $cf_clearance, 'link_challenge' => $q, 'html' => $html_page];
}
function bypassVer($link){
    $ver=bypassCloudF($link);
    if(strpos($ver['html'],"Just a moment")){
        return bypassCloudS($link);
    }else{
        return $ver;
    }
}
function getUserIpAddr(){
    return $_SERVER['REMOTE_ADDR'];
}
$target = bypassVer($_GET['linkf']);
echo $target['html'];

cf.php

<?php
function rr($js_code)
    {
    $js_code = str_replace(array(
        ")+(",
        "![]",
        "!+[]",
        "[]"
    ) , array(
        ").(",
        "(!1)",
        "(!0)",
        "(0)"
    ) , $js_code);
    return $js_code;
    }

function getClearanceLink($content, $url,$time)
    {
    sleep($time);
    preg_match_all('/name="\w+" value="(.+?)"/', $content, $matches);
    $params = array();
    list($params['s'], $params['jschl_vc'], $params['pass']) = $matches[1];
    $uri = parse_url($url);
    $host = $uri["host"];
    $result = "";
    $t1 = explode('id="cf-dn', $content);
    $t2 = explode(">", $t1[1]);
    $t3 = explode("<", $t2[1]);
    $cf = $t3[0];
    preg_match("/f\,\s?([a-zA-z0-9]+)\=\{\"([a-zA-Z0-9]+)\"\:\s?([\/!\[\]+()]+|[-*+\/]?=[\/!\[\]+()]+)/", $content, $m);
    eval("\$result=" . rr($m[3]) . ";");
    $pat = "/" . $m[1] . "\." . $m[2] . "(.*)+\;/";
    preg_match($pat, $content, $p);
    $t = explode(";", $p[0]);
    for ($k = 0; $k < count($t); $k++)
        {
        if (substr($t[$k], 0, strlen($m[1])) == $m[1])
            {
            if (strpos($t[$k], "function(p){var p") !== false)
                {
                $a1 = explode("function(p){var p", $t[$k]);
                $t[$k] = $a1[0] . $cf;
                $line = str_replace($m[1] . "." . $m[2], "\$result ", rr($t[$k])) . ";";
                eval($line);
                }
              else
            if (strpos($t[$k], "(function(p){return") !== false)
                {
                $a1 = explode("(function(p){return", $t[$k]);
                $a2 = explode('("+p+")")}', $a1[1]);
                $line = "\$index=" . rr(substr($a2[1], 0, -2)) . ";";
                eval($line);
                $line = str_replace($m[1] . "." . $m[2], "\$result ", rr($a1[0]) . " " . ord($host[$index]) . ");");
                eval($line);
                }
              else
                {
                $line = str_replace($m[1] . "." . $m[2], "\$result ", rr($t[$k])) . ";";
                eval($line);
                }
            }
        }

    $params['jschl_answer'] = round($result, 10);
    return sprintf("%s://%s/cdn-cgi/l/chk_jschl?%s", $uri['scheme'], $uri['host'], http_build_query($params));
    }

function getClearanceLink_old($content, $url,$time)
    {
    /*
    * 1. Mimic waiting process
    */
    sleep($time);
    /*
    * 2. Extract "jschl_vc" and "pass" params
    */
    preg_match_all('/name="\w+" value="(.+?)"/', $content, $matches);
    $params = array();

    list($params['s'], $params['jschl_vc'], $params['pass']) = $matches[1];

    // Extract CF script tag portion from content.

    $cf_script_start_pos = strpos($content, 's,t,o,p,b,r,e,a,k,i,n,g,f,');
    $cf_script_end_pos = strpos($content, '</script>', $cf_script_start_pos);
    $cf_script = substr($content, $cf_script_start_pos, $cf_script_end_pos - $cf_script_start_pos);
    /*
    * 3. Extract JavaScript challenge logic
    */
    preg_match_all('/:[\/!\[\]+()]+|[-*+\/]?=[\/!\[\]+()]+/', $cf_script, $matches);

    /*
    * 4. Convert challenge logic to PHP
    */
    $php_code = "";
    foreach($matches[0] as $js_code)
        {

        // [] causes "invalid operator" errors; convert to integer equivalents

        $js_code = str_replace(array(
            ")+(",
            "![]",
            "!+[]",
            "[]"
        ) , array(
            ").(",
            "(!1)",
            "(!0)",
            "(0)"
        ) , $js_code);

        $php_code.= '$params[\'jschl_answer\']' . ($js_code[0] == ':' ? '=' . substr($js_code, 1) : $js_code) . ';';
        }

    /*
    * 5. Eval PHP and get solution
    */

    eval($php_code);

    // toFixed(10).

    $params['jschl_answer'] = round($params['jschl_answer'], 10);

    // Split url into components.

    $uri = parse_url($url);

    // Add host length to get final answer.
    // echo $uri['host'];

    $params['jschl_answer']+= strlen($uri['host']);

    /*
    * 6. Generate clearance link
    */

    // echo http_build_query($params);

    return sprintf("%s://%s/cdn-cgi/l/chk_jschl?%s", $uri['scheme'], $uri['host'], http_build_query($params));
    }
?>
prinze77 commented 5 years ago

Thank you man! You are genius))

prinze77 commented 5 years ago

I was expecting that it will be something like this, and i was trying to find it all day long))

momala454 commented 5 years ago

thanks but instead of doing your own code, is it possible that you modify cloudflare-bypass to support the new cloudflare ?

ghost commented 5 years ago


Notice: Undefined index: linkf in /usr/local/lsws/wordpress/cloudflare.php on line 132

Notice: Undefined index: linkf in /usr/local/lsws/wordpress/cloudflare.php on line 10

Notice: Undefined offset: 1 in /usr/local/lsws/wordpress/cloudflare.php on line 11

Notice: Undefined offset: 1 in /usr/local/lsws/wordpress/cloudflare.php on line 12

Notice: Undefined offset: 0 in /usr/local/lsws/wordpress/cf.php on line 81

Notice: Undefined offset: 1 in /usr/local/lsws/wordpress/cf.php on line 81

Notice: Undefined offset: 2 in /usr/local/lsws/wordpress/cf.php on line 81

Parse error: syntax error, unexpected end of file in /usr/local/lsws/wordpress/cf.php(122) : eval()'d code on line 1

Laky-64 commented 5 years ago

Notice: Undefined index: linkf in /usr/local/lsws/wordpress/cloudflare.php on line 132

Notice: Undefined index: linkf in /usr/local/lsws/wordpress/cloudflare.php on line 10

Notice: Undefined offset: 1 in /usr/local/lsws/wordpress/cloudflare.php on line 11

Notice: Undefined offset: 1 in /usr/local/lsws/wordpress/cloudflare.php on line 12

Notice: Undefined offset: 0 in /usr/local/lsws/wordpress/cf.php on line 81

Notice: Undefined offset: 1 in /usr/local/lsws/wordpress/cf.php on line 81

Notice: Undefined offset: 2 in /usr/local/lsws/wordpress/cf.php on line 81

Parse error: syntax error, unexpected end of file in /usr/local/lsws/wordpress/cf.php(122) : eval()'d code on line 1

use http://yourdomain.com/cloudflare.php?linkf={LINK OF WEBSITE WITH CLOUDFLARE}

m-hume commented 5 years ago

A great forward step @WAVDEVTEAM ! only seems to solve for http:// urls not https://

ghost commented 5 years ago

use http://yourdomain.com/cloudflare.php?linkf={LINK OF WEBSITE WITH CLOUDFLARE} @WAVDEVTEAM i did and thats the error im receieving

ghost commented 5 years ago

One more step Please complete the security check

im getting the capctha

Laky-64 commented 5 years ago

One more step Please complete the security check

im getting the capctha

you need php 5.6.9 or next versions

Laky-64 commented 5 years ago

A great forward step @WAVDEVTEAM ! only seems to solve for http:// urls not https:// you need php 5.6.9 or next version...

ghost commented 5 years ago

I have php 7

neverknoww commented 5 years ago

This is working perfectly. Thank you very much WAVDEVTEAM!

Laky-64 commented 5 years ago

@ash121121 try with 7.2

OnlyManu commented 5 years ago

Please? explain how to use this script.

prinze77 commented 5 years ago

How to contact you?

KyranRana commented 5 years ago

Can you guys send me some protected cloudflare sites? I will need them as part of the testing I am going to do.

Appreciated :)

prinze77 commented 5 years ago

https://csgoatse.com/ У меня там бот разносит рулетку в хлам

ghost commented 5 years ago

https://www.digbt.org/ https://www.webconfs.com/

KyranRana commented 5 years ago

Added those 2 to my unit tests. I've got 3 sample uam pages from https://csgoatse.com and https://www.digbt.org and all 6 tests pass. :)

Anyone else is welcome to post their site links. (not too many, limit to 10 more).

Laky-64 commented 5 years ago

Please? explain how to use this script.

use http://yourdomain.com/cloudflare.php?linkf={LINK OF WEBSITE WITH CLOUDFLARE}

hkkdt1 commented 5 years ago

https://subscene.com/

xing1943 commented 5 years ago

https://animelek.com/

j0hnsn0w commented 5 years ago

https://www.mkvcage.ws/

Laky-64 commented 5 years ago

@KyranRana you can add me to contributor?

m-hume commented 5 years ago

@WAVDEVTEAM if you've got a "proper" solution!? Please fork the project and let us see what you have. cheers

ghost commented 5 years ago

@KyranRana any update ? Kind regards

eoksum commented 5 years ago

@WAVDEVTEAM How about POST requests? I think your code only solves GET requests.

KyranRana commented 5 years ago

V3 Alpha will be coming 30th June or earlier. I've done an incredible amount of work to get this beast working. I'm sorry for not keeping you guys up to date, this solution has been tough to code. :)

ghost commented 5 years ago

Thanks for the update :) @KyranRana

lr874355227 commented 5 years ago

I got a return like this. Has anyone solved this problem

<!DOCTYPE html>

安全检查! | 百度云加速

只差一步

输入验证码,可以浏览

为什么需要输入验证码?

输入验证码证明您不是机器人,输入后可以暂时浏览网站。

如何避免?

如果您使用私人电脑,可以下载杀毒软件,进行全盘扫描保证没有中毒。

如果您使用公用电脑,可以请网络管理员修正配置选项或查找病毒来源。

Laky-64 commented 5 years ago

I got a return like this. Has anyone solved this problem

安全检查! | 百度云加速 请打开cookies。 # 只差一步 ## 输入验证码,可以浏览 ```
``` 访问本页面,您的浏览器需要支持JavaScript ```

为什么需要输入验证码?

输入验证码证明您不是机器人,输入后可以暂时浏览网站。

如何避免?

如果您使用私人电脑,可以下载杀毒软件,进行全盘扫描保证没有中毒。

如果您使用公用电脑,可以请网络管理员修正配置选项或查找病毒来源。

```

you need PHP 7.2 or higher

lr874355227 commented 5 years ago

Your code is already working,This is the page that appears after bypassing cloudflare

lr874355227 commented 5 years ago

Your code is already working,This is the page that appears after bypassing cloudflare

my php is 7.2

lr874355227 commented 5 years ago

Your code is already working,This is the page that appears after bypassing cloudflare

my php is 7.2

I solved the problem, I found that your code is related to the curl version, better use the newer version, 7.29.0 is not

takkk commented 5 years ago

Seems that the script it is not working. Still see the Cloudflare page. Using PHP 7.2. Textfiles are generated correct on the webspace. No error message shown. Did Cloudflare change anything?

lr874355227 commented 5 years ago

Seems that the script it is not working. Still see the Cloudflare page. Using PHP 7.2. Textfiles are generated correct on the webspace. No error message shown. Did Cloudflare change anything?

The code works. I've succeeded

sinkaroid commented 5 years ago

work on 5.6, my thanks sir

yylzcom commented 5 years ago

@WAVDEVTEAM Can you please migrate it into current(KyranRana's) code? Thanks and best regards!

risklife commented 5 years ago

I have a problem now with the code, for example.

I Have PHP 7.2 and Curl Version 7.65.0

`

<!DOCTYPE HTML>
--
  | <html lang="es" style="background-color: #1c2129;">
  | <head>
  | <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  | <meta name="robots" content="noindex, nofollow">
  | <link href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAACClBMVEX////+/Pr+9ur/8N3/6Mn/3rH/05n/x33/wG7/6M369e/oqFH8pzH/oSP/mxf/mBL/lhH/lBD/kRH/lSD/69Dv38rWgRL+lxL/lBP/lh//nCb/pSz/sTD/wC7/0ir/2kju4tLNeA7+lx3/0lv/7EL/8Tf/+yz//yL//yDy+CT/8Cz9/fX6+vqHfnzZegr/oir//T3Dzin09Sapsilwg023vCgNK02rnjNmYWPPz9aTlawAACtbNBTSfiHf2T0AADV0fDl0eh8BByGxsyIkLRKkjxkSDTtoaJJ0eKUAB0gAADEYES/47DmDhBDCwRb//x7n5BX//x3qziAGA1tvcKmmqc4DCGIAAEYcE0T65jb//Rbk1ybGrSnEs0q8oDDj1Rz41CWop7/d3e78/P3p5utgQDx/Rjj/2yW3qE6lbWOnWkqtamGqXk+pmovouCbHfTH4gQ7esS+fZE+mTi6ZRCKZVRWZSCqufnfQokj+/v79/f2kdEXxfAzeqCyVXUeZXUq5linoyg+vijWoiF/fsDv29vbq6ury8vKcd1TicwvtqxfEnxnKpiLuvRHqshXmtxHZsAzruTng4ODb29ubhG7VbAvdmBHgtBPcpheWhGWMe2rhgRHtrRPisVL4+PjNzc2YlJGzXg/Ogg3fohGzqpvU1NS2tLOqiV7Eu7Hd3d2jnpigaCimiF/m5ua9Ot6eAAAA4klEQVQY02NgAAJGJmYWVjZ2Dk4GCODi5uHl4xcQFBIWgQiIiolLSEpJy8jKyUMEFBSVlFVU1dQ1NLW0QXwdXT19A0MjYxNTM3MLS6CAlbWNrZ29g6OTs4urmztQwMPTy9vH188/INA/KDgEKBAaFh4RGRUdExsXn5CYBBRITklNS8/IzMrOyc2DOiS/oLCouKS0rLwCxKusYqiuqa2rb2hsam4B8Vvb2js6u7p7evv6J0wEqaiaNHnK1GnTZ8ycNXvOXLAJ8+YvWLho8ZK2pcuWr4CYOW/lqtVrGFDB2nYYCwB/uT25tgHx9AAAAABJRU5ErkJggg==" type="image/x-icon" rel="shortcut icon">
  | <meta charset="UTF-8">
  | <title>S&oacute;lo un momento...</title>
  | </head>
  | <body>
  | <table width="100%" height="100%" cellpadding="30">
  | <tbody><tr>
  | <td align="center" valign="center">
  | <h1 data-translate="challenge_headline" style="border: 0px;color: #ffffff;font-family: &quot;Open Sans&quot;, Helvetica, Arial, sans-serif;font-size: 2em;font-stretch: inherit;font-variant-numeric: inherit;font-weight: 300;line-height: 1.2;margin: 0px;padding: 0px;vertical-align: baseline;padding-bottom: 25px;padding-top: 123px;">Control de Seguridad
  | </h1>
  |  
  | <noscript>
  | <h1 style="text-align:center;color:red;">
  | <strong>Por favor, active JavaScript y vuelva a cargar la p&aacute;gina.</strong>
  | </h1>
  | </noscript>
  |  
  | <h2 class="cf-subheadline" style="border: 0px;color: #e4e4e4;font-family: &quot;Open Sans&quot;, Helvetica, Arial, sans-serif;font-size: 17px;font-stretch: inherit;font-variant-numeric: inherit;font-weight: 300;line-height: 1.3;margin: 0px;padding: 0px;vertical-align: baseline;">
  |  
  | <span data-translate="complete_sec_check" style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">Por favor complete el control de seguridad para acceder a MejorTorrent.</span><br><span data-translate="complete_sec_check" style="border: 0px; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">
  | </span><br><center><form class="challenge-form" id="challenge-form" action="/cdn-cgi/l/chk_captcha" method="get">
  | <input type="hidden" name="s" value="90dddae5a0d4c4417cc6cb20670f5b8ed327516d-1562074613-1800-AXLR9mS4DFWDku1J+pOYAE5zPIAPPKgyzq/c4xn8wM7zjDL98oPSKqVTyO4jZ8mlqTkQnVmjf9jyEemyJMdBXDePmFz10X3al2aA9bjfx/YVgSVYEqoW+DGAP07DnZ2ElD67DMK68EC8qtKOhiWVC2E3/4WeUmLpmbwsvWFAqzrH/txLJRpcDQR1cTYmwcmQpA=="></input>
  | <script type="text/javascript" src="/cdn-cgi/scripts/cf.challenge.js" data-type="normal"  data-ray="4f0102df39f43c5d" async data-sitekey="6LfBixYUAAAAABhdHynFUIMA_sa4s-XsJvnjtgB0"></script>
  | <div class="g-recaptcha"></div>
  | <noscript id="cf-captcha-bookmark" class="cf-captcha-info">
  | <div><div style="width: 302px">
  | <div>
  | <iframe src="https://www.google.com/recaptcha/api/fallback?k=6LfBixYUAAAAABhdHynFUIMA_sa4s-XsJvnjtgB0" frameborder="0" scrolling="no" style="width: 302px; height:422px; border-style: none;"></iframe>
  | </div>
  | <div style="width: 300px; border-style: none; bottom: 12px; left: 25px; margin: 0px; padding: 0px; right: 25px; background: #f9f9f9; border: 1px solid #c1c1c1; border-radius: 3px;">
  | <textarea id="g-recaptcha-response" name="g-recaptcha-response" class="g-recaptcha-response" style="width: 250px; height: 40px; border: 1px solid #c1c1c1; margin: 10px 25px; padding: 0px; resize: none;"></textarea>
  | <input type="submit" value="Submit"></input>
  | </div>
  | </div></div>
  | </noscript>
  | </form>
  | </center>
  |  
  |  
  | </td>
  | </tr>
  | </tbody></table>
  |  
  |  
  | </body></html>

`

momala454 commented 5 years ago

V3 Alpha will be coming 30th June or earlier. I've done an incredible amount of work to get this beast working. I'm sorry for not keeping you guys up to date, this solution has been tough to code. :)

hi, i guess it wasn't earlier than 30 june, neither 30 june ? :)

nxtsuki commented 5 years ago

Your code is already working,This is the page that appears after bypassing cloudflare

my php is 7.2

I solved the problem, I found that your code is related to the curl version, better use the newer version, 7.29.0 is not

Do you solved by updating PHP or cURL?

lr874355227 commented 5 years ago

Your code is already working,This is the page that appears after bypassing cloudflare

my php is 7.2

I solved the problem, I found that your code is related to the curl version, better use the newer version, 7.29.0 is not

Do you solved by updating PHP or cURL?

updating cURL

xing1943 commented 5 years ago

The code worked with http. thanks

git-senor commented 5 years ago

@WAVDEVTEAM I'm getting

<br /> <b>Notice</b>: Undefined offset: 1 in <b>/home/runcloud/webapps/app-sporer/CloudflareRequest/cloudflare.php</b> on line <b>10</b><br /> <br /> <b>Notice</b>: Undefined offset: 1 in <b>/home/runcloud/webapps/app-sporer/CloudflareRequest/cloudflare.php</b> on line <b>11</b><br /> <br /> <b>Notice</b>: Undefined offset: 1 in <b>/home/runcloud/webapps/app-sporer/CloudflareRequest/cloudflare.php</b> on line <b>67</b><br /> <br />

KyranRana commented 5 years ago

v3.0.0 is out now.

neverknoww commented 4 years ago

@WAVDEVTEAM hello, have been using your version and its prefect and simple. cloudflare just updated their code again. Do you have the latest update for your script?

thank you very much.