知識ゼロから試せる 21のハッキング体験で学ぶWebセキュリティ

「知識ゼロから試せる 21のハッキング体験で学ぶWebセキュリティ」のカバー画像
著者
左門至峰(さもんしほう),SATOKI(辻知希) 著
定価
3,520円(本体3,200円+税10%)
発売日
2026.11.6
判型
A5
頁数
384ページ
ISBN
978-4-297-16007-4

概要

セキュリティ技術およびセキュリティ対策の中軸ともいえるWebセキュリティの基礎を、「動くソースコード」と「実機演習(ハンズオン)」を通して体得する一冊です。単なる脆弱性の羅列ではなく、攻撃者がどのように考えてどのように脆弱性を突くのかを、安全なローカル環境で再現します。ポイントを絞って初歩の知識から丁寧に解説し、実機でのハッキング体験により深い理解が得られるよう構成しています。

ハンズオンでは、自分の手持ちのPC(Windows環境)でMicrosoft公式の機能「WSL」を使用してLinux(Ubuntu)を起動しWebサーバ(Apache)をたてたり、Dockerで演習環境を構築します。この体験も、入門者にとって有意義な深い学びとなることでしょう。

セキュリティの世界で名を馳せる株式会社Ikotas LabsのSATOKI(辻知希)氏によるコラムも必読! 脆弱性診断や物理ペネトレーションテストなどの現場のリアルや、「AI任せ」で防衛省CTFで完全優勝した話、セキュリティ業界のキャリア事情、映像作品のハッキング監修の裏話、世界最高峰のハッキング大会の実情や優勝記録など、興味深いトピックが満載です。

こんな方にオススメ

  • Webセキュリティの基礎を、知識と体験でしっかり学びたい方
  • 教科書的なことはわかっても、実際にはよくわかっていない、身についていないと感じている方
  • ハンズオンで攻撃手法とセキュリティ対策を体験したい方

目次

第1章 なぜ今、Webセキュリティなのか

1.1 技術的セキュリティ対策の全体像

1.2 本書が対象とする「Web」とは何か

1.3 なぜWebセキュリティが重要なのか?

1.4 情報処理安全確保支援士試験でも、Webセキュリティは「超・頻出」テーマ

1.5 AIがあれば、もうセキュリティの基礎やコードは学ばなくていい?

1.6 【注意点】悪用厳禁!

  • 【SATOKI's Eye ①】セキュリティ業界に入るには?

第2章 Webとコンピュータの基本

2.1 Webの基本用語

  • WWWとWeb
  • ドメインやURLに関する基本用語
  • HTML
  • 静的なWebページと動的なWebページ

2.2 Webサーバとは

  • サーバとクライアント
  • Webサーバとは
  • Webサーバと普段使っているPCの違い
  • Webサーバを作るために必要なWebサーバソフト

2.3 Webサーバを支える「OS」

  • 代表的な2つのサーバOS
  • Linuxの種類とUbuntu

2.4 便利なコンテナ機能「Docker」

  • Dockerとは
  • Dockerのメリット
  • Dockerの構成イメージ
  • 【SATOKI's Eye ②】脆弱性診断ってどんな仕事?

第3章 安全なハンズオン環境の作り方

3.1 安全なハンズオン環境に関して

  • なぜローカル(自分のPC)に作るのか
  • 本書が提供する2つの構築パターン
  • うまくいかないときはAIに聞いてみる

3.2 パターン1:手動で一から構築する

  • WSLの活用
  • WSLでUbuntuを起動する
  • WSL(Ubuntu)の初期設定
  • Webサーバ(Apache)の構築
  • 動的なWebサイトのためのPHPのインストール
  • 演習用ファイルの配置(サポートページから取得)

3.3 WSL環境をリセットする方法

  • 事前準備:データのバックアップ
  • 方法 1:Ubuntuそのものを初期化する
  • 方法 2:コマンドで今回インストールしたものだけを削除する

