Source: cloudflare2.phps - download
<?php
/* 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * cloudflare.php 0.1
 * by daif alotaibi (http://daif.net)
 * daif@daif.net
 * 
 * Link:
 *  http://daif.net/script/cloudflare2.phps
 * 
*/

    
$url 'https://www.spigotmc.org/';
    echo 
BypassCloudFlare($url);

    
// the main function to bypass the CloudFlare
    
function BypassCloudFlare($url) {
        
$data OpenURLCloudFlare($url);
        if(
$data) {
            
preg_match('/name="jschl_vc"\s+value="(.+)"/Ui'$data$jschl_vc);
            
preg_match('/name="pass"\s+value="(.+)"/Ui'$data$pass);
            
preg_match('/var.+:\+(.+)};/Uis'$data$matches1);
            
preg_match_all('/(\*|\+|\-)=(.+);/Uis'$data$matches2);

            if(isset(
$matches1[1]) && isset($jschl_vc[1]) && isset($pass[1])) {
                
$var CalJSData($matches1[1]);
                foreach (
$matches2[0] as $key => $value) {
                    if(
$matches2[1][$key] == '*') {
                        
$var *= CalJSData($matches2[2][$key]);
                    } elseif(
$matches2[1][$key] == '-') {
                        
$var -= CalJSData($matches2[2][$key]);
                    } elseif (
$matches2[1][$key] == '+') {
                        
$var += CalJSData($matches2[2][$key]);
                    }
                }
                
$jschl_answer =  intval($var) + strlen(parse_url($urlPHP_URL_HOST));
                
$url2  parse_url($urlPHP_URL_SCHEME).'://'.parse_url($urlPHP_URL_HOST);
                
$url2 .= '/cdn-cgi/l/chk_jschl?';
                
$url2 .= 'jschl_vc='.$jschl_vc[1];
                
$url2 .= '&pass='.$pass[1];
                
$url2 .= '&jschl_answer='.$jschl_answer;
                
sleep(4);
                
$data OpenURLCloudFlare($url2$url);
            }
        } else {
            return 
'error';
        }
        return 
$data;
    }
    
// fetch the page
    
function OpenURLCloudFlare($url$referer='') {
        
$headers   = array();
        
$headers[] = 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36';
        
$headers[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
        
$headers[] = 'Accept-Language: ar,en;q=0.5';
        
$headers[] = 'Connection: keep-alive';
        
$ch curl_init();    
        
curl_setopt($chCURLOPT_URL$url);
        
curl_setopt($chCURLOPT_HEADERFALSE);
        
curl_setopt($chCURLOPT_HTTPHEADER$headers);
        if(
$referer)
            
curl_setopt($chCURLOPT_REFERER$referer); 
        
curl_setopt($chCURLOPT_ENCODING'');
        
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
        
curl_setopt($chCURLOPT_FOLLOWLOCATIONTRUE);
        
curl_setopt($chCURLOPT_COOKIEJARdirname(__FILE__).'/'.parse_url($urlPHP_URL_HOST).'-cookie.txt');
        
curl_setopt($chCURLOPT_COOKIEFILEdirname(__FILE__).'/'.parse_url($urlPHP_URL_HOST).'-cookie.txt');
        
$data curl_exec($ch);
        return(
$data);
    }
    
// parse Java script challenge
    
function CalJSData($data) {
        
$data       str_replace(array('((''))'), ''$data);
        
$data       explode('+[])+('$data);
        
$data[0]    = str_replace(array('!+[]''!![]''![]''[]'), array('1''1'''''), $data[0]);
        if(isset(
$data[1])) {
            
$data[1]    = str_replace(array('!+[]''!![]''![]''[]'), array('1''1'''''), $data[1]);
            return 
substr_count($data[0], '1') .  substr_count($data[1], '1');
        }
        return 
substr_count($data[0], '1');
    }
?>