コース目次 / 第0章

はじめに — このコースの一線

pwnカテゴリの範囲と、このコースが扱う技術(ret2winのみ、シェルコード・ROPチェーンなし)を明確にします。あなた自身の手元の自作バイナリだけを対象にすることを確認し、法と倫理ゲートに同意します。

第0章 / 全4章目安 約5分この章のゴール: このコースが扱う技術の範囲と、対象の限定を理解する

CTFの pwn カテゴリは、メモリ破壊のバグを突いて、プログラムの実行の流れを乗っ取るカテゴリです。このトラックで最も重いテーマなので、このコースが扱う範囲を、最初にはっきりさせます。

法と倫理ゲート

手を動かす前に

このコースは攻撃の技術に触れます。実習してよい相手は、次の3つだけです。

  • (a) 自分で作った練習用のやられ環境(このサイトが配る自作ターゲット)
  • (b) あなた自身の許可された環境(自分の Thousand SKY・secret-notes-ctf など)
  • (c) CTF 競技の中(規約の範囲で)

実在する第三者のシステムを許可なく触ることは、不正アクセス禁止法に触れます。 このゲートは、その線引きを毎回の入口で確かめるためのものです。詳しくは「セキュリティの法と倫理」へ。

扱うこと — スタックバッファオーバーフローで、すでにプログラム内に存在する関数(win)へリターンアドレスを差し替える「ret2win」。
扱わないこと — 任意のシェルコードを注入して実行する手口、ROPチェーンを組んで任意コード実行に持ち込む手口。これらは、より高度な武器化技術であり、このコースの範囲外です。

対象は、あなた自身がこのコースの中でビルドする自作バイナリだけです。ネットワーク越しのサービス、他人の環境、公開されているCTF基盤は一切対象にしません(法と倫理)。

使う道具

このコースは、あなた自身の gcc・gdb・python3(pwntools)を使います。python3 -c “import pwn” がエラーなく通ることを確認してください。特別なコンテナや仮想マシンは使いません——あなた自身の手元だけで完結します。

準備ができたら、次の章へ。

こうなっていればOK

卒業まであと3章です。

この章はまだ完了していません。