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

Similar documents
内容 ( 演習 1) 脆弱性の原理解説 基礎知識 脆弱性の発見方法 演習 1: 意図しない命令の実行 演習解説 2

WEBシステムのセキュリティ技術

講義内容 AppGoat の説明 起動手順 学習の進め方 利用シーン紹介 脆弱性学習 ( 演習あり ) SQLインジェクションの脆弱性 クロスサイト スクリプティングの脆弱性 アンケート記入 2

1. SQL インジェクションの問題と脅威 2

SOC Report

安全な Web サイトの作り方 7 版 と Android アプリの脆弱性対策 独立行政法人情報処理推進機構 (IPA) 技術本部セキュリティセンター Copyright 2015 独立行政法人情報処理推進機構

[投影版]見つけられやすい脆弱性とウェブフレームワークに求められるセキュリティ対策_

べきでない悪意のあるSQL 文が攻撃者から入力された場合 データベースで実行される前にSQL 文として処理されないよう無効化する必要がありますが ( 図 1 1) 無効化されずにデータベースで実行された場合 データベースの操作が可能となります ( 図 1 2) 本脆弱性を悪用するとデータベース接続ユ


目次 1. エグゼクティブサマリー 総合評価 総評 内在するリスク 情報漏洩 サービス妨害 対策指針 早急の対策 恒久的な対

別紙 年第 3 四半期脆弱性対策情報データベース JVN ipedia の登録状況 ( 詳細 ) 1. 脆弱性対策情報の登録状況 年第 3 四半期に登録した脆弱性の種類別件数図 8 のグラフは JVN ipedia へ 2012 年第 3 四半期に登録した脆弱性対策情

金融工学ガイダンス

金融工学ガイダンス

金融工学ガイダンス

2011 年第 3 四半期脆弱性対策情報データベース JVN ipedia の登録状況 ( 詳細 ) 1. 脆弱性対策情報の登録状況 1.1 今四半期に登録した脆弱性の種類別件数 す 別紙 2 共通脆弱性タイプ一覧 CWE ( *12) は 脆弱性の種類を識別するための共通の脆弱性タイプの一覧で C

安全なウェブサイトの作り方 7 版 の内容と資料活用例 2

目次 新規会員登録 P.3 ログイン P.6 管理画面について P.7 研究情報の編集 P.8 お知らせの新規追加 編集 P.10 メディアの新規追加 編集 P.12 会員情報の編集 P.14 2 / 16

9 WEB監視

金融工学ガイダンス

目次 新規会員登録 P.3 ログイン P.6 管理画面について P.7 研究情報の編集 P.8 お知らせの新規追加 編集 P.10 メディアの新規追加 編集 P.12 会員情報の編集 P.14 2 / 16

SOC Report

はじめに (1) フィッシング詐欺 ( フィッシング攻撃 ) とは フィッシング詐欺とは インターネットバンキング ショッピングサイト等の利用者のアカウント情報 (ID パスワード等 ) や クレジットカードの情報等を騙し取る攻撃です 典型的な手口としては 攻撃者が本物のウェブサイトと似た偽のウェブ

コンテンツ作成基本編

Microsoft Word - ニュース更新システム(サイト用).docx

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

JavaScript 演習 2 1

目次 はじめに... 2 本書の対象読者 クリックジャッキング攻撃とは クリックジャッキング攻撃の例 クリックジャッキング攻撃が成立する仕組み クリックジャッキング攻撃によって想定される脅威 クリックジャッキ

◎phpapi.indd

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

コンテンツ作成基本編

■デザイン

