WEBUI 网页界面

https://picui.ogmua.cn/s1/2026/03/13/69b3f7cd39186.webp

Typhon 内置一个轻量的 WebUI(仅使用 Python 标准库),用于在浏览器中调用 bypassRCE() / bypassREAD()

启动方式

方式一:命令行启动

如果你通过 pip 安装了 typhonbreaker,可以直接启动:

typhonbreaker webui

默认监听 127.0.0.1:6240,浏览器打开: http://127.0.0.1:6240

webui 支持以下参数:

typhonbreaker webui --host 0.0.0.0 --port 6240

警告

WebUI 默认绑定到 127.0.0.1。如果你运行在服务器上,请自行做好访问控制/防火墙配置。

方式二:Python API 启动(可注入当前变量空间)

Typhon.webui(host='127.0.0.1', port=6240, use_current_scope=True)

启动 Typhon WebUI 服务器。

host

绑定的主机地址,默认为 '127.0.0.1'

port

监听的端口号,默认为 6240

use_current_scope

若为 True,则捕获调用方的 __main__ 全局变量空间,并将其注入 WebUI 作为默认的 local_scope

这与在题目代码中内联 bypassRCE/bypassREAD 的效果等价——当 WebUI 中 "Local Scope" 字段留空时,将自动使用此注入的变量空间,无需手动输入。这样, 就可以引入命名空间内题目自定义的变量。

此参数默认为 True

命令行方式无法获取当前 Python 进程的变量空间(因为没有 import Typhon 的过程)。 通过 Python API 调用 Typhon.webui(use_current_scope=True),可以在原始脚本内部 捕获当前 __main__ 的全局变量,随后在 WebUI 中直接使用,这样就可以引入命名空间内题目自定义的变量。

使用示例

import re

def safe_run(cmd):
    if re.match(r'.*import.*', cmd):
        return "WAF!"
    import Typhon
    Typhon.webui(use_current_scope=True) # 与 bypassRCE/bypassREAD 相似

备注

use_current_scope=True 捕获的是 __main__ 模块的全局变量空间, 与命令行 typhonbreaker webui 的 "无 local_scope" 模式等价,但能自动 携带当前脚本中已定义的变量(如上例中的 resafe_run 等)。

若题目的 exec 设置了受限命名空间(如 exec(cmd, {'__builtins__': {}})), 仍需在 WebUI 的 "Local Scope" 字段手动填写该受限字典——此时手动填写会覆盖注入的空间。

当通过 Typhon.webui(use_current_scope=True) 启动 WebUI 时,页面顶部的 "Local Scope" 输入框上方会显示一条绿色横幅,提示已注入调用方的变量空间,以及该空间中的公开变量名。此时留空 "Local Scope" 字段即可使用注入的空间。

方式三:Docker

本仓库提供用于构建 WebUI 镜像的 Dockerfile,你可以用 compose 直接启动:

docker compose up --build