SOC Report

Similar documents
SOC Report

SOC Report

SOC Report

SOC Report

SOC Report

SOC Report

SOC Report

SOC Report

SOC Report

SOC Report

実験 5 CGI プログラミング 1 目的 動的にWebページを作成する手法の一つであるCGIについてプログラミングを通じて基本的な仕組みを学ぶ 2 実験 実験 1 Webサーバの設定確認と起動 (1)/etc/httpd/conf にある httpd.conf ファイルの cgi-bin に関する

目次 1. PDF 変換サービスの設定について )Internet Explorer をご利用の場合 )Microsoft Edge をご利用の場合 )Google Chrome をご利用の場合 )Mozilla Firefox をご利

SOC Report

SOC Report

SOC Report

1. 信頼済みサイトの設定 (1/3) この設定をしないとレイアウト ( 公報 ) ダウンロードなどの一部の機能が使えませんので 必ず設定してください 1 Internet Explorer を起動し [ ツール ]-[ インターネットオプション (O)] を選択します 2 [ セキュリティ ] の

SOC Report

Microsoft Word - FWTEC0003.doc

2.2 Reflected XSS 攻撃攻撃者の用意した悪意のあるリンクとターゲットサーバが同じホストである場合の Reflected XSS 攻撃を, 本稿では Reflected XSS 攻撃と呼ぶ. 例えば, サーバ A の target.php に Reflected XSS 脆弱性があった

Webデザイン論

Microsoft Word - manual.doc

easyhousing 環境設定 操作マニュアル Ver 年 7 月 2 日

第7回 Javascript入門

はじめに このマニュアルは BACREX-R を実際に使用する前に知っておいて頂きたい内容として 使用する前の設定や 動作に関する注意事項を記述したものです 最初に必ずお読み頂き 各設定を行ってください 実際に表示される画面と マニュアルの画面とが異なる場合があります BACREX-R は お客様の

クライアント証明書インストールマニュアル

目次 1. はじめに 証明書ダウンロード方法 ブラウザの設定 アドオンの設定 証明書のダウンロード サインアップ サービスへのログイン

SmartBrowser_document_build30_update.pptx

Microsoft Word - MyWebMedical40_client_guideIE8.doc

Vista IE7 ブラウザの設定手順

ブラウザ Internet Explorer 7 の設定について 第3版

allows attackers to steal the username-password pair saved in the password manager if the login page or other pages in the same domain are vulnerable

SQL インジェクションの脆弱性

クライアント証明書インストールマニュアル

PowerPoint プレゼンテーション

Ver.50 改版履歴 版数 日付 内容 担当 V //9 新規作成 STS V..0 06/6/ 画像修正 STS V..0 06/6/8 画像修正 STS V /9/5 画像追加 (Windows0 Anniversary の記載 ) STS V // 文言修

Windows10 の設定

クライアント証明書導入マニュアル

インターネット EDI システムを使用する前の準備 目次 動作環境について... 2 Internet Explorer7.0 / 8.0 をご利用の場合の設定方法... 3 [1] インターネット EDI システムを利用するための標準的な設定... 3 [2] ブラウザ型で帳票を利用する場合に必要

RSS配信の設定方法 第2版(平成30年2月)

ICカード

ICカード

FTP ウェブコンテンツダウンロード手順書 ver1.0 作成 :KDDI 株式会社 作成日 :2018 年 10 月 31 日

Ver.60 改版履歴 版数 日付 内容 担当 V /7/8 初版発行 STS V..0 04// Windows 8. の追加 STS V..0 05//5 Windows XP の削除 STS V.30 05/8/3 体裁の調整 STS V.40 05//9 Windows0 の追加

ポップアップブロックの設定

Team Foundation Server 2018 を使用したバージョン管理 補足資料

PowerPoint プレゼンテーション

スライド 1

ポップアップブロックの設定

<30312E D F898AFA93B193FC8EE88F872E786C73>

PALNETSC0184_操作編(1-基本)

