コース目次 / 第0章
はじめに — 注入は、境界の崩壊
ばらばらに見えるインジェクション各種が、実は「データが別の言語のコードとして解釈される」という一つの形だと掴みます。起こす側と直す側を対にする方針を確認し、法と倫理ゲートに同意します。
旗艦コースで、反射 XSS を一つ扱いました。このコースは、その仲間——インジェクション(注入)の穴を、ひととおり体で覚えます。XSS の三種、SQL、コマンド、テンプレート(SSTI)、パストラバーサル。名前はばらばらですが、根はたった一つです。
すべての注入は、同じ形をしている
信頼できない入力が、別の言語の「文法」として解釈された瞬間、穴が開く。
・XSS — 入力が HTML/JavaScript として解釈される。
・SQL インジェクション — 入力が SQL として解釈される。
・コマンドインジェクション — 入力が シェルのコマンドとして解釈される。
・SSTI — 入力が テンプレートの式として解釈される。
どれも、あなたが「ただのデータ」のつもりで扱った入力が、どこかでコード(命令)に化ける。データとコードの境界が崩れる——これが注入の正体です。
一つの形だと分かると、直しも一つに畳めます。データを、コードに混ぜない。文字列連結で命令文を組み立てるのをやめ、データはデータとして(パラメータとして)渡す。出すときは、出す先の文法に合わせてエスケープする。この原則を、各層で手を動かして確かめます。
起こす側と、直す側を、対で
このコースの約束は、旗艦と同じ攻撃 → 修正 → 再検証、そして——
一つの穴を起こしたら、必ずその場で直す。「危ないコードを見た」で終わらせず、「こう書けば安全」まで対で身につけます。攻撃だけ覚えても、あなたは作る側で同じ穴を空けてしまう。直し方まで手が覚えて、初めて「注入を分かった」と言えます。
このコースの地図
法と倫理ゲート
手を動かす前に
このコースは攻撃の技術に触れます。実習してよい相手は、次の3つだけです。
- (a) 自分で作った練習用のやられ環境(このサイトが配る自作ターゲット)
- (b) あなた自身の許可された環境(自分の Thousand SKY・secret-notes-ctf など)
- (c) CTF 競技の中(規約の範囲で)
実在する第三者のシステムを許可なく触ることは、不正アクセス禁止法に触れます。 このゲートは、その線引きを毎回の入口で確かめるためのものです。詳しくは「セキュリティの法と倫理」へ。
すべて、自分の 127.0.0.1 に立てる自作やられ相手です(法と倫理)。
| 章 | 注入 | 直しの本命 |
|---|---|---|
| 第1章 | XSS 三種(反射・保存・DOM) | 文脈別の出力エスケープ |
| 第2章 | SQL インジェクション | パラメータ化(プレースホルダ) |
| 第3章 | コマンドインジェクション | シェルを介さない(引数配列) |
| 第4章 | SSTI とパストラバーサル | 入力をコード/パスに混ぜない・許可リスト |
準備ができたら、次の章へ。まずは、旗艦で一つだけ見た XSS を、三種そろえて見比べます。
こうなっていればOK
卒業まであと5章です。
この章はまだ完了していません。
保存できませんでした(プライベートブラウズ中かもしれません)。この端末に進捗は残りませんが、先へは進めます。