コース目次 / 第0章
はじめに — このコースの一線
pwnカテゴリの範囲と、このコースが扱う技術(ret2winのみ、シェルコード・ROPチェーンなし)を明確にします。あなた自身の手元の自作バイナリだけを対象にすることを確認し、法と倫理ゲートに同意します。
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章です。
この章はまだ完了していません。
保存できませんでした(プライベートブラウズ中かもしれません)。この端末に進捗は残りませんが、先へは進めます。