Submit Search
Upload
XSS再入門
•
146 likes
•
88,600 views
Hiroshi Tokumaru
Follow
XSSの初心者向け説明です。初心者向けだけど、きっちり理解したい方向け…
Read less
Read more
Technology
Report
Share
Report
Share
1 of 31
Recommended
今さら聞けないXSS
今さら聞けないXSS
Sota Sugiura
SQLインジェクション再考
SQLインジェクション再考
Hiroshi Tokumaru
ウェブアプリケーションセキュリティ超入門
ウェブアプリケーションセキュリティ超入門
Hiroshi Tokumaru
ウェブセキュリティのありがちな誤解を解説する
ウェブセキュリティのありがちな誤解を解説する
Hiroshi Tokumaru
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
ウェブセキュリティの常識
ウェブセキュリティの常識
Hiroshi Tokumaru
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
目grep入門 +解説
目grep入門 +解説
murachue
Recommended
今さら聞けないXSS
今さら聞けないXSS
Sota Sugiura
SQLインジェクション再考
SQLインジェクション再考
Hiroshi Tokumaru
ウェブアプリケーションセキュリティ超入門
ウェブアプリケーションセキュリティ超入門
Hiroshi Tokumaru
ウェブセキュリティのありがちな誤解を解説する
ウェブセキュリティのありがちな誤解を解説する
Hiroshi Tokumaru
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
ウェブセキュリティの常識
ウェブセキュリティの常識
Hiroshi Tokumaru
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
目grep入門 +解説
目grep入門 +解説
murachue
とある診断員と色々厄介な脆弱性達
とある診断員と色々厄介な脆弱性達
zaki4649
SQLアンチパターン(インデックスショットガン)
SQLアンチパターン(インデックスショットガン)
Tomoaki Uchida
SQLインジェクション総”習”編
SQLインジェクション総”習”編
Yasuo Ohgaki
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
yoku0825
Proxy War
Proxy War
zaki4649
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
徳丸本ができるまで
徳丸本ができるまで
Hiroshi Tokumaru
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
増田 亨
イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)
Yoshitaka Kawashima
徳丸本に載っていないWebアプリケーションセキュリティ
徳丸本に載っていないWebアプリケーションセキュリティ
Hiroshi Tokumaru
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima
そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?
takezoe
ジャストシステムJava100本ノックのご紹介
ジャストシステムJava100本ノックのご紹介
JustSystems Corporation
とある診断員とSQLインジェクション
とある診断員とSQLインジェクション
zaki4649
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
sonickun
ウェブ・セキュリティ基礎試験(徳丸基礎試験)の模擬試験問題
ウェブ・セキュリティ基礎試験(徳丸基礎試験)の模擬試験問題
Hiroshi Tokumaru
MySQL 5.7の罠があなたを狙っている
MySQL 5.7の罠があなたを狙っている
yoku0825
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
CSPの話〜FxOSチューン☆〜
CSPの話〜FxOSチューン☆〜
Yu Yagihashi
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
Kousuke Ebihara
More Related Content
What's hot
とある診断員と色々厄介な脆弱性達
とある診断員と色々厄介な脆弱性達
zaki4649
SQLアンチパターン(インデックスショットガン)
SQLアンチパターン(インデックスショットガン)
Tomoaki Uchida
SQLインジェクション総”習”編
SQLインジェクション総”習”編
Yasuo Ohgaki
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
yoku0825
Proxy War
Proxy War
zaki4649
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
徳丸本ができるまで
徳丸本ができるまで
Hiroshi Tokumaru
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
増田 亨
イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)
Yoshitaka Kawashima
徳丸本に載っていないWebアプリケーションセキュリティ
徳丸本に載っていないWebアプリケーションセキュリティ
Hiroshi Tokumaru
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima
そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?
takezoe
ジャストシステムJava100本ノックのご紹介
ジャストシステムJava100本ノックのご紹介
JustSystems Corporation
とある診断員とSQLインジェクション
とある診断員とSQLインジェクション
zaki4649
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
sonickun
ウェブ・セキュリティ基礎試験(徳丸基礎試験)の模擬試験問題
ウェブ・セキュリティ基礎試験(徳丸基礎試験)の模擬試験問題
Hiroshi Tokumaru
MySQL 5.7の罠があなたを狙っている
MySQL 5.7の罠があなたを狙っている
yoku0825
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
What's hot
(20)
とある診断員と色々厄介な脆弱性達
とある診断員と色々厄介な脆弱性達
SQLアンチパターン(インデックスショットガン)
SQLアンチパターン(インデックスショットガン)
SQLインジェクション総”習”編
SQLインジェクション総”習”編
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
Proxy War
Proxy War
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
徳丸本ができるまで
徳丸本ができるまで
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)
徳丸本に載っていないWebアプリケーションセキュリティ
徳丸本に載っていないWebアプリケーションセキュリティ
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?
ジャストシステムJava100本ノックのご紹介
ジャストシステムJava100本ノックのご紹介
とある診断員とSQLインジェクション
とある診断員とSQLインジェクション
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
ウェブ・セキュリティ基礎試験(徳丸基礎試験)の模擬試験問題
ウェブ・セキュリティ基礎試験(徳丸基礎試験)の模擬試験問題
MySQL 5.7の罠があなたを狙っている
MySQL 5.7の罠があなたを狙っている
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Viewers also liked
CSPの話〜FxOSチューン☆〜
CSPの話〜FxOSチューン☆〜
Yu Yagihashi
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
Kousuke Ebihara
CSP Lv.2の話
CSP Lv.2の話
Yu Yagihashi
Step functionsとaws batchでオーケストレートするイベントドリブンな機械学習基盤
Step functionsとaws batchでオーケストレートするイベントドリブンな機械学習基盤
Recruit Lifestyle Co., Ltd.
Setとして活動しはじめた話
Setとして活動しはじめた話
Recruit Lifestyle Co., Ltd.
Rlsにおけるプロダクト プロジェクトマネジメント
Rlsにおけるプロダクト プロジェクトマネジメント
Recruit Lifestyle Co., Ltd.
Viewers also liked
(6)
CSPの話〜FxOSチューン☆〜
CSPの話〜FxOSチューン☆〜
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
CSP Lv.2の話
CSP Lv.2の話
Step functionsとaws batchでオーケストレートするイベントドリブンな機械学習基盤
Step functionsとaws batchでオーケストレートするイベントドリブンな機械学習基盤
Setとして活動しはじめた話
Setとして活動しはじめた話
Rlsにおけるプロダクト プロジェクトマネジメント
Rlsにおけるプロダクト プロジェクトマネジメント
Similar to XSS再入門
体系的に学ばないXSSの話
体系的に学ばないXSSの話
Yutaka Maehira
20190208 脆弱性と共生するには
20190208 脆弱性と共生するには
OWASP Nagoya
安全なPHPアプリケーションの作り方2014
安全なPHPアプリケーションの作り方2014
Hiroshi Tokumaru
20181117-一般的な脆弱性の概要・対策を知り、ZAPで見つけてみよう!
20181117-一般的な脆弱性の概要・対策を知り、ZAPで見つけてみよう!
OWASP Nagoya
WordPressサイトを(場当たり的に)モバイル対応した際に調べたこと・やったこと
WordPressサイトを(場当たり的に)モバイル対応した際に調べたこと・やったこと
勇一 大山
20090218 第5回「PhpによるWebアプリケーションのセキュリティ入門」
20090218 第5回「PhpによるWebアプリケーションのセキュリティ入門」
Hiromu Shioya
(A7)cross site scripting
(A7)cross site scripting
OWASP Nagoya
20121112 jaws-ug sapporo8
20121112 jaws-ug sapporo8
Hirokazu Ouchi
Webアプリでパスワード保護はどこまでやればいいか
Webアプリでパスワード保護はどこまでやればいいか
Hiroshi Tokumaru
Webセキュリティ入門(xss)
Webセキュリティ入門(xss)
KageShiron
20120126 mnlgy 1
20120126 mnlgy 1
takaoka susumu
[AWSマイスターシリーズ] AWS SDK for PHP / Ruby / boto(Python) / JavaScript in Node.js
[AWSマイスターシリーズ] AWS SDK for PHP / Ruby / boto(Python) / JavaScript in Node.js
Amazon Web Services Japan
X-XSS-Nightmare: 1; mode=attack ~XSSフィルターを利用したXSS攻撃~
X-XSS-Nightmare: 1; mode=attack ~XSSフィルターを利用したXSS攻撃~
Masato Kinugawa
20150221 めとべや東京-プライベートコード共有サービス
20150221 めとべや東京-プライベートコード共有サービス
Takayoshi Tanaka
Web技術ではじめようAR/VRアプリ開発
Web技術ではじめようAR/VRアプリ開発
Takashi Yoshinaga
ガラケーで楽しむオレJSの勧め
ガラケーで楽しむオレJSの勧め
Hiroshi Tokumaru
Similar to XSS再入門
(16)
体系的に学ばないXSSの話
体系的に学ばないXSSの話
20190208 脆弱性と共生するには
20190208 脆弱性と共生するには
安全なPHPアプリケーションの作り方2014
安全なPHPアプリケーションの作り方2014
20181117-一般的な脆弱性の概要・対策を知り、ZAPで見つけてみよう!
20181117-一般的な脆弱性の概要・対策を知り、ZAPで見つけてみよう!
WordPressサイトを(場当たり的に)モバイル対応した際に調べたこと・やったこと
WordPressサイトを(場当たり的に)モバイル対応した際に調べたこと・やったこと
20090218 第5回「PhpによるWebアプリケーションのセキュリティ入門」
20090218 第5回「PhpによるWebアプリケーションのセキュリティ入門」
(A7)cross site scripting
(A7)cross site scripting
20121112 jaws-ug sapporo8
20121112 jaws-ug sapporo8
Webアプリでパスワード保護はどこまでやればいいか
Webアプリでパスワード保護はどこまでやればいいか
Webセキュリティ入門(xss)
Webセキュリティ入門(xss)
20120126 mnlgy 1
20120126 mnlgy 1
[AWSマイスターシリーズ] AWS SDK for PHP / Ruby / boto(Python) / JavaScript in Node.js
[AWSマイスターシリーズ] AWS SDK for PHP / Ruby / boto(Python) / JavaScript in Node.js
X-XSS-Nightmare: 1; mode=attack ~XSSフィルターを利用したXSS攻撃~
X-XSS-Nightmare: 1; mode=attack ~XSSフィルターを利用したXSS攻撃~
20150221 めとべや東京-プライベートコード共有サービス
20150221 めとべや東京-プライベートコード共有サービス
Web技術ではじめようAR/VRアプリ開発
Web技術ではじめようAR/VRアプリ開発
ガラケーで楽しむオレJSの勧め
ガラケーで楽しむオレJSの勧め
More from Hiroshi Tokumaru
脅威分析の手法によりウェブサーバーにウイルス対策ソフトが必要かを検証する
脅威分析の手法によりウェブサーバーにウイルス対策ソフトが必要かを検証する
Hiroshi Tokumaru
徳丸本VMに脆弱なWordPressを導入する
徳丸本VMに脆弱なWordPressを導入する
Hiroshi Tokumaru
introduction to unsafe deserialization part1
introduction to unsafe deserialization part1
Hiroshi Tokumaru
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
Hiroshi Tokumaru
XXE、SSRF、安全でないデシリアライゼーション入門
XXE、SSRF、安全でないデシリアライゼーション入門
Hiroshi Tokumaru
オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)
オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)
Hiroshi Tokumaru
Railsエンジニアのためのウェブセキュリティ入門
Railsエンジニアのためのウェブセキュリティ入門
Hiroshi Tokumaru
安全なWebアプリケーションの作り方2018
安全なWebアプリケーションの作り方2018
Hiroshi Tokumaru
秀スクリプトの話
秀スクリプトの話
Hiroshi Tokumaru
デバッガでWordPress本体やプラグインの脆弱性を追いかけてみよう
デバッガでWordPress本体やプラグインの脆弱性を追いかけてみよう
Hiroshi Tokumaru
若手エンジニアのためのセキュリティ講座
若手エンジニアのためのセキュリティ講座
Hiroshi Tokumaru
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
Hiroshi Tokumaru
ウェブセキュリティの最近の話題早分かり
ウェブセキュリティの最近の話題早分かり
Hiroshi Tokumaru
セキュリティの都市伝説を暴く
セキュリティの都市伝説を暴く
Hiroshi Tokumaru
安全なPHPアプリケーションの作り方2016
安全なPHPアプリケーションの作り方2016
Hiroshi Tokumaru
CMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼう
CMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼう
Hiroshi Tokumaru
脆弱性は誰のせい? PHP、MySQL、Joomla! の責任やいかに
脆弱性は誰のせい? PHP、MySQL、Joomla! の責任やいかに
Hiroshi Tokumaru
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
Hiroshi Tokumaru
セキュアコーディング方法論再構築の試み
セキュアコーディング方法論再構築の試み
Hiroshi Tokumaru
Webサイトをめぐるセキュリティ状況と効果的な防御方法(WordPress編)
Webサイトをめぐるセキュリティ状況と効果的な防御方法(WordPress編)
Hiroshi Tokumaru
More from Hiroshi Tokumaru
(20)
脅威分析の手法によりウェブサーバーにウイルス対策ソフトが必要かを検証する
脅威分析の手法によりウェブサーバーにウイルス対策ソフトが必要かを検証する
徳丸本VMに脆弱なWordPressを導入する
徳丸本VMに脆弱なWordPressを導入する
introduction to unsafe deserialization part1
introduction to unsafe deserialization part1
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
XXE、SSRF、安全でないデシリアライゼーション入門
XXE、SSRF、安全でないデシリアライゼーション入門
オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)
オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)
Railsエンジニアのためのウェブセキュリティ入門
Railsエンジニアのためのウェブセキュリティ入門
安全なWebアプリケーションの作り方2018
安全なWebアプリケーションの作り方2018
秀スクリプトの話
秀スクリプトの話
デバッガでWordPress本体やプラグインの脆弱性を追いかけてみよう
デバッガでWordPress本体やプラグインの脆弱性を追いかけてみよう
若手エンジニアのためのセキュリティ講座
若手エンジニアのためのセキュリティ講座
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
ウェブセキュリティの最近の話題早分かり
ウェブセキュリティの最近の話題早分かり
セキュリティの都市伝説を暴く
セキュリティの都市伝説を暴く
安全なPHPアプリケーションの作り方2016
安全なPHPアプリケーションの作り方2016
CMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼう
CMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼう
脆弱性は誰のせい? PHP、MySQL、Joomla! の責任やいかに
脆弱性は誰のせい? PHP、MySQL、Joomla! の責任やいかに
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
セキュアコーディング方法論再構築の試み
セキュアコーディング方法論再構築の試み
Webサイトをめぐるセキュリティ状況と効果的な防御方法(WordPress編)
Webサイトをめぐるセキュリティ状況と効果的な防御方法(WordPress編)
Recently uploaded
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
Recently uploaded
(8)
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
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