Ver1.70 証明書発行マニュアル パスワード設定版 Windows 7 InternetExplorer 2018 年 3 月 14 日 セコムトラストシステムズ株式会社 Copyright SECOM Trust Systems CO.,LTD. All Rights Reserved i

SOC Report

ニトリ労働組合アンケートシステム 利用者向け操作説明書 第 1.2 版 平成 25 年 10 月 08 日

目次 1. はじめに 動作環境 ログイン ログインページへのアクセス ログイン ID とパスワードの入力 ワンタイムパスワードの発行 ワンタイムパスワードによるログイン マスタ設定

第21章 表計算

スライド 1

環境設定・操作マニュアル

SQLインジェクション・ワームに関する現状と推奨する対策案

目次 1. はじめに ご利用条件 証明書配付システムの停止時間 実施手順 電子証明書の取得手順 Windows 証明書ストアへの電子証明書インポート手順 電子証明書インポート完了確認.

環境設定・操作マニュアル

Web データ管理 JavaScript (1) (4 章 ) 2011/12/7( 水 ) 湘南工科大学講義資料 Web データ管理 (2011) 阿倍 1/21

Webプログラミング演習

SILAND.JP テンプレート集

Ver1.40 証明書発行マニュアル (Export 可能 ) Windows 10 InternetExplorer 2018 年 3 月 14 日 セコムトラストシステムズ株式会社 Copyright SECOM Trust Systems CO.,LTD. All Rights Reserve

各種パスワードについて マイナンバー管理票では 3 種のパスワードを使用します (1) 読み取りパスワード Excel 機能の読み取りパスワードです 任意に設定可能です (2) 管理者パスワード マイナンバー管理表 の管理者のパスワードです 管理者パスワード はパスワードの流出を防ぐ目的で この操作

Active! mail 6 操作マニュアル 株式会社トランスウエア Copyright TransWare Co. All rights reserved.

改訂履歴 Ver 日付履歴 新規作成 5 月末の機能追加として キーワード検索部分およびアドレス直接入力時の入力補完機能 検索結果対象にメーリングリストを追加 メールアドレスとの区別の為にメーリングリストを青字表示 カレンダーアイコン押下時の挙動修正 Gmail 内のアド

数のディジタル化

画面表示に関する主要な事例について <IE11 の場合 > 1.Internet Explorer のアドオンを確認する ( よくあるご質問 1.1 の 1.1 の Step3 ~ Step5) 特定のアドオンが AnserBizSOL のログインや業務実施の阻害要因となっている可能性があります 以

Apache-Tomcat と 冗長な UTF-8 表現 (CVE 検証レポート ) 2008 年 08 月 26 日 Ver. 0.1

事前にご確認をお願いします InternetExplorerを起動し 右上のツールボタン インターネットオプション を左クリックします を左クリックし Internet Explorer10 設定手順書 2 / 23

Microsoft Word - IE11 設定手順書 受注者 win 7.doc

Microsoft PowerPoint - AGT用WEBマニュアル ppt [互換モード]

. はじめに はじめに みなと外国為替 WEBをご利用いただくにあたり ブラウザ ( インターネットに接続するソフト ) の設定作業は原則不要ですが お客さまのご利用環境によっては ブラウザの設定が必要となる場合があります お客さまの状況にあわせて手順をご確認ください ブラウザの設定を行う前にお客さ

第1章 業務共通

コンテンツメディアプログラミング実習2

intra-mart ワークフローデザイナ

C:\Apache Software Foundation\Apache2.2\htdocs\sample\login.html サンプルプログラム passworddisc.php <head><title> ログイン </title></head> $user=$_post['user']; $

フォームとインナー HTML を使って動的にページ内の文章を変更しよう 問題 1. つぎの指示と画面を参考に HTML を組みなさい 仕様 テキストボックスに任意の文字を入力し [ コメント ] ボタンをクリックすると 下部の文章がテキストボックスの内容に置き換わる フォーム名 : f1 テキストボ

(8) [ 全般 ] タブをクリックします (9) [ インターネット一時ファイル ] の [ 設定 ] ボタンをクリックします (10) [ 保存しているページの新しいバージョンの確認 ] から [ ページを表示するごとに確認する ] をクリックします (11) [OK] ボタンをクリックしていき