3.4 パターン2:Dockerを使って構築する

  • コンテナ技術「Docker」を使う方法
  • 本書ではどちらか一方の方法を選びます
  • Docker Desktopのインストール(Windows編)
  • コマンド数行で簡単に環境構築を実施する
  • Docker環境の使い方とリセット方法

3.5 操作の違いや配布ファイル

  • 演習における環境ごとの操作の違い
  • 配布するファイルについて
  • 重要:パターン1とパターン2の両方試す場合の注意点

3.6 CTFプレイヤーが利用する作業環境

  • Kaliより、素のUbuntu(WSL)を育てる

3.6 【参考】Linux(Ubuntu)の基本操作

  • システム操作
  • ファイル・ディレクトリ操作
  • ファイルの中身を確認・検索
  • アクセス権と管理者操作
  • ネットワーク・サービス管理
  • 特殊記号
  • 【SATOKI's Eye ③】物理ペネトレーションテストってどんな仕事?

第4章 Webページを作ってみよう

4.1 静的なWebページを作る

  • STEP 1:Web公開用のフォルダへ移動する
  • STEP 2:HTMLファイルを作成する
  • STEP 3:ブラウザで表示を確認する

4.2 【参考】Linuxエディタ(vi/Vim)の基本操作

  • テキストエディタ(vi/vim)と2つのモード
  • 覚えておきたい最低限の基本コマンド

4.3 動的なページを作る

  • 動的なWebページとフォーム
  • 動的なWebページを作成1:ラッキーナンバーを表示する
  • 動的なWebページを作成2:「掛け算アプリ」

4.4 ログイン画面とinput要素の仕組み

  • ログイン画面を作ってみよう
  • input要素の「type」による違い
  • 【SATOKI's Eye ④】セキュリティ業界の年収・キャリア事情

第5章 Webを理解するための便利なツール紹介

5-1 Webセキュリティの学習に便利なツールについて

5-2 ブラウザ開発者ツール

  • 具体的なタブの紹介

5-3 「curl」コマンド

  • curlの基本コマンド
  • curlの応用的な使い方

5-4 ローカルプロキシツール「Burp Suite」

  • ローカルプロキシツールとは
  • Burp Suiteの内蔵ブラウザ
  • Burp Suiteのインストールと設定
  • プロキシ機能を使ってみる
  • リクエストの改ざん(プロキシによるデータの書き換え)

5-5 【参考】Kali Linux

  • Kali Linuxとは
  • WindowsのWSLにKali Linuxを追加インストールする
  • 代表的なツール

5-6 CTFのトッププレイヤーが愛用するツール

  • ふだん使う定番ツール
  • 定番ツールの使い分け
  • 自動化ツールとの付き合い方
  • ペネトレーションテストで使うツール
  • 困ったときに開く“虎の巻”
  • 【SATOKI's Eye ⑤】CTFって何?

第6章 HTTPの理解

6-1 HTTPプトロコルの基本

  • OSI参照モデルとアプリケーション層
  • HTTPとは
  • HTTPによる通信の流れ

6-2 HTTPS

  • セキュリティに欠かせない「HTTPS」
  • SSL
  • TLS
  • TLSのシーケンス

6-3 HTTPのリクエストとレスポンス

  • HTTPのリクエストとレスポンス
  • HTTPリクエストやレスポンスの詳細
  • HTTPのリクエストとレスポンスを実際に見る
  • HTTPのステータスコード

6-4 HTTPのメソッド

  • HTTPのメソッド
  • GETの問題点とPOSTの登場
  • GETとPOSTの違いを体験してみよう

6-5 HTTPヘッダの詳細とセキュリティ148

  • HTTPリクエストヘッダ
  • HTTPレスポンスヘッダ

6-6 セキュリティ対策で有効なHTTPレスポンスヘッダの詳細

  • X-Content-Type-Options
  • Content-Security-Policy(CSP)
  • X-Frame-Options
  • HSTS
  • Webサーバへのセキュリティヘッダの設定

6-7 Webサーバのログ

  • 【SATOKI's Eye ⑥】防衛省CTFを、AIに30分で全部解かせた話

第7章 セッションハイジャック

