SlideShare a Scribd company logo
Submit Search
Upload
XSS再入門
Report
Share
Hiroshi Tokumaru
Security Engineer at EG Secure Solutions Inc.
Follow
•
146 likes
•
88,488 views
1
of
31
XSS再入門
•
146 likes
•
88,488 views
Report
Share
Technology
XSSの初心者向け説明です。初心者向けだけど、きっちり理解したい方向け…
Read more
Hiroshi Tokumaru
Security Engineer at EG Secure Solutions Inc.
Follow
Recommended
今さら聞けないXSS by
今さら聞けないXSS
Sota Sugiura
7.6K views
•
61 slides
徳丸本ができるまで by
徳丸本ができるまで
Hiroshi Tokumaru
4.9K views
•
47 slides
Proxy War by
Proxy War
zaki4649
14.7K views
•
106 slides
とある診断員とSQLインジェクション by
とある診断員とSQLインジェクション
zaki4649
78.6K views
•
47 slides
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方 by
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
kwatch
34K views
•
58 slides
ウェブアプリケーションセキュリティ超入門 by
ウェブアプリケーションセキュリティ超入門
Hiroshi Tokumaru
48.4K views
•
54 slides
More Related Content
What's hot
MongoDBの脆弱性診断 - smarttechgeeks by
MongoDBの脆弱性診断 - smarttechgeeks
tobaru_yuta
2.4K views
•
21 slides
エンジニアの個人ブランディングと技術組織 by
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
23.3K views
•
40 slides
XSSフィルターを利用したXSS攻撃 by Masato Kinugawa by
XSSフィルターを利用したXSS攻撃 by Masato Kinugawa
CODE BLUE
7.7K views
•
84 slides
ソーシャルゲーム案件におけるDB分割のPHP実装 by
ソーシャルゲーム案件におけるDB分割のPHP実装
infinite_loop
51.8K views
•
51 slides
ウェブセキュリティの常識 by
ウェブセキュリティの常識
Hiroshi Tokumaru
31.4K views
•
39 slides
徳丸本に載っていないWebアプリケーションセキュリティ by
徳丸本に載っていないWebアプリケーションセキュリティ
Hiroshi Tokumaru
51.1K views
•
75 slides
What's hot
(20)
MongoDBの脆弱性診断 - smarttechgeeks by tobaru_yuta
MongoDBの脆弱性診断 - smarttechgeeks
tobaru_yuta
•
2.4K views
エンジニアの個人ブランディングと技術組織 by Takafumi ONAKA
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
•
23.3K views
XSSフィルターを利用したXSS攻撃 by Masato Kinugawa by CODE BLUE
XSSフィルターを利用したXSS攻撃 by Masato Kinugawa
CODE BLUE
•
7.7K views
ソーシャルゲーム案件におけるDB分割のPHP実装 by infinite_loop
ソーシャルゲーム案件におけるDB分割のPHP実装
infinite_loop
•
51.8K views
ウェブセキュリティの常識 by Hiroshi Tokumaru
ウェブセキュリティの常識
Hiroshi Tokumaru
•
31.4K views
徳丸本に載っていないWebアプリケーションセキュリティ by Hiroshi Tokumaru
徳丸本に載っていないWebアプリケーションセキュリティ
Hiroshi Tokumaru
•
51.1K views
MongoDBが遅いときの切り分け方法 by Tetsutaro Watanabe
MongoDBが遅いときの切り分け方法
Tetsutaro Watanabe
•
34.8K views
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発 by Yahoo!デベロッパーネットワーク
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Yahoo!デベロッパーネットワーク
•
12.2K views
なぜ自社で脆弱性診断を行うべきなのか by Sen Ueno
なぜ自社で脆弱性診断を行うべきなのか
Sen Ueno
•
15.6K views
GraphQLのsubscriptionで出来ること by Shingo Fukui
GraphQLのsubscriptionで出来ること
Shingo Fukui
•
9.1K views
がっつりMongoDB事例紹介 by Tetsutaro Watanabe
がっつりMongoDB事例紹介
Tetsutaro Watanabe
•
23.2K views
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料) by NTT DATA Technology & Innovation
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
•
3.8K views
UnicodeによるXSSとSQLインジェクションの可能性 by Hiroshi Tokumaru
UnicodeによるXSSとSQLインジェクションの可能性
Hiroshi Tokumaru
•
4.5K views
PlaySQLAlchemy: SQLAlchemy入門 by 泰 増田
PlaySQLAlchemy: SQLAlchemy入門
泰 増田
•
21.4K views
マイクロサービスバックエンドAPIのためのRESTとgRPC by disc99_
マイクロサービスバックエンドAPIのためのRESTとgRPC
disc99_
•
19.9K views
最近のやられアプリを試してみた by zaki4649
最近のやられアプリを試してみた
zaki4649
•
24.5K views
フリーでできるWebセキュリティ(burp編) by abend_cve_9999_0001
フリーでできるWebセキュリティ(burp編)
abend_cve_9999_0001
•
21.4K views
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!) by Trainocate Japan, Ltd.
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
Trainocate Japan, Ltd.
•
13.3K views
型安全性入門 by Akinori Abe
型安全性入門
Akinori Abe
•
7.3K views
文字コードに起因する脆弱性とその対策(増補版) by Hiroshi Tokumaru
文字コードに起因する脆弱性とその対策(増補版)
Hiroshi Tokumaru
•
34K views
Viewers also liked
CSPの話〜FxOSチューン☆〜 by
CSPの話〜FxOSチューン☆〜
Yu Yagihashi
10K views
•
43 slides
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with... by
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
Kousuke Ebihara
21.9K views
•
91 slides
CSP Lv.2の話 by
CSP Lv.2の話
Yu Yagihashi
14.4K views
•
35 slides
Step functionsとaws batchでオーケストレートするイベントドリブンな機械学習基盤 by
Step functionsとaws batchでオーケストレートするイベントドリブンな機械学習基盤
Recruit Lifestyle Co., Ltd.
2.4K views
•
54 slides
Setとして活動しはじめた話 by
Setとして活動しはじめた話
Recruit Lifestyle Co., Ltd.
6.6K views
•
36 slides
Rlsにおけるプロダクト プロジェクトマネジメント by
Rlsにおけるプロダクト プロジェクトマネジメント
Recruit Lifestyle Co., Ltd.
6.7K views
•
50 slides
Viewers also liked
(6)
CSPの話〜FxOSチューン☆〜 by Yu Yagihashi
CSPの話〜FxOSチューン☆〜
Yu Yagihashi
•
10K views
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with... by Kousuke Ebihara
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
Kousuke Ebihara
•
21.9K views
CSP Lv.2の話 by Yu Yagihashi
CSP Lv.2の話
Yu Yagihashi
•
14.4K views
Step functionsとaws batchでオーケストレートするイベントドリブンな機械学習基盤 by Recruit Lifestyle Co., Ltd.
Step functionsとaws batchでオーケストレートするイベントドリブンな機械学習基盤
Recruit Lifestyle Co., Ltd.
•
2.4K views
Setとして活動しはじめた話 by Recruit Lifestyle Co., Ltd.
Setとして活動しはじめた話
Recruit Lifestyle Co., Ltd.
•
6.6K views
Rlsにおけるプロダクト プロジェクトマネジメント by Recruit Lifestyle Co., Ltd.
Rlsにおけるプロダクト プロジェクトマネジメント
Recruit Lifestyle Co., Ltd.
•
6.7K views
Similar to XSS再入門
体系的に学ばないXSSの話 by
体系的に学ばないXSSの話
Yutaka Maehira
11.6K views
•
26 slides
20190208 脆弱性と共生するには by
20190208 脆弱性と共生するには
OWASP Nagoya
909 views
•
13 slides
安全なPHPアプリケーションの作り方2014 by
安全なPHPアプリケーションの作り方2014
Hiroshi Tokumaru
55.3K views
•
46 slides
20181117-一般的な脆弱性の概要・対策を知り、ZAPで見つけてみよう! by
20181117-一般的な脆弱性の概要・対策を知り、ZAPで見つけてみよう!
OWASP Nagoya
988 views
•
18 slides
WordPressサイトを(場当たり的に)モバイル対応した際に調べたこと・やったこと by
WordPressサイトを(場当たり的に)モバイル対応した際に調べたこと・やったこと
勇一 大山
1.2K views
•
34 slides
20090218 第5回「PhpによるWebアプリケーションのセキュリティ入門」 by
20090218 第5回「PhpによるWebアプリケーションのセキュリティ入門」
Hiromu Shioya
2.5K views
•
33 slides
Similar to XSS再入門
(16)
体系的に学ばないXSSの話 by Yutaka Maehira
体系的に学ばないXSSの話
Yutaka Maehira
•
11.6K views
20190208 脆弱性と共生するには by OWASP Nagoya
20190208 脆弱性と共生するには
OWASP Nagoya
•
909 views
安全なPHPアプリケーションの作り方2014 by Hiroshi Tokumaru
安全なPHPアプリケーションの作り方2014
Hiroshi Tokumaru
•
55.3K views
20181117-一般的な脆弱性の概要・対策を知り、ZAPで見つけてみよう! by OWASP Nagoya
20181117-一般的な脆弱性の概要・対策を知り、ZAPで見つけてみよう!
OWASP Nagoya
•
988 views
WordPressサイトを(場当たり的に)モバイル対応した際に調べたこと・やったこと by 勇一 大山
WordPressサイトを(場当たり的に)モバイル対応した際に調べたこと・やったこと
勇一 大山
•
1.2K views
20090218 第5回「PhpによるWebアプリケーションのセキュリティ入門」 by Hiromu Shioya
20090218 第5回「PhpによるWebアプリケーションのセキュリティ入門」
Hiromu Shioya
•
2.5K views
(A7)cross site scripting by OWASP Nagoya
(A7)cross site scripting
OWASP Nagoya
•
203 views
20121112 jaws-ug sapporo8 by Hirokazu Ouchi
20121112 jaws-ug sapporo8
Hirokazu Ouchi
•
703 views
Webアプリでパスワード保護はどこまでやればいいか by Hiroshi Tokumaru
Webアプリでパスワード保護はどこまでやればいいか
Hiroshi Tokumaru
•
19.7K views
Webセキュリティ入門(xss) by KageShiron
Webセキュリティ入門(xss)
KageShiron
•
1.4K views
20120126 mnlgy 1 by takaoka susumu
20120126 mnlgy 1
takaoka susumu
•
5.9K views
[AWSマイスターシリーズ] AWS SDK for PHP / Ruby / boto(Python) / JavaScript in Node.js by Amazon Web Services Japan
[AWSマイスターシリーズ] AWS SDK for PHP / Ruby / boto(Python) / JavaScript in Node.js
Amazon Web Services Japan
•
10.7K views
X-XSS-Nightmare: 1; mode=attack ~XSSフィルターを利用したXSS攻撃~ by Masato Kinugawa
X-XSS-Nightmare: 1; mode=attack ~XSSフィルターを利用したXSS攻撃~
Masato Kinugawa
•
21.1K views
20150221 めとべや東京-プライベートコード共有サービス by Takayoshi Tanaka
20150221 めとべや東京-プライベートコード共有サービス
Takayoshi Tanaka
•
2.4K views
Web技術ではじめようAR/VRアプリ開発 by Takashi Yoshinaga
Web技術ではじめようAR/VRアプリ開発
Takashi Yoshinaga
•
649 views
ガラケーで楽しむオレJSの勧め by Hiroshi Tokumaru
ガラケーで楽しむオレJSの勧め
Hiroshi Tokumaru
•
5K views
More from Hiroshi Tokumaru
ウェブセキュリティのありがちな誤解を解説する by
ウェブセキュリティのありがちな誤解を解説する
Hiroshi Tokumaru
5.3K views
•
64 slides
脅威分析の手法によりウェブサーバーにウイルス対策ソフトが必要かを検証する by
脅威分析の手法によりウェブサーバーにウイルス対策ソフトが必要かを検証する
Hiroshi Tokumaru
1.8K views
•
27 slides
SQLインジェクション再考 by
SQLインジェクション再考
Hiroshi Tokumaru
1.1K views
•
31 slides
徳丸本VMに脆弱なWordPressを導入する by
徳丸本VMに脆弱なWordPressを導入する
Hiroshi Tokumaru
821 views
•
8 slides
introduction to unsafe deserialization part1 by
introduction to unsafe deserialization part1
Hiroshi Tokumaru
515 views
•
19 slides
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方 by
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
Hiroshi Tokumaru
2.6K views
•
50 slides
More from Hiroshi Tokumaru
(20)
ウェブセキュリティのありがちな誤解を解説する by Hiroshi Tokumaru
ウェブセキュリティのありがちな誤解を解説する
Hiroshi Tokumaru
•
5.3K views
脅威分析の手法によりウェブサーバーにウイルス対策ソフトが必要かを検証する by Hiroshi Tokumaru
脅威分析の手法によりウェブサーバーにウイルス対策ソフトが必要かを検証する
Hiroshi Tokumaru
•
1.8K views
SQLインジェクション再考 by Hiroshi Tokumaru
SQLインジェクション再考
Hiroshi Tokumaru
•
1.1K views
徳丸本VMに脆弱なWordPressを導入する by Hiroshi Tokumaru
徳丸本VMに脆弱なWordPressを導入する
Hiroshi Tokumaru
•
821 views
introduction to unsafe deserialization part1 by Hiroshi Tokumaru
introduction to unsafe deserialization part1
Hiroshi Tokumaru
•
515 views
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方 by Hiroshi Tokumaru
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
Hiroshi Tokumaru
•
2.6K views
XXE、SSRF、安全でないデシリアライゼーション入門 by Hiroshi Tokumaru
XXE、SSRF、安全でないデシリアライゼーション入門
Hiroshi Tokumaru
•
3.6K views
ウェブ・セキュリティ基礎試験(徳丸基礎試験)の模擬試験問題 by Hiroshi Tokumaru
ウェブ・セキュリティ基礎試験(徳丸基礎試験)の模擬試験問題
Hiroshi Tokumaru
•
27.3K views
オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019) by Hiroshi Tokumaru
オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)
Hiroshi Tokumaru
•
9.6K views
Railsエンジニアのためのウェブセキュリティ入門 by Hiroshi Tokumaru
Railsエンジニアのためのウェブセキュリティ入門
Hiroshi Tokumaru
•
23.9K views
安全なWebアプリケーションの作り方2018 by Hiroshi Tokumaru
安全なWebアプリケーションの作り方2018
Hiroshi Tokumaru
•
30.1K views
秀スクリプトの話 by Hiroshi Tokumaru
秀スクリプトの話
Hiroshi Tokumaru
•
31.4K views
デバッガでWordPress本体やプラグインの脆弱性を追いかけてみよう by Hiroshi Tokumaru
デバッガでWordPress本体やプラグインの脆弱性を追いかけてみよう
Hiroshi Tokumaru
•
30.4K views
若手エンジニアのためのセキュリティ講座 by Hiroshi Tokumaru
若手エンジニアのためのセキュリティ講座
Hiroshi Tokumaru
•
31.8K views
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則 by Hiroshi Tokumaru
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
Hiroshi Tokumaru
•
71.5K views
ウェブセキュリティの最近の話題早分かり by Hiroshi Tokumaru
ウェブセキュリティの最近の話題早分かり
Hiroshi Tokumaru
•
71.5K views
セキュリティの都市伝説を暴く by Hiroshi Tokumaru
セキュリティの都市伝説を暴く
Hiroshi Tokumaru
•
87.2K views
安全なPHPアプリケーションの作り方2016 by Hiroshi Tokumaru
安全なPHPアプリケーションの作り方2016
Hiroshi Tokumaru
•
36.8K views
CMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼう by Hiroshi Tokumaru
CMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼう
Hiroshi Tokumaru
•
52.8K views
脆弱性は誰のせい? PHP、MySQL、Joomla! の責任やいかに by Hiroshi Tokumaru
脆弱性は誰のせい? PHP、MySQL、Joomla! の責任やいかに
Hiroshi Tokumaru
•
9.1K views
Recently uploaded
SSH応用編_20231129.pdf by
SSH応用編_20231129.pdf
icebreaker4
184 views
•
13 slides
01Booster Studio ご紹介資料 by
01Booster Studio ご紹介資料
ssusere7a2172
345 views
•
19 slides
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
NTT DATA Technology & Innovation
101 views
•
42 slides
JJUG CCC.pptx by
JJUG CCC.pptx
Kanta Sasaki
6 views
•
14 slides
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
17 views
•
38 slides
The Things Stack説明資料 by The Things Industries by
The Things Stack説明資料 by The Things Industries
CRI Japan, Inc.
50 views
•
29 slides
Recently uploaded
(11)
SSH応用編_20231129.pdf by icebreaker4
SSH応用編_20231129.pdf
icebreaker4
•
184 views
01Booster Studio ご紹介資料 by ssusere7a2172
01Booster Studio ご紹介資料
ssusere7a2172
•
345 views
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by NTT DATA Technology & Innovation
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
NTT DATA Technology & Innovation
•
101 views
JJUG CCC.pptx by Kanta Sasaki
JJUG CCC.pptx
Kanta Sasaki
•
6 views
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by NTT DATA Technology & Innovation
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
•
17 views
The Things Stack説明資料 by The Things Industries by CRI Japan, Inc.
The Things Stack説明資料 by The Things Industries
CRI Japan, Inc.
•
50 views
Web3 Career_クレデン資料 .pdf by nanamatsuo
Web3 Career_クレデン資料 .pdf
nanamatsuo
•
14 views
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化 by Knowledge & Experience
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化
Knowledge & Experience
•
12 views
Windows 11 information that can be used at the development site by Atomu Hidaka
Windows 11 information that can be used at the development site
Atomu Hidaka
•
76 views
SNMPセキュリティ超入門 by mkoda
SNMPセキュリティ超入門
mkoda
•
188 views
さくらのひやおろし2023 by 法林浩之
さくらのひやおろし2023
法林浩之
•
94 views
XSS再入門
1.
クロスサイトスクリプティング再入門 HASHコンサルティング株式会社 徳丸 浩 twitter id:
@ockeghem
2.
XSS脆弱なスクリプトの例 Copyright © 2013
HASH Consulting Corp. 2 <body><?php echo $_GET['p']; ?></body> 値を「そのまま」表示 p=<script>alert(document.cookie)</script> で参照
3.
なにか、問題でも? Copyright © 2013
HASH Consulting Corp. 3
4.
典型的なXSSサンプルに対する「素朴な疑問」 • クッキーの値がアラートで表示されても、特に危険性はないよ うな気がする • クッキーの値はブラウザのアドオンなどでも表示できるよね •
任意のJavaScriptが実行されると言っても、ホームページ作 れば任意のJavaScriptが書けるし、見た人のブラウザで実行 されるよね… Copyright © 2013 HASH Consulting Corp. 4
5.
そもそもの疑問:JavaScriptは危険か? • 実は、JavaScriptの実行自体は危険ではない • Webは、未知の(ひょっとすると悪意のある?)サイトを訪問し ても「悪いこと」が起きないように設計されている •
JavaScriptの「サンドボックス」による保護 – JavaScriptからローカルファイルにアクセスできない – JavaScriptからクリップボードの値にアクセスできない – ブラウザにはファイルアップロードの機能があるが、JavaScriptで 任意ファイルをアップロードはできない – JavaScriptからプリンタに印刷することはできない(印刷ダイアログ を表示することはできる) Copyright © 2013 HASH Consulting Corp. 5
6.
では、他のWebサイト上の「個人情報」 にはアクセスできないの? Copyright © 2013
HASH Consulting Corp. 6
7.
できない Copyright © 2013
HASH Consulting Corp. 7
8.
ここで、 「タブブラウザは安全なのか」問題 Copyright © 2013
HASH Consulting Corp. 8
9.
タブブラウザに秘密情報のある光景 Copyright © 2013
HASH Consulting Corp. 9 うっかり、罠の仕掛 けてあるページを開 いたら、Gmailの内 容を読み取られな いのか? ワナのサイト
10.
試してみよう! Copyright © 2013
HASH Consulting Corp. 10
11.
Gmailを別タブに開いてHTMLを読み出す罠 Copyright © 2013
HASH Consulting Corp. 11 <html> <head> <script> var newWin = window.open( 'https://mail.google.com/mail/u/0/#inbox', 'subwin'); setTimeout(function() { alert(newWin.document.documentElement.innerHTML); }, 3000); </script> </head> <body> こんにちは </body> </html> 新しいWindowを開 いて、そこにGmail を表示させる Gmailのロードを待っ て(3秒想定)、Gmail のHTMLを表示
12.
別Windowのdocumentにアクセスできない… Copyright © 2013
HASH Consulting Corp. 12 Error: Permission denied to access property 'document'
13.
同じドメインだとdocumentにアクセスできる Copyright © 2013
HASH Consulting Corp. 13
14.
同じドメイン? Copyright © 2013
HASH Consulting Corp. 14
15.
正確にはドメインではなく ”オリジン” Copyright ©
2013 HASH Consulting Corp. 15
16.
同一生成元ポリシー(Same-Origin Policy; SOP)とは •
オリジン = スキーム、ホスト、ポート番号の組み合わせ • これらがすべて同じ場合、同一生成元(Same Origin)であると いう – http と https は異なるスキーム すなわち別オリジンとなる • JavaScriptによるプロパティへのアクセス等は同一生成元に 対してのみ許可される • XMLHttpRequestによるオブジェクトアクセスは、同一生成元 の場合無条件に許可される – 異なる生成元に対するアクセスは、CORS(Cross-Origin Resource Sharing)により可能 Copyright © 2013 HASH Consulting Corp. 16
17.
SOPによる保護 Copyright © 2013
HASH Consulting Corp. 17 evil.example.com shop.example.jp 邪悪なサイト 正規サイト 個人情報 個人情報 ワナ 個人情報 ワナ 個人情報 XMLHttpRequest JavaScript JavaScript Cookie
18.
XSSによるJavaScripの注入 Copyright © 2013
HASH Consulting Corp. 18 evil.example.com shop.example.jp 邪悪なサイト 正規サイト(XSS脆弱) ワナ 脆弱なページ ワナ JavaScript JavaScript 脆弱なページ JavaScript JavaScript ① ④ ③ ②
19.
XSSにより注入されたJSはSOPの保護を回避する Copyright © 2013
HASH Consulting Corp. 19 evil.example.com shop.example.jp 邪悪なサイト 正規サイト 個人情報 ワナ ワナ 個人情報 XMLHttpRequest JavaScript JavaScript 個人情報 Cookie 同一オリジン なので、個人 情報等にア クセス可
20.
iframeを用いたワナのイメージ Copyright © 2013
HASH Consulting Corp. 20 マル秘激安お得情報!!! JavaScript 個人情報あり個人情報なし 正規サイトワナサイトと同一オリジン http://very.evil-site.biz/
21.
XSSによる個人情報アクセス Copyright © 2013
HASH Consulting Corp. 21 マル秘激安お得情報!!! http://very.evil-site.biz/ JavaScript 個人情報 正規サイト JavaScript 注入
22.
なぜJavaScriptを注入されるか? Copyright © 2013
HASH Consulting Corp. 22
23.
要素内容の場合 Copyright © 2013
HASH Consulting Corp. 23 <div>○○○○○○</div> 要素内容の終端マークは < < を用いて要素内容を終わらせスクリプトを注入! <div>○○○○○○<script>alert(1)</script></div> 対策は < を < にエスケープする & → & エスケープも必須 通常は、 < > & をエスケープしますね
24.
属性値の場合 Copyright © 2013
HASH Consulting Corp. 24 <input value="○○○○○○"> 属性値の終端マークは " " を用いてスクリプトを注入! <input value="○○○○○○"><script>alert(1)</script>"> 対策は " を " にエスケープする & → & エスケープも必須 通常は、 < > & " をエスケープしますね
25.
JavaScriptの場合 Copyright © 2013
HASH Consulting Corp. 25 init("○○○○○○"); 文字列リテラルの終端マークは " " を用いてスクリプトを注入! init("○○○○○○");alert(document.cookie);//"); 対策は " を ¥" にエスケープする("ではない) ¥ → ¥¥ エスケープも必須 属性値に書く場合は上記をさらにHTMLエスケープする
26.
これで、おk? Copyright © 2013
HASH Consulting Corp. 26
27.
No! XSSは色々ややこしい Copyright ©
2013 HASH Consulting Corp. 27
28.
参考文献(1) Copyright © 2013
HASH Consulting Corp. 28 XSSの基礎を説明して いますが、DOM base XSSやAjaxに関する説 明はあまりありません
29.
参考文献(2) 29 http://www.ipa.go.jp/about/technicalwatch/20130129.html DOM base XSSに関 する体系的な説明とし て貴重な参考資料です
30.
参考文献(3) Copyright © 2013
HASH Consulting Corp. 30 ブラウザセキュリティの 「面倒くささ」について、 逃げずに丹念に説明し ています。上級者およ び上級者を目指す方向 け
31.
まとめ • ブラウザには、サンドボックス、同一生成元ポリシー(SOP)などの 保護機能がある • SOPの保護機能により、正規サイトと「怪しいサイト」はアクセスが 遮断されている •
XSSは、SOPの保護機能の元で、正規サイトの情報に、「怪しいサ イト」からアクセスできる(これはアプリケーションの脆弱性) • XSSがあると、ワナサイトを閲覧した利用者の個人情報が漏洩 – あるいは「なりすまし犯行予告」の書き込みをさせることも… • XSS対策の基本は、「終端」となる記号の文脈に応じたエスケープ • でも、色々ややこしいので参考文献で勉強を • みなさん、よく言っておきますが、ウェブアプリの脆弱性の中で、 XSSが一番難しいですよ! Copyright © 2013 HASH Consulting Corp. 31