pyjail wiki

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

制限付き環境での戦略

  1. 使用可能な文字/単語を把握
  2. それらで構築可能な式を考える
  3. 最終的に RCE に到達

esolang 系の共通点

  • 限られた命令セット
  • チューリング完全性の証明
  • メモリ操作の抽象化

Flag

各チャレンジで異なるフラグ

References