7-1 Cookieとセッション管理

  • セッション管理
  • Cookieとは
  • Cookieによるセッション管理の仕組み(通信の流れ)

7-2 Cookieの属性とセキュリティ対策

  • Cookieの代表的な属性
  • SameSite属性

【ハッキング体験 #01】JavaScriptでCookieを読む

7-3 HttpOnlyでCookieを守る

【ハッキング体験 #02】罠サイトのリンクからCookieを送信させる

7-4 Cookie以外のセッション管理手法

  • URLリライティング(URLに埋め込む方法)
  • hiddenフィールドを使う方法

【ハッキング体験 #03】Referer機能によってセッションIDを取得せよ

7-5 現代のセッション管理(トークンとJWT)

  • トークンを使った方法の概要
  • トークンの中身(JWTの場合)
  • Cookie方式とトークン方式の決定的な違い(ステートレスとは)

【実践】ブラウザと開発者ツールでJWT認証の裏側を覗いてみよう

  • Cookieを使う場合
  • JWTを使う場合

【ハッキング体験 #04】JWTを盗み出し、セッションを乗っ取れ

  • 【SATOKI's Eye ⑦】世界レベルのCTFのリアル

第8章 認証情報の突破

8-1 セッションハイジャック

  • セッションハイジャックとは
  • セッションハイジャックの攻撃フロー
  • セッションハイジャックの方法

【ハッキング体験 #05】セッション情報を書き換えて、他人でログインせよ

【ハッキング体験 #06】罠のスクリプトを仕掛け、標的のセッションIDを奪取せよ

8-2 セッションフィクセーション

  • セッションフィクセーションとは
  • 攻撃の流れ

【ハッキング体験 #07】罠のセッションIDを送り込み、アカウントを乗っ取れ

8-3 セッションハイジャックおよびセッションフィクセーションの対策

  • セッションハイジャックの対策
  • セッションフィクセーションの対策
  • 【SATOKI's Eye ⑧】講演で世界を観光できる

第9章 インジェクション攻撃

9-1 SQLインジェクション

  • SQLとは
  • データベースを構築してみる
  • SQLでデータを操作する
  • SQLインジェクションとは

9-2 SQLインジェクションの対策

  • 静的プレースホルダ(バインド機構)
  • エスケープ処理
  • エラーメッセージの適切な処理

【ハッキング体験 #08】SQLインジェクションで認証を突破せよ

【ハッキング体験 #09】利用者IDを知らない状況で認証を突破せよ

【ハッキング体験 #10】不十分なエスケープ処理を回避して認証を突破せよ

9-3 OSコマンドインジェクション

  • OSコマンドインジェクションとは
  • 想定される被害
  • 攻撃の方法
  • OSコマンドインジェクションの対策

【ハッキング体験 #11】OSコマンドを注入し、サーバ内部の情報を読み取れ

9-4 HTTPヘッダインジェクション

  • HTTPレスポンスの構造
  • 攻撃の仕組み:改行コードの「注入」
  • HTTPヘッダインジェクション攻撃の対策

【ハッキング体験 #12】HTTPヘッダを破壊し、偽の画面を表示させよ

  • 【SATOKI's Eye ⑨】ハッキング監修の現場で見た、映画・ドラマの裏側

第10章 クライアントサイドへの攻撃

10-1 クロスサイトスクリプティング

  • クロスサイトスクリプティングの概要

10-2 格納型XSS

  • 格納型XSSの概要
  • 格納型XSSの具体例

【ハッキング体験 #13】格納型XSSの脆弱性があるサイトに対して攻撃コードを埋め込む

10-4 反射型XSS

  • 反射型XSSの概要
  • 反射型XSSの脆弱性があるサイトの例

【ハッキング体験 #14】反射型XSSの脆弱性を悪用した罠リンクの作成

10-6 DOM型XSS

  • DOMとは
  • DOM型XSSとは
  • 反射型のXSSとDOMベースのXSSの違い
  • DOMを活用した攻撃サンプル

【ハッキング体験 #15】DOM型XSSの脆弱性を悪用したCookieの窃取