5.1. ホームページ登録 ホームページ URL を登録します ホームページ URL は基本契約で 1 個 (100MB) まで無料 2 個目以降は有料オプションサービス ( 月額 300 円 / 個 ) で追加登録が可能です (1) 左メニューの HP アカウント登録 リンクをクリックします (1

クイックマニュアル(利用者編)

brieart初期導入ガイド

初期設定 情報発信者登録をする 3 任意のユーザー名とメールアドレスを記入の上 情報発信者登録 ボタンをクリック ユーザー名は半角英数に限ります 4 ユーザー登録完了です 指定したメールアドレス宛てに送付されるログイン情報をご確認ください ~ 2 ~

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

ファイルのアップロード. 上メニューから [ アップロード ] を選択します. [ アップロード ] 画面に移行しますので, 以下の手順で操作を行います アップロードするファイルを選択し, 指定場所へ [ ドラッグ & ドロップ ] します ドラッグ & ドロップ ファイルがリストアップされたことを

エントロペイ操作マニュアル

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

ホームページにパスワード認証を設定します 会員限定のページなどに利用できます 設定の手順 を設定するには 以下の手順で行います ユーザ登録 を設定したページにアクセスするためのユーザを登録します の設定 を設定するページ アクセスを許可するユーザを選択し 設定します 設定完了 を設定したページにアク

金融工学ガイダンス

Delphi/400開発ノウハウお教えします 情報を守ろう!安全性を高めたWebシステムの構築

タグの設定方法 ユーザグラムのタグは 現時点では Yahoo! タグマネージャーのタグカタログに含まれていません このため スマートカスタムタグ から タグを直接貼り付ける必要があります 手順 1: スマートカスタムタグ からタグを設定する まず サービスタグの選択画面右上に書かれた スマートカスタ

Microsoft PowerPoint kiso.ppt

3-1 SPIRIT Gmail を使う メールアドレスの仕組み 自分のメールアドレスを確かめる V-Campus では V-Campus ID を利用したメールアドレスが 一人ひとりに用意されています メールアドレスとは 電子メールの利用者を識別するための宛名にあたるものです V-Campus で

HDC-EDI Manager Ver レベルアップ詳細情報 < 製品一覧 > 製品名バージョン HDC-EDI Manager < 対応 JavaVM> Java 2 Software Development Kit, Standard Edition 1.4 Java 2

電子申請サービス

目次 5. よくある質問とその答え 会員登録関連 質問 会員登録をしましたが 認証 E メールが届きません 質問 退会したいのですが ログイン関連 質問 正しいメールアドレスやパスワードを入力しても

に不要となった時点で速やかに抹消する (9) 提供した情報資産の返還 廃棄受託者は 中野区から提供された情報資産について本契約終了後 速やかに中野区に返却するか 消去又は廃棄してその旨を書面で報告する また 提供データの内容及び交換履歴に関して記録しておく (10) 記録媒体の制限受託者は 中野区か

管理サイト操作マニュアル Version.1.1. デジアナコミュニケーションズ株式会社

ご利用のコンピュータを設定する方法 このラボの作業を行うには 事前設定された dcloud ラボを使用するか 自身のコンピュータをセットアップします 詳細については イベントの事前準備 [ 英語 ] とラボの設定 [ 英語 ] の両方のモジュールを参照してください Python を使用した Spar

本書は 以下の URL からダウンロードできます 安全なウェブサイトの作り方

Microsoft Word - WebClass Ver 9.08f 主な追加機能・修正点.docx

DBMSリポジトリへの移行マニュアル

Microsoft Word - PHP演習資料.doc

掲示板ガイド1

MultiStageマニュアル_メール設定編

ロイロノートスクールクラウド版表 クラウド サービス利 弊社が 意しているクラウドサービスへ接続し利 するシンプルなプランです サービスだけで利 することができます プラン 保存可能な容量 / ユーザー 額の場合 / ユーザー 年額の場合 / ユーザー 共 タブレット向け 1 0.8GB 40 円

簡易版メタデータ

Microsoft Word - Amazon Pay オペレーションマニュアル.docx

PowerPoint プレゼンテーション

Microsoft Word - NEWSマニュアル docx

Active Directory フェデレーションサービスとの認証連携

PowerPoint プレゼンテーション

Windows メール設定 - 迷惑メールの振り分け フォルダの作成 迷惑メールの振り分け方 振り分け先のフォルダを作成します 受信トレイで右クリックをし フォルダの作成 をクリックします 名前に任意の名前を入力し OK ボタンをクリックします 件名に挿入設定がある場合 件名に挿入設定がある場合 W

Microsoft Word MT操作マニュアル(ユーザ編).doc

第21章 表計算

プレポスト【解説】

ページ閲覧を計測する 手順 1: カスタム HTML タグ からタグを設定する まず タグタイプを選択 の画面で カスタム HTML を選択します タグの設定画面が開くので ユーザグラムで発行されたタグを HTML 欄に直接貼り付けてください document.write をサポートする はオフのま

●コンテンツ「掲示板」

1 フリーページを表示する 1-1 フリーページのカテゴリを作成します フリーページのカテゴリの情報を入力します 1 複数のフリーページを記事のジャンルや種類で分け その見出しを入力します お店ページの左サイドバーに表示します 2 消費者が 検索エンジンで検索するであろう 記事の特長や内容をあらわす

FAX配信サービス 利用マニュアル

— intra-martで運用する場合のセキュリティの考え方    

SOC Report

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

PowerPoint プレゼンテーション

Ver1.10 セコムあんしんログインサービス利用者マニュアル ID パスワード認証 +ワンタイムパスワード認証 (Mac OS X) 2015 年 1 月 26 日 セコムトラストシステムズ株式会社 Copyright SECOM Trust Systems CO.,LTD. All Rights

目次 1. Web 改ざん検知概要 (1)Web 改ざん検知機能 P2 (2) サービスの提供対象および範囲 P2 2. Web 改ざん検知機能 (1) 解析について P2 (2) ホーム画面について P3 (3) 解析履歴 P3 (4) レポート作成 P4 (5) 解析内容の設定 P4 a. 基本

モバイルカスタマイズページ マニュアル 楽天トラベル株式会社モバイル事業部 2007 年 5 月 15 日 1

目次 3 14P Wordpressテンプレートの設定方法 15P 17P livedoorテンプレートの設定方法 18P 21P FC2テンプレートの設定方法

Simple Violet

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

第 7 回の内容 動的な Web サイト フォーム Web システムの構成

SOC Report

Facebookエクステンション利用マニュアル

目次 新規ユーザー登録... 3 初期設定... 6 (1) 特定商取引法に基づくページのURLを設定する... 7 (2) コンバージョン測定タグを設定する... 7 サイトを作成してみよう

Si 知識情報処理

改版履歴 版数 日付 内容 担当 V /2/25 初版発行 STS V //9 サポート環境の追加 STS 2

別添 2 SQL インジェクション ぜい弱性診断で最低限行うべき項目 1 ( ' ( 検索キー )''-- ( 検索キー ) and 'a'='a ( 検索キー ) and 1=1 は最低限 行うこと ) OS コマンドインジェクション 2 (../../../../../../../bin/sle

4. WIX アタッチエンジン 4. 1 FSDR 処理 システムの Web 資源結合動作であるアタッチ処理について 述べる. アタッチ処理は以下の 4 フェーズに分けられる. この一連の 流れを FSDR 処理とする. Find 処理 Select 処理 Decide 処理 Rewrite 処理

パソコンの使い方

目次 P. ログイン P. TOPページ P3. 物件概要の更新 P4. ページの編集 P6. 項目の編集 全体概要 登録本告 先着本告 予告 の編集 P7. 項目の編集 フリーエリア の編集 P8. 編集エディターのご使用方法 P. 項目の編集 更新日 の編集 P3. 次回更新予定日アラートメール

2. saccess saccess SQL SQL SQL saccess SQL SQL PHP 3. saccess saccess saccess Web *1 [5] saccess * saccess saccess, SQ

スライド 1

2 目次 1 はじめに 2 システム 3 ユーザインタフェース 4 評価 5 まとめと課題 参考文献

Microsoft Word - rocketcms_manual01

Webアプリケーションを守るための対策

登録後 Liberty Residents 公式 のトークルームを開くと 認証コードを入力する URL が表 示されますので その URL をタップして表示される画面にて ほんぶ と入力して 送信 してください 既に別の認証コードを入力済みの場合は Step2 に進んでください Step

ログイン画面とメニュー 5 スマートフォン / 携帯 web 投票について スマートフォンからの投票はこちら をクリックすると スマートフォン投票 ( のログイン画面にリンクします スマートフォン / 携帯 web 投票の推奨環境 をクリックすると サポート情報

4. ファイルアップロード機能 使い方 ファイルをドラッグ & ドロップ した状態 図 4-1: ファイルアップロード画面 ( 例 ) 1. 送信するファイルをドラッグ & ドロップしてください 送信するファイルの右のエリアをマウスでクリックする事により 従来のエクスプローラー形式のアップロードも可

Transcription:

別紙 脆弱性体験学習ツール AppGoat ハンズオンセミナー 演習解説

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

[ 演習 ] AppGoat を用いた疑似攻撃体験 SQL インジェクションのテーマ 不正なログイン ( 文字列リテラル ) 画面上に Congratulations!! と表示されると演習クリアです 3

脆弱性のある箇所を特定する ログイン ID またはパスワードにシングルクォート ' を入力し ログインボタンをクリックして ウェブアプリケーションの挙動を確認しましょう その結果 下記のように通常とは異なるエラーメッセージが表示されることが確認できます 入力値により SQL 文の構文が壊れた可能性がある SQL インジェクションの脆弱性が存在する可能性 4

入力値と SQL 文の関係 ログイン ID パスワードに入力した値が SQL 文の下記の箇所に展開される 展開される際の処理に問題があると SQL 文の挿入が可能になる 5

攻撃の流れを確認する 1. 攻撃者がオンラインバンキングのログインフォームの ID 欄に適当な文字列 パスワード欄に ' OR 'A'='A の文字列を入力し ログインを試みます 2. その結果 攻撃者が山田さんとしてログインできてしまいます 6

なぜ SQL 文の挿入が可能だったのか? DBMS において特別な意味を持つ記号文字 ' の扱いが不適切だったため SELECT * FROM user WHERE id='$i' AND pass='$p'; $i=yamada $p=foo の場合 : SELECT * FROM user WHERE id='yamada' AND pass='foo'; '; $i=yamada $p=foo' OR 'a'='a の場合 : SELECT * FROM user WHERE id='yamada' AND pass='foo' OR 'a'='a';'; 変数中の が文字列リテラルの区切り文字として解釈され SQL 文の構文を書き換えられてしまった 7

[ 演習 ] AppGoat を用いた疑似攻撃体験 SQL インジェクションのテーマ 情報漏えい ( 数値リテラル ) 画面上に Congratulations!! と表示されると演習クリアです 8

脆弱性のある箇所を特定する ID yamada でログインし 口座番号 1000001 の口座残高照会のページを参照しましょう ページ参照時の URL の account_id パラメータ値に a を入力し アクセスしてみましょう その結果 下記のようなエラーメッセージが表示されることが確認できます 入力値により SQL 文の構文が壊れた可能性がある SQL インジェクションの脆弱性が存在する可能性 9

入力値と SQL 文の関係 URL のクエリストリングに入力した値の一部が SQL 文の下記の箇所に展開される http://localhost/web/scenario109/vulsoft/bank.php? page=3&account_id=99 OR 1=1 10

攻撃の流れを確認する 1. ログイン済みの攻撃者が 下記の URL にアクセスします http://localhost/web/scenario109/vulsoft/bank.php?page=3& account_id=99 OR 1=1 2. その結果 ログイン済みの攻撃者が他人の口座残高を閲覧できてしまいます 11

なぜ SQL 文の挿入が可能だったのか? 変数に数値が入ることを想定している箇所に 数値以外の文字が出力され 文字列として扱われてしまったため SELECT * FROM account WHERE id='$i' AND account_id=$ai; $i=yamada $ai=99 の場合 : SELECT * FROM account WHERE id='yamada' AND account_id=99; ; $i=yamada $ai=99 OR 1=1 の場合 : SELECT * FROM account WHERE id='yamada' AND account_id=99 OR 1=1; 変数中の OR が SQL 文の OR 演算子として解釈された 12

クロスサイト スクリプティングの脆弱性

[ 演習 ] AppGoat を用いた疑似攻撃体験 クロスサイト スクリプティングのテーマ アンケートページの改ざん ( 反射型 ) 画面上に Congratulations!! と表示されると演習クリアです 14

脆弱性のある箇所を特定する アンケートページに存在する脆弱性の箇所を探します 複数の入力欄に '>"><s> を入れて アンケート内容に関するエラーページを表示してみましょう エラーページ出力 (HTML 生成 ) 時において 名前欄に入力した値がそのまま使われていることが確認できます HTML ソース ウェブブラウザ上の表示 15

疑似攻撃に使うスクリプトについて アンケートページの内容を書き換えるスクリプトを作成し 演習環境に対して クロスサイト スクリプティングの脆弱性を突いてみましょう 例えば アンケートページで下記のスクリプトが実行されると アンケートページの一部が書き換わります <script>document.getelementbyid("account").innerhtml = '<font color="blue" size="3"> もれなく一万円をプレゼントいたします 名前 住所 口座番号を入力してください </font>';</script> HTML の id 属性値が account の要素の内容を innerhtml プロパティで置き換えています 16

攻撃の流れを確認する 1. 攻撃者が掲示板に罠のリンクを作成します 罠のリンクには 先ほど作成したスクリプト文字列を含めます 2. 利用者が罠のリンクをクリックし アンケートページにアクセスします 3. その結果 利用者のウェブブラウザ上でスクリプトが実行されます 17

なぜ HTML タグの挿入が可能だったのか? 文字列を出力する際 文字そのもの として出力することを想定しているにもかかわらず その実現に必要な処理 ( エスケープ処理 ) を実装していないため 例 : < < > > " " & & など 文字そのもの として出力することを想定した箇所に HTML タグ として出力することができてしまうため セキュリティ上の問題となる 18

[ 演習 ] AppGoat を用いた疑似攻撃体験 クロスサイト スクリプティングのテーマ 掲示板に埋め込まれるスクリプト ( 格納型 ) 画面上に Congratulations!! と表示されると演習クリアです 19

脆弱性のある箇所を特定する 掲示板に存在する脆弱性の箇所を探します 複数の入力欄に '>"><hr> を入れ投稿し 投稿結果を確認してみましょう 投稿結果の HTML ソースを確認すると 本文欄に入力した値が HTML の構成要素としてそのまま使われていることが確認できます HTML ソース ウェブブラウザ上の表示 20

攻撃の流れを確認する 1. 攻撃者が掲示板にスクリプトを埋め込みます 2. 利用者が掲示板にアクセスします 3. その結果 利用者のウェブブラウザ上でスクリプトが実行されます 21

なぜ HTML タグの挿入が可能だったのか? 学習テーマ アンケートページの改ざん ( 反射型 ) と同じく HTML におけるエスケープ処理を適切に実装していないため 例 : < < > > " " & & など " で括られた属性値の場合は 属性値に含まれる " を文字実体参照 " にエスケープ処理する必要がある HTML ソース ウェブブラウザ上の表示 22

クロスサイト リクエスト フォージェリ (CSRF) の脆弱性

[ 演習 ] AppGoat を用いた疑似攻撃体験 クロスサイト リクエスト フォージェリのテーマ 意図しない命令の実行 画面上に Congratulations!! と表示されると演習クリアです 24

脆弱性のある箇所を特定する ID yamada でログインし 設定変更ページの HTML ソース等からどのようなリクエストを送信しているのか確認しましょう 設定変更ページから 個人情報公開 の設定を 公開する に変更するリクエストを送信してみましょう 送信するリクエストに 第三者が予測困難な情報が含まれていないことが確認できます 25

攻撃の流れを確認する 1. 攻撃者が掲示板に 罠リンクを含む投稿をします 2. SNS サイトにログイン済みの利用者が 掲示板にある罠リンクをクリックします 3. その結果 罠リンクをクリックした利用者が SNS サイトの設定を変更するリクエストを送ってしまい 個人情報を公開する設定に変更してしまいます 26

なぜ意図しない処理が実行されたのか? ログインした利用者からのみ受け付ける処理について 利用者が意図したリクエストであるかどうかを識別する仕組みがないため 攻撃者 リクエストの違いを識別することができない A: 罠ページからのリクエスト ログイン済みの利用者 A B: 利用者が意図したリクエスト ウェブアプリ 27