b01lers CTF 2025 - Pyjail Challenges
Challenge Overview
b01lers CTF 2025 には複数の pyjail チャレンジが含まれていた。
shakespearejail
Shakespeare Programming Language 風の制限:
# 入力は Shakespeare 風の言葉のみ# 'thou', 'art', 'thee' などの単語を使用prismatic
カラーコード制限:
# 入力は特定のパターンに制限# RGB値を使った特殊なエンコーディングemacs-jail
Emacs Lisp 環境での脱出:
# Emacs の制限された環境# M-x shell などのコマンドを使用monochromatic
単色 (1種類の文字のみ) 制限:
# 使用可能な文字種が極端に制限# ビット操作やエンコーディングで突破/>>= jail
Haskell 風の構文制限:
# モナドバインド演算子のような構文# >>=, >> などを使った構築vibe-coding
特殊な入力形式:
# "vibe" ベースのエンコーディング# 雰囲気で伝わるコーディングCommon Techniques
エンコーディング系
- 特殊文字を ASCII に変換
- 言語固有のキーワードを活用
- 複数の表現方法を組み合わせ
サブクラスチェーン
().__class__.__bases__[0].__subclasses__()言語間のポリグロット
複数言語で動作するコードを構築。
Technical Details
制限付き環境での戦略
- 使用可能な文字/単語を把握
- それらで構築可能な式を考える
- 最終的に RCE に到達
esolang 系の共通点
- 限られた命令セット
- チューリング完全性の証明
- メモリ操作の抽象化
Flag
各チャレンジで異なるフラグ