建築業務管理システム 補足マニュアル Internet Explorer11 設定ガイド (Windows10 用 )


事前準備マニュアル

Ver.0 目次. はじめに.... 証明書の発行 ( ダウンロード ) 手順... 付録 A. ルート証明書無しでの証明書の発行 ( ダウンロード ) 手順... 5 付録 B. ブラウザの設定... Copyright 04 SECOM Trust Systems CO.,LTD. All Ri


. はじめに 動作環境の全ブラウザで 本書の設定を行ってください 本設定を行わない場合 システムが 正常に動作しない可能性がありますので 必ず設定をお願いいたします また 本書の中で 画 像に番号を付与している箇所以外の設定は お使いの環境のままでご使用ください 参考 : 動作環境の全ブラウザについ

Ver2.10 証明書発行マニュアル (Export 可能 ) Windows 7 InternetExplorer 2018 年 3 月 14 日 セコムトラストシステムズ株式会社 Copyright SECOM Trust Systems CO.,LTD. All Rights Reserved

BACREX-R クライアント利用者用ドキュメント

機能性表示食品制度届出データベース届出マニュアル ( 食品関連事業者向け ) 4-6. パスワードを変更する 画面の遷移 処理メニューより パスワード変更 を選択すると パスワード変更 画面が表示されます パスワード変更 画面において パスワード変更 をクリックすると パスワード変更詳細 画面が表示

<90568A838E E7193FC8E AE8DEC8AC28BAB82CC92C789C182C68F9C8A4F82C982C282A282C A8926D82E782B9816A5F8A6D92E894C52E786477>

