剑庭安
首页
黑客安全首页全部安全栏目 黑客技术黑客技术、渗透测试、漏洞利用工具与教程 安全软件安全工具、扫描器、检测与审计软件 病毒分析恶意软件分析、样本、逆向与沙箱 CTF思路CTF 题目、writeup、解题思路与工具 防护思路防御技术、加固、检测响应与蓝队 红蓝攻防红队攻击模拟、蓝队对抗、攻防演练 漏洞知识库漏洞、CVE、PoC、EXP 与安全研究
逆向|反编译
PHP源码PHP 网站源码、程序、系统 APP源码安卓/iOS APP 源码 ASP源码ASP 网站源码与程序 NET源码.NET 网站源码与系统 小程序源码微信/支付宝小程序源码 Dedecms风格模板Dedecms 织梦风格模板 Empirecms风格模板EmpireCMS 帝国风格模板 Discuz商业模板/插件Discuz 商业模板与插件 WordPress主题/插件WordPress 主题与插件 其它源码、模板其它各类源码与模板 游戏源码游戏源码与引擎项目 加密货币源码加密货币、区块链、钱包、USDT/比特币相关源码与工具 手游源码手机游戏源码、服务端、客户端与引擎项目 传奇源码热血传奇、传奇世界、复古传奇等客户端/服务端/引擎源码 页游源码网页游戏、H5 游戏、浏览器游戏源码 端游源码电脑单机游戏、PC 网游客户端/服务端源码
最新万能免驱动支持所有型号打印机下载程序 日历天气老黄历 · 每天同步真实日期与天气
站长工具站长工具 自助开通会员浏览该分类 其他资源qtziy SEO工具SEO工具 站群源码站群源码 泛程序泛程序 蜘蛛模板蜘蛛模板 蜘蛛池蜘蛛池 外链工具外链工具
搜索 自助开通会员🔓 破甲 API
登录 注册
首页 分类列表 CTF思路 Typhon - pyjail (python jail…
Typhon - pyjail (python jail) 绕过 一把梭 CTF 工具 CTF思路 点击放大
作者:admin 发布:2026-10-05

Typhon - pyjail (python jail) 绕过 一把梭 CTF 工具

项目说明Typhon: Lets sol without brain !Total Downloads!License!Python_!PyPI !Tests![codecov]()中文, English, 日本語听着,我已经受够那些愚蠢的CTF pyjail题目了——每次我都要浪费时间在又臭又长的…
资源可下载 免费下载 0 条讨论
会员资源
开通会员后即可下载全部资源。
登录后开通会员
会员方案
401浏览量
0讨论
2下载链接
可下载资源状态
内容可验证
更新 2026-10-05
人工审核发布
评论区答疑

Typhon - pyjail (python jail) 绕过 一把梭 CTF 工具

Typhon - pyjail (python jail) 绕过 一把梭 CTF 工具

项目说明

Typhon: Lets sol without brain

!Total Downloads
!License
!Python_
!PyPI
!Tests
![codecov]()

中文, English, 日本語

听着,我已经受够那些愚蠢的CTF pyjail题目了——每次我都要浪费时间在又臭又长的黑名单和各种pyjail总结之间找哪个链子没被过滤,或者在命名空间里一个一个运行dir()去找能用的东西。这简直就是一种折磨。

所以这就是Typhon(提丰),一个致力于让你不需要脑子也能做pyjail的一把梭工具。

!image

> [!IMPORTANT]
>
> 为了避免不必要的时间浪费,使用前请详细阅读使用文档:

  • Highlights

  • How to Use

  • Q&A

  • Proof of Concept

  • Limitations

  • Milestones

  • Contributing

  • Credits

  • License

  • Misc
  • Highlights

  • 完全开源,免费的一把梭工具

  • 不需要大脑就能完成pyjail题目,爱护您的脑细胞和眼球

  • 拥有数百条gadgets和几乎所有主流的bypass方法

  • 支持多种函数以达成不同功能,如RCE用bypassRCE(), 读文件用bypassRead()等等

  • 不依赖第三方库(包含 CLI/WebUI,均为标准库实现)
  • How to Use

    Install

    你可以使用pip进行安装:

    Step by Step Tutorial

    你可以通过示例文档中的例题来学习 Typhon 的实战用法。以下仅仅提供一个示例。

    假设有如下题目:

    Step1. 分析waf

    首先,我们需要分析一下pyjail waf的功能(这可能是唯一需要大脑的地方)。

    可以看出,上述题目的waf如下:

  • 限制长度最大值为160

  • 在exec的命名空间里没有__builtins__

  • 禁止使用builtins, import, {}字符

  • 设置了正则表达式'.*import.*'限制条件
  • Step2. 将waf导入Typhon

    首先我们将exec行删除:

    然后,我们以Typhon对应的bypass函数替代exec行,在对应位置导入WAF, 并在该行上方import Typhon:

    Step3. 运行

    运行你的题目程序,等待Jail broken的信息出现即可。

    !image

    WebUI

    !image

    方式一:命令行启动

    浏览器打开:

    > 注:当前 WebUI 会监听 127.0.0.1:6240,如果运行在服务器上请注意访问控制/防火墙配置。

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

    在题目脚本中直接调用 Typhon.webui(use_current_scope=True) 来启动 WebUI,
    并自动将当前 __main__ 全局变量空间作为 local_scope 注入——效果等同于内联 import Typhon 再 Typhon.bypassRCE/bypassREAD,但可通过浏览器 UI 交互操作。这样可以填写命名空间内题目自定义的变量。

    启动后,WebUI 的 "Local Scope" 字段留空即自动使用注入的变量空间,输入框上方会显示绿色提示横幅。
    若题目 exec 使用了受限命名空间(如 {'__builtins__': {}}),仍需在 UI 中手动填写。

    !image

    Docker WebUI

    本仓库包含用于构建 WebUI 镜像的 Dockerfile,并提供 GitHub Actions 自动发布到 GHCR。

    1) 拉取并运行:

    2) 或使用 compose:

    自定义宿主机端口(容器内仍是 6240):

    Q&A

  • 何时import Typhon?
  • 一定要将行import Typhon放在Typhon内置绕过函数的上一行(即使你患有PEP-8强迫症)。否则,Typhon将无法通过栈帧获取当前的全局变量空间。

    Do:

    Don't:

  • 为什么需要使用与题目相同的python版本?
  • Pyjail中存在一些通过索引寻找对应object的gadgets(如继承链)。继承链的利用随着索引变化很大。因此,请务必确保Typhon的运行环境与题目相同。

    无法保证?

    是的,大多数题目都不会给出对应的python版本。因此,Typhon会在使用涉及版本的gadgets时做出提示。

    !image

    这种情况下往往需要CTF选手自己去找题目环境中该gadgets需要的索引值。

  • 如果题目的exec和eval没有限制命名空间怎么办?
  • 假设题目没有限制命名空间,则不必填写local_scope参数。Typhon会自动使用import Typhon时的当前命名空间进行绕过

  • 这个payload我用不了能不能换一个?
  • 你可以在参数中加上print_all_payload=True,Typhon就会打印其生成的所有payload。

  • 这个WEB题好像没开放stdin,我exec(input())没用怎么办?
  • 你可以在参数中加上interacti,Typhon就会禁止使用所有涉及stdin的payload。

  • 最后输出的payload没回显怎么办?
  • 对于bypassRCE,我们认为:只要命令得到了执行,就是RCE成功。 至于回显问题,你可以选择反弹shell,时间盲注,或者:添加print_all_payload=True参数,查看所有payload,其中可能含有能够成功回显的payload。

    Proof of Concept

    Typhon的工作原理如下:

    bypass by path & technique

    我们定义两种bypass方式:

  • path: 通过不同的载荷进行绕过(例如os.system('calc')和subprocess.Popen('calc'))

  • technique: 使用不同技术对相同的有效载荷进行处理从而绕过(例如,os.system('c'+'a'+'l'+'c') 和 os.system('clac'[::-1]))
  • Typhon内置了上百种path。每次我们要绕过获取某个东西时,我们先通过local_scope找到所有可以用的path,接下来,通过bypasser.py中的technique生成每个path对应的不同变体,并尝试绕过黑名单。

    gadgets chain

    本思路受到pyjailbreaker工具的启发。

    pyjailbreaker不直接通过gadgets一步到位实现RCE,而是一步一步寻找RCE链条中需要的项。如假设存在下列黑名单:

  • 本地命名空间无__builtins__

  • 禁止使用builtins字符
  • 对于这个WAF,Typhon是这样处理的:

  • 首先,我们通过'J'.__class__.__class__获取type

  • 随后,我们找到获取type后可能可以获取builtins的RCE链子TYPE.__subclasses__(TYPE)[0].register.__globals__['__builtins__']

  • 已知题目黑名单过滤了__builtins__字符,则我们将此path投入bypasser产生数十种变体。选择其中最短的变体:TYPE.__subclasses__(TYPE)[0].register.__globals__['__snitliub__'[::-1]]

  • 随后,我们找到获取`__builtins__后的RCE链子BUILTINS_SET['breakpoint']()

  • 最后,我们将代表builtins字典的占位符BUILTINS_SET替换为上步中获取的__builtins__路径,以此类推,将TYPE占位符替换为真实的路径,就得到了最终的payload。
  • Step by Step

    Typhon的workflow顺序如下:

  • 每一个终点函数(bypassRCE, bypassREAD,etc.)都会调用主函数bypassMAIN,主函数会尽可能搜集所有的可用gadgets(如上例中的type)并将收集到的内容传递给对应的下级函数。

  • bypassMAIN函数在简单分析完当前的变量空间后,会:

  • - 尝试直接RCE(如
    help(), breakporint())
    - 尝试获取生成器
    - 尝试获取type
    - 尝试获取object
    - 尝试获取bytes
    - 如当前空间中的
    __builtins__未被删除,但被修改,尝试恢复(如id.__self__)
    - 如当前空间中的
    __builtins__被删除,尝试从其他命名空间恢复
    - 承上,尝试继承链绕过
    - 尝试获取import包的能力
    - 尝试直接通过可能恢复的
    __builtins__ RCE
    - 将结果传递给下级函数
  • 下级函数拿到bypassMAIN的结果后,会根据该函数所实现的需求,选择对应的gadgets进行处理(如bypassRCE专注于RCE,bypassREAD专注于文件读取,bypassENV专注于读取环境变量)。其过程与上述相似。
  • 具体实现过程见博客:

    Limitations

  • 目前Typhon只支持python 3.9及以上版本。

  • 目前Typhon只支持linux沙箱。

  • 目前Typhon尚无法绕过audithook沙箱。

  • 由于Typhon采用局部最优的递归策略,对于一些简单的题目,反而需要耗时更久(约1min)。

  • 目前已知的不支持的bypass方法:
  • - Typhon不支持以list.pop(0)代替list[0],这是因为Typhon所生成的payload都需要经过本地执行验证才能成立,而pop方法在验证时会将元素从列表中删除,从而破坏后续环境。

    Milestones

    v1.0 (已发布)

  • [x] 实现基本框架
  • v1.1

  • [ ] 实现更多绕过器

  • - [x] 使用魔术方法替换二元运算符 (
    a.__add__(b)替换a+b)
    - [ ]
    list.pop(0)替换list[0]
    - [x]
    list(dict(a=1))[0]替换'a'
    - [x]
    str()替换空字符串
  • [ ] 实现内置的bash bypasser

  • [x] 更好的bypassREAD函数

  • [x] 实现白名单功能

  • [x] 自动寻找bytes
  • v1.2

  • [ ] 实现audithook沙箱的绕过

  • [ ] 在没有长度限制的情况下,不使用局部长度最优的递归算法

  • [ ] 实现bypassENV`函数,用于环境变量的读取
  • Contributing

    提供Typhon无法解出的题目

    我们将长期收集Typhon无法解出的题目。这对提升工具性能及其重要!如果你碰到无法一把梭的题目,请于本仓库打开issue,并写明题目来源(最好有对应的题解),我们会尽可能实现对该题目的自动求解。

    作为回报,我们会在下一个release版本中囊括您的github ID。

    Credits

    Author & Maintainer

    @ LamentXU (Weilin Du)

    Contributors

    感谢所有对此项目做过贡献的人:

    <a href="
    <img src=" />
    </a>

    Copyright

    针对bash绕过的内置绕过器,感谢bashFuck项目的作者@ ProbiusOfficial,其License于此。

    Copyright (c) 2024 ProbiusOfficial.

    下游项目(若有)请务必涵盖此。

    另:当前版本中尚未添加此功能。此copyright信息为预先保留。

    Speical Thanks

    @ 黄豆安全实验室给予我必须的鼓励
    @ pyjailbreaker项目给予我启发

    License

    这个项目在Apache 2.0协议下发布。

    Copyright (c) 2025 Weilin Du.

    Misc

    404 StarLink Project


    404星链计划


    <img src=" width="30%">

    Typhon 现已加入 404星链计划

    Stars

    ![Stargazers over time]()

    PIP trends

    ![typhonbreaker Widget]()

    项目信息

    开发语言:Python

    Star 数:372

    技术要点

    该项目属于CTF思路方向的开源资源,代码结构清晰,适合安全研究人员学习参考。项目围绕pyjail (python jail) 绕过 一把梭 CTF 工具展开,提供了可运行的实现,对理解相关安全机制、工具原理与攻防技术具有较高的研究价值。

    从技术实现角度看,此类项目的核心在于对底层原理的深入理解与工程化落地。开发者在研究过程中可以结合官方文档与社区讨论,梳理项目的初始化流程、核心模块职责与数据流转,逐步掌握其中的技术细节与设计思路。

    使用与学习建议

    1. 下载源码压缩包,解压到本地环境。

    2. 根据项目类型准备对应的运行环境与依赖。

    3. 按照 README 中的步骤完成配置与部署。

    4. 在隔离的测试环境中运行验证,避免影响生产系统。

    免责声明

    本资源来源于开源社区,仅供安全研究、技术学习与合法授权范围内的攻防演练使用,请勿用于任何非法或侵害他人权益的用途。使用本项目产生的一切后果由使用者自行承担。

    资源标题Typhon - pyjail (python jail) 绕过 一把梭 CTF 工具
    所属分类CTF思路
    发布作者admin
    发布时间2026-10-05 23:42:48
    下载权限 免费下载
    附件数量2 个下载链接
    浏览次数401
    讨论数量0
    主题状态正常讨论中

    本资源免费,登录后即可在本页「下载链接」区域获取全部附件。

    请在评论区留言说明具体链接,或联系作者补档。楼主更新后本页会同步最新的下载地址。

    请先阅读正文中的授权说明;未注明的默认仅限站内学习交流,禁止直接搬运到其他站点二次售卖。
    还没有讨论,快来抢沙发~
    登录 后才能参与讨论
    下载链接
    会员才能下载
    登录后开通会员
    同分类推荐
    暂无同类资源
    免费登录即可下载
    查看会员
    放大预览

    © 2026 剑庭安 - 网站开发定制 SEO 优化蜘蛛池代做 在线看手相算命. 保留所有权利。

    Powered by 酷像SEOv3.0

    网站地图 Sitemap.xml
    首页 全部分类 黑客安全 逆向|反编译 精品源码 站长工具自助开通会员其他资源SEO工具站群源码泛程序蜘蛛模板蜘蛛池外链工具创意乐园 搜索 会员服务 登录 注册