コース目次 / 第0章

はじめに — やられアプリを手元で起動する

旗艦コースの進め方と、練習相手になる自作やられアプリ shanai-memo を 127.0.0.1 で起動します。法と倫理ゲートもここで確認します。

第0章 / 全5章目安 約12分この章のゴール: 自作やられアプリを自分のパソコンで起動し、攻撃→修正→再検証の進め方を理解する

このコースは、このトラックの旗艦です。ここまでの試食(サンドボックスの中)と違い、今回はあなたのパソコンの中で本物のサーバを動かし、そのサーバに空いた穴を、自分の手で攻めて・直して・もう一度攻めて確かめます。この往復こそ、脆弱性診断のいちばん基本の動きです。

相手になるのは、社内メモ帳をまねた架空のアプリ shanai-memo。わざと3つの穴(反射XSS・IDOR・オープンリダイレクト)を空けてあります。

この章は攻撃をしません。やられアプリを起動して、画面を眺めるところまでです。攻撃は次章から、法と倫理ゲートに同意した上で始めます。

まず線を引く

法と倫理ゲート

手を動かす前に

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

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

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

このコースで攻撃してよいのは、いま配る同梱のやられアプリ(a)だけです。実在する他人のサイトには、どんなに簡単な操作でも試しません。まだ「セキュリティの法と倫理」を通っていなければ、先にそちらを。

必要なもの

  • Node.js 18 以上。ターミナルで node -v と打って、バージョンが出ればOKです。追加のインストールは要りません(標準機能だけで動きます)。
  • ターミナルを2つ開けること。1つはサーバを動かしっぱなしにし、もう1つで攻撃コマンドを打ちます。

やられアプリを受け取る

このコースのターゲット一式(ソースだけ)を ZIP で配っています。

sec-web-basics.zip をダウンロード

解凍すると sec-web-basics/ というフォルダができます。中身はこうです。

sec-web-basics/
  vulnerable/server.mjs   3つの穴が空いた版(あなたが直す対象)
  vulnerable/data.mjs     架空のメモの種データ
  exploit/xss.mjs         反射XSS の参照エクスプロイト
  exploit/idor.mjs        IDOR の参照エクスプロイト
  exploit/open-redirect.mjs  オープンリダイレクトの参照エクスプロイト
  README.md

配っているのはソースコードだけです。実行ファイルは入っていません。あとで穴を直すために、vulnerable/server.mjs を自分で書き換えていきます。

起動する

1つ目のターミナルで、解凍したフォルダに入って起動します。

cd sec-web-basics
node vulnerable/server.mjs

こう表示されれば、起動しています。

[脆弱版] shanai-memo が http://127.0.0.1:4599 で起動しました。
⚠ 意図的に脆弱です。公開しないでください(127.0.0.1 の中だけで使う)。

ブラウザで http://127.0.0.1:4599 を開いてください。上に赤い帯で「意図的に脆弱・公開しないでください」と出た、社内メモ帳の画面が見えます。「alice でログイン」を押すと、alice としてログインした状態になります。

なぜ「127.0.0.1」なのか、なぜ「公開しない」のか

127.0.0.1(localhost)は、あなたのパソコンの中だけを指すアドレスです。この番地で動かしている限り、サーバは外のネットワークからは見えません。意図的に穴を空けたアプリを外(0.0.0.0 など)に公開すると、それは誰でも攻撃できる本物の踏み台になってしまいます。

このやられアプリには公開ガードが入れてあります。もし HOST=0.0.0.0 のように外向きで起動しようとすると、アプリ自身が起動を拒否します。「意図的に脆弱なものは、外に出さない」を仕組みで守るためです。

準備はこれで完了です。次章から、1つ目の穴——反射XSS——を攻めます。サーバは起動したままにしておいてください。

こうなっていればOK

卒業まであと4章です。

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