---
title: ウェブ・セキュリティ基礎試験(徳丸基礎試験）の模擬試験問題
tags:  #security #php  
author: [徳丸 浩](https://www.docswell.com/user/ockeghem)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/DK74GX1QJ1.jpg?width=480
description: ウェブ・セキュリティ基礎試験(徳丸基礎試験）の模擬試験問題（3題）と解説です。PHPカンファレンス2019での講演資料を少し手直ししました。 試験についてはこちら https://www.phpexam.jp/tokumarubasic/
published: December 01, 19
canonical: https://www.docswell.com/s/ockeghem/ZRE695-tokumaru-basic
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/DK74GX1QJ1.jpg)

徳丸試験基礎編の例題を紹介
EG セキュアソリューションズ株式会社
徳丸 浩


# Page. 2

![Page Image](https://bcdn.docswell.com/page/PLJ1DNGLEG.jpg)

前提
• ウェブ・セキュリティ基礎試験(徳丸基礎試験）の
模擬試験およびその解説です
https://www.phpexam.jp/tokumarubasic/
• 徳丸試験の本番の問題とは別ですが、似たような難
易度に調整しています
2


# Page. 3

![Page Image](https://bcdn.docswell.com/page/8GJWY4KQ72.jpg)

問題1
クッキーにHttpOnly属性を設定した場合の効果を一つ
選択せよ
1.
2.
3.
4.
クッキーがHTTPSではなくHTTPのみで送信される
CSRF脆弱性を防止できる
JavaScriptから当該クッキーを参照できなくなる
異なるオリジンからアクセスできるようになる
3


# Page. 4

![Page Image](https://bcdn.docswell.com/page/W4EZX2Z373.jpg)

問題1 – 解説
• 正解は 3
• クッキーをHTTPのみで送信強制する方法はありま
せん。
• クッキーの発行時にCSRF脆弱性を防止する機能と
してSameSite属性が実装されていますが、タイミン
グ的に徳丸本2版には間に合いませんでした
• JavaScriptから当該クッキーを参照できなくなるす
るのがHttpOnly属性の機能です
• クッキーを異なるオリジンからアクセスできるよう
にする機能候補としてdomain属性がありますが、
ドメイン（effective TLD）を超えた共有はできませ
ん
4


# Page. 5

![Page Image](https://bcdn.docswell.com/page/KY764VZZJV.jpg)

問題2
脆弱性診断の結果、ディレクトリトラバーサル脆弱性が指摘さ
れ、その証拠として /etc/passwd にアクセスした結果が報告書
に掲載されていた。
当該脆弱性の正しい対策を一つ選択せよ
1. ウェブアプリケーションの実行ユーザから /etc/passwd に
アクセスできないよう設定する
2. 外部から入力されたファイル名を正しくエスケープ処理す
る
3. 外部から入力されたファイル名に対して、basename関数な
どディレクトリ名を除去する関数を用いる
4. Apache等の設定を見直し、ファイルの一覧が表示されない
ことを確認する
5


# Page. 6

![Page Image](https://bcdn.docswell.com/page/5G75QDW9J4.jpg)

問題2 – 解説
• 正解は 3
• /etc/passwd へのアクセス制御は現実的に難しいことと、
他のファイルへのアクセスには効果がないので緩和策と
しても効果が少ないです
• この文脈ではファイル名のエスケープ処理はできません
• basename関数を用いて外部から入力されたファイル名
にディレクトリ名が含まれないようにする…これが正解
です（本番試験では特定言語の関数名は原則として出ま
せん）
• Apache等の設定を見直し、ファイルの一覧が表示され
ないことを確認する…これはディレクトリ・リスティン
グの禁止で、意図しないファイル公開への緩和策ですが、
ディレクトリトラバーサルには効果がありません
6


# Page. 7

![Page Image](https://bcdn.docswell.com/page/V9J2P8Q5JR.jpg)

【解説】basename関数は何をするか
• 以下のPHPスクリプト
&lt;?php
$filename = &#039;../../../../../../etc/passwd&#039;;
var_dump(basename($filename));
• 結果は下記となる（var_dumpなので引用符でこま
れる）
&quot;passwd&quot;
• passwdというファイルは通常存在しないが、単に
エラーにすればよい
7


# Page. 8

![Page Image](https://bcdn.docswell.com/page/5DEY56W6EM.jpg)

問題3
X-Frame-Optionsヘッダと最も関連の深い脆弱性はど
れか?
1.
2.
3.
4.
クロスサイト・スクリプティング
クリックジャッキング
セッションハイジャック
クロスサイト・リクエストフォージェリ
8


# Page. 9

![Page Image](https://bcdn.docswell.com/page/2VJNNZP1J8.jpg)

問題3 – 解説
• 正解は 2
• X-Frame-Optionsヘッダと最も関連の深い脆弱性は
クリックジャッキングで、コンテンツがframe /
iframe に入ることを防ぎます。
9


# Page. 10

![Page Image](https://bcdn.docswell.com/page/GYE9RZ3Y73.jpg)

【解説】クリックジャッキングの攻撃手法
ウェブインテント機能を持つ掲示板、クエリー文字列intentを指定すると犯行予告文を入力
欄に設定できる。
罠ページの画像を用意し、iframe要素を用いて罠と攻撃対象フォームを重ねる。そして、
CSSのz-indexを用いて、罠画像を奥側、攻撃対象フォームを手前にした上で、攻撃対象の
フォームを透明に設定する。
利用者から見ると罠サイトだけが見えるが、罠の「応募」ボタンを押そうとすると実際に
は手前側の「投稿」ボタンが押され、犯行予告文を投稿してしまう。
10


# Page. 11

![Page Image](https://bcdn.docswell.com/page/5GE8W1MK7D.jpg)

【解説】クリックジャッキングの対策
アプリケーション単体では困難なためブラウザ側の支援が必要。
レスポンスヘッダX-Frame-Options
⚫ DENY（拒否）
X-Frame-Options: DENY
⚫ SAMEORIGIN（同一オリジンに限り許可）
X-Frame-Options: SAMEORIGIN
いずれかの値をとる
PHPによりX-Frame-OptionsのSAMEORIGINを指定するには以下のように記述
header(&#039;X-Frame-Options: SAMEORIGIN&#039;);
一般的には、Apacheやnginxの設定で常時このヘッダを出力するとよい
11


# Page. 12

![Page Image](https://bcdn.docswell.com/page/MLELNQ3PJR.jpg)

その他大切なこと
• 基礎試験はPHP等の特定言語には依存しません
– JavaScriptに関する問題は出ます
• 徳丸本7章 脆弱性診断入門 からは出題されません
• とても基礎的な問題ですが、それでも意外に点数が
ばらけます（経験談）
• ウェブセキュリティの基礎が把握できているかを確
認するのに良いと思います
12