目次 専用アプリケーションをインストールする 1 アカウントを設定する 5 Windows クライアントから利用できる機能の紹介 7 1ファイル フォルダのアップロードとダウンロード 8 2ファイル更新履歴の管理 10 3 操作履歴の確認 12 4アクセスチケットの生成 ( フォルダ / ファイルの

PowerPoint Presentation

<4D F736F F D CC82BD82DF82CC826F82628AC28BAB90DD92E82E646F63>

Microsoft Word - (修正)Internet Explorer 8 9設定手順 受注者.DOC

Web ファイルアクセス (Nextcloud) 利用マニュアル PC 操作編 Ver /4/26 明治大学情報基盤本部

共有フォルダ接続手順 1 共有フォルダ接続ツールのダウンロード 展開 CSVEX のトップページから共有フォルダ接続ツールの zip ファイルをダウンロードします ダウンロードした zip ファイルを右クリックして すべて展開 を選択します (Windows 環境では zip ファイルを解凍しなくて

スライド 1

BizBrowser SmartDevice Android開発用スタートアップガイド

OS の bit 数の確認方法 - Windows0 及び Windows8. Windows のコントロールパネルを開きます Windows0 の場合 スタート から Windows システムツール の コントロールパネル をクリックします Windows8. の場合 スタート から PC 設定

Transcription:

IE8 以降の F12 開発者ツール を使った DOM Based XSS の検査法について N T T コ ミ ュ ニ ケ ー シ ョ ン ズ株式会社 ソ リ ュ ー シ ョ ン サ ー ビ ス 部 第四エンジニアリング部門 セキュリティオペレーション担当 2011 年 09 月 05 日 Ver. 1.0

1. 調査概要... 3 2. F12 開発者ツール... 3 2.1. F12 開発者ツール... 3 3. F12 開発者ツールを使って DOM BASED XSS を確認する... 5 3.1. サンプルHTML... 5 3.2. HTMLロード直後のスクリプト... 6 3.3. ユーザイベント駆動型のスクリプト... 12 4. まとめ... 19 5. 検証作業者... 19 6. 参考... 19 7. 履歴... 19 8. 最新版の公開 URL... 20 9. 本レポートに関する問合せ先... 20 2

1. 調査概要 Microsoft Internet Explorer( 以下 IE) の version8 以降には Web サイトの開発者向けに 開発者ツール または F12 開発者ツール という機能が同梱されている 本文書では この機能を使い DOM Based XSS を検査する初歩的方法について 記述する 2. F12 開発者ツール 2.1. F12 開発者ツール F12 開発ツール とは IE に対して F12 を押す事で起動するデバグ ツールである ( 図 2.1-1~ 図 2.1-3) このような開発ツールによって Web アプリケーションのクライアント側スクリプトや Web ページのデザインのデバッグ環境は 大幅に改善されるだろう さて DOM Based XSS は Web ブラウザ上の DOM に対しての XSS(Cross-Site Scripting) 攻撃である 一般的な Web アプリケーションの診断手順とは 異なる箇所で発現するため DOM Based XSS の診断作業には このような Web ブラウザ上のデバグ ツールは欠かせない 図 2.1-1 : F12 キー または ツール 開発者ツール で起動できる 3

図 2.1-2 : IE8 の F12 開発者ツール CTRL + P キーで 図 2.1-3 のような画面になる 図 2.1-3 : IE8 の F12 開発者ツール (IE と一体化されている ) CTRL + P キーで 図 2.1-2 のような画面になる 4

3. F12 開発者ツールを使って DOM Based XSS を確認する 3.1. サンプル HTML 今回は 非常にシンプルな http://www.example.com/test.html ( 図 3.1-1) を対象にして DOM Based XSS の確認していく シンプルとはいえ settimeout() 関数を使い スクリプトをバックグラウンドで実行している部分も確認できる <html> <head><title>dom Based XSS Test</title></head> <body> <script language="javascript" type="text/javascript"> <!-- document.write("hello"); // --> </script> <hr> <p id="lmntag"></p> <A HREF="test.html">Reload</A> <form name="myfrm" METHOD="get" ACTION="test.html"> <input type="text" name="mytext" size="72"><input type="submit" name="send" value="send"><br> <input type="button" value="display Referer" onclick="test()"> </form> <p id="abctag"></p> <hr width="center"> <p id="xyztag"></p> <script language="javascript" type="text/javascript"> var Obj1 = document.getelementbyid("lmntag"); Obj1.innerHTML = document.referrer; function test(){ var Obj = document.getelementbyid("abctag"); Obj.innerHTML = document.referrer; } function mynow(){ var myobj = document.getelementbyid("xyztag"); var mydate = new Date(); var str = "" + mydate.getyear() + "/" + (mydate.getmonth()+1) + "/" + mydate.getdate(); str += " " + mydate.gethours() + ":" + mydate.getminutes() + ":" + mydate.getseconds(); myobj.innerhtml = str; } function mytimer(){ mynow(); settimeout('mytimer()',1000); } settimeout('mytimer()',1000); </script> </body> </html> 図 3.1-1 : http://www.example.com/test.html まぁ この程度なら F12 開発者ツール を使うまでもないかもしれない 5

<html> <head><title>post Page</title> </head> <body> <form action="test.html" method="get"> <input type="text" name="mytext" size="72"> <input type="submit" name="send" value="send"> </form> </body> </html> 図 3.1-2 : http://www.example.com/test2.html test.html へデータを送信する入力画面 3.2. HTML ロード直後のスクリプト 今回のサンプル HTML は HTML ロード時に実行されるスクリプトで Referer の値を画面に書き出していることが確認できる この節では HTML ロード時に実行されるスクリプト中に含まれる DOM Based XSS について考察する 手順は 以下の通りとなる ひとまず該当ページにアクセスし F12 開発者ツール を起動し コードのなるべく先頭部分にブレークポイントを設定し デバグ開始 を押下する ( 図 3.2-1) 一つ前のページへ戻り 再度アクセスする ( 図 3.2-2 図 3.2-3) 図 3.2-3 で ブレークポイントのところで処理が停止するので ステップ実行などでコード解析を行い XSS が発現する可能性のある部分を探し出す ( 図 3.2-4) 図 3.2-4 には innerhtml という DOM Based XSS を誘発させやすいプロパティ名を確認したので そこにブレークポイントを設定する ( 図 3.2-5) 再度 一つ前の画面に戻り 図 3.2-5 では Referer の値がそのまま innerhtml の値にコピーされているようなので この一つ前の画面から Referer に XSS コードを仕込んでみる ( 図 3.2-6) つまり 図 3.2-6 では アドレス欄に直接クエリ文字列を与えて test2.html を呼び出した後で test2.html から test.html へ遷移する ( send ボタン ) その後は 図 3.2-7~ 図 3.2-8 のようにブレークポイントのところで停止する F12 開発者ツール では実行中のスクリプトが扱っている DOM の状態を細やかに確認することができる 最終的には 図 3.2-9 のように XSS を発現させることができた 6

図 3.2-1 : とりあえず該当ページにアクセスし F12 開発者ツール を起動する なるべく先頭部分にブレークポイントを設定する 図 3.2-2 : 図 3.2-1 後 すばやく一つ前の画面に戻り 再度アクセスする 7

図 3.2-3 : 図 3.2-2 後の画面 このように ロード直後に実行されるスクリプトにもブレークポイントは設定できる 図 3.2-4 : 図 3.2-3 後 ステップ実行したところで 注目部分にブレークポイントを設定する 8

図 3.2-5 : 図 3.2-4 からのつながりで ここにブレークポイントを設定する 図 3.2-6 : 図 3.2-5 後 再度 一つ前の画面に戻る 図 3.2-5 では Referer の値に XSS 攻撃コードを仕込めそうなので 実際に仕込んでみる ( 今回は 診断作業として脆弱性の有無を確認できる程度のコード ) 9

図 3.2-7 : 図 3.2-6 後の画面 1 test.html のブレークポイントで処理が一時停止する 図 3.2-8 : 図 3.2-6 の後の画面 2 F12 開発者ツール には DOM の状態を細かく確認できる 10

図 3.2-9 : 図 3.2-7~ 図 3.2-8 の結果 XSS が発現した 11

3.3. ユーザイベント駆動型のスクリプト この節では ボタンなどの押下処理時の DOM Based XSS に対して考察する まずは HTML のソースを確認し ボタン押下など どの JavaScript 関数が呼び出されるかを確認する ( 図 3.3-1) 図 3.3-1 から test() 関数がボタン押下によって 呼び出されることから test() 関数にブレークポイントを設定し デバグ開始 ボタンを押下する ( 図 3.3-2) そして HTML 上のボタン ( Display Referer ボタン ) を押下すると test() 関数が実行され 指定したブレークポイントで処理が一旦停止する ( 図 3.3-3) さらに ステップ実行 ( F11 キー ) すると 図 3.3-4 のようになり DOM Based XSS として注目すべき innerhtml プロパティが登場した また その値に Referer がセットされることが分かった さらには ローカル というプロパティで DOM の状態を確認することも可能だ 以上より Referer の値に XSS を引き起こすような情報を埋め込むことができれば 上記のところで XSS を発生させることが可能ではないかと推定できる よって 今度は XSS を引き起こすような情報を Web ブラウザが Referer として認識させることが可能かという点であるが send ボタンによって 任意のクエリ文字列を与えることが可能であるため 実際に (XSS を引き起こすような ) 文字列をセットし XSS を誘発してみる ( 図 3.3-5~ 図 3.3-12) 最初におこなったことは そのままのクエリ文字列を使ってみることである ( 図 3.3-5~ 図 3.3-8 ) つまり テキストボックスに XSS 試験用文字列を埋め込み ( 図 3.3-5) サーバへリクエストを送りページ書き換えを実施し Web ブラウザに Referer を記憶させる ( 図 3.3-6~ 図 3.3-7) その上で Display Referer を押下してみたが 結果はうまく行かなかった ( 図 3.3-8) クエリ文字列が URL エンコードされてしまうことが原因である 次は URL エンコードされないようにアドレス欄に直接入力してみる ( 図 3.3-9~ 図 3.3-12) まず アドレス欄に直接クエリ文字列を記述し ページ書き換えを行う ( 図 3.3-9) 図 3.3-9 の状態ではアドレス欄の URL は まだ Referer の値とはなっていないので send ボタンを押下し もう一度ページ書き換えを行い Web ブラウザに Referer として認識させる ( 図 3.3-10) この状態で Display Referer を押下げると F12 開発者ツール のブレークポイントで処理が停止する ( 図 3.3-11) さらに処理を進めた結果が 図 3.3-12 であり XSS を発現させることに成功した 12

図 3.3-1 : HTML ソース を確認する ボタンクリックによって test() という関数が呼び出される 図 3.3-2 : test() 関数 にブレークポイントを設定し デバグ開始 を押下する 13

図 3.3-3 : 図 3.3-2 で設定したブレークポイントで停止する 図 3.3-4 : 図 3.3-3 後 さらに進める ( ステップ実行は F11 ) すると 注目の innerhtml と外部から書き換え可能なプロパティ document.referer が出現した 14

図 3.3-5 : 最初はテキストボックスに XSS 試験用文字列を与え send ボタンによって画面書き換えを実施する 図 3.3-6 : 図 3.3-5 の結果 再度の send ボタンによって 図 3.3-5 で入力した情報を Referer に記憶させる 15

図 3.3-7 : 図 3.3-6 の結果 次は Display Referer ボタンで Referer を表示して XSS 発現のはずだが 図 3.3-8 : 図 3.3-7 の結果 XSS が発現していないのはクエリ文字列が URL エンコードされていることが原因だ 16

図 3.3-9 : 次は URL エンコードされないように アドレス欄に直接記述し 画面呼び出しを行う その上で send ボタンで画面書き換えを行い 現在の URL を Web ブラウザが Referer として認識させる 図 3.3-10 : 図 3.3-9 の結果 いよいよ Display Referer をクリックする 17

図 3.3-11 : 図 3.3-10 の結果 ブレークポイントで処理が停止した 図 3.3-12 : 図 3.3-10~ 図 3.3-11 の結果 XSS が発現した 18

4. まとめ 本文書の例題は 非常にシンプルな DOM Based XSS であったが より実際的 より現実的で複雑なものであっても 同様の方法で確認することは可能であろう 実際のところ 多くの Web アプリケーションは 未だに WEB2.0 のレベルではなく AJAX も使われていない Web アプリケーションが多いと思われるが いざ AJAX をふんだんに駆使した Web アプリケーションに対しても 既存の Web アプリケーション診断の方法に加えて このようなデバグ機能を駆使することで より精度の高いセキュリティ診断を行うことができる 5. 検証作業者 NTT コミュニケーションズ株式会社ソリューションサービス部第四エンジニアリング部門セキュリティオペレーション担当佐名木智貴 6. 参考 1. Windows Internet Explorer 8 開発者ツールを使用してサイトを修正する http://msdn.microsoft.com/ja-jp/library/cc817576.aspx 2. Internet Explorer 8 の開発者ツールの概要 http://msdn.microsoft.com/ja-jp/library/cc848894(v=vs.85).aspx 3. 使ってみよう! [F12] IE9 開発者ツール - HTML と JavaScript のデバッグ編 - monoe's blog http://blogs.msdn.com/b/osamum/archive/2011/08/04/f12-ie9-html-javascript.aspx 4. 使ってみよう! [F12] IE9 開発者ツール さまざまな情報の表示 - monoe's blog http://blogs.msdn.com/b/osamum/archive/2011/08/09/f12-ie9.aspx 5. F12 開発者ツールで Web ページをデバッグする方法 Web ページのデバッグ Web ページのトラブルシューティング F12 開発者ツール開発者ツール (Windows) http://msdn.microsoft.com/ja-jp/library/gg589507(v=vs.85).aspx 7. 履歴 2011 年 09 月 05 日 : ver1.0 最初の公開 19

8. 最新版の公開 URL http://www.ntt.com/icto/security/data/soc.html#security_report 9. 本レポートに関する問合せ先 NTT コミュニケーションズ株式会社ソリューションサービス部第四エンジニアリング部門セキュリティオペレーション担当 e-mail: scan@ntt.com 以上 20