10-5 XSSの対策
  • 根本的対策(脆弱性を作らない)
  • 被害軽減策
  • 10-6 クロスサイトリクエストフォージェリ

    • クロスサイトリクエストフォージェリの概要
    • 攻撃の流れ
    • CSRFの対策
    • 情報処理技術者試験の問題を見てみよう

    【ハッキング体験 #16】セッションを悪用する(CSRF)

    10-7 クリックジャッキング

    • クリックジャッキングの概要
    • 攻撃の流れ
    • 想定される被害
    • クリックジャッキングの対策

    【ハッキング体験 #17】クリックジャッキングを実行せよ

    • 【SATOKI's Eye ⑩】Pwn2Ownに挑戦した話(前編)

    第11章 サーバ本体を掌握する攻撃

    11-1 ファイルアップロード機能の脆弱性

    • ファイルアップロード機能とは
    • ファイルアップロード機能を試してみる
    • Content-Typeによる判定方法とその問題点

    11-2 Webshell

    • Webshellとは
    • Webshellを試してみる

    【ハッキング体験 #18】ファイルタイプを偽装してサーバにWebshellを送り込め

    11-3 ディレクトリトラバーサル

    • 相対パスと絶対パス
    • ディレクトリトラバーサルの攻撃概要

    【ハッキング体験 #19】ディレクトリトラバーサルで機密ファイルを盗み出せ

    11-4 サーバサイドリクエストフォージェリ

    • SSRFとは

    【ハッキング体験 #20】SSRFで内部サーバの機密情報を読み取れ

    11-5 XXE

    • XXEとは
    • XXE攻撃のイメージ

    【ハッキング体験 #21】XXEでサーバ内部のファイルを読み出せ

    • 【SATOKI's Eye ⑪】Pwn2Ownに挑戦した話(後編)

    第12章 Webサーバを守るための基本対策

    12-1 企画・設計フェーズ

    12-2 開発フェーズ

    12-3 構築フェーズ

    12-4 テストフェーズ

    12-5 運用フェーズ

    プロフィール

    左門至峰(さもんしほう)

    株式会社エスエスコンサルティング代表。ネットワークとセキュリティの専門家。企業システムの構築やセキュリティ分野での実務経験を持ち、講演、企業向け研修など幅広く活動。

    著書に、情報処理安全確保支援士試験対策の『支援士』シリーズ(技術評論社)、『FortiGateで始める 企業ネットワークセキュリティ』(日経BP社)、『マンガ+図解で基礎がよくわかる 情報セキュリティの教科書』(技術評論社)など多数。『日経NETWORK』『日経クロステック』(日経BP)、『Think IT』(インプレス)、『@IT』(ITmedia)、『INTERNET Watch』(インプレス)などの専門誌・Webメディアでも執筆や連載を行う。

    保有資格は、情報処理安全確保支援士、CISSP、技術士(情報工学)、ネットワークスペシャリスト、システム監査技術者、プロジェクトマネージャなど。ラジオ大阪(OBC)で、「女と男 市川×左門の『資格大好き!』」にも出演。

    SATOKI(辻知希)

    株式会社Ikotas Labs代表取締役社長。Webアプリケーションつんつん職人、CTFプレイヤー、バグハンター。国内トップのCTFチーム「BunkyoWesterns」に所属。AVTOKYO(2020/2023/2024/2025)、Security Analyst Summit (2024/2026)、Hack Fes.(2024/2026)、m0leCon 2025、TyphoonCon Seoul 2025、HITCON(2025/2026)、DefCamp (2025/2026)、Queen City Conference 2026、Kernelcon 2026、CODE BLUE 2027など、国内外の主要セキュリティカンファレンスで登壇。Pwn2Own Berlin 2026では、OpenAI Codexを含む3製品でRCEを達成。DEF CON CTFやCODEGATE CTFなどのセキュリティコンテストで世界1位。Googleが提供するサービスやFirefoxをはじめ、主要なWebサービスやソフトウェアに存在する数々の0-day脆弱性を発見・報告。