Submit Search
Upload
バグハンターの哀しみ
•
69 likes
•
48,379 views
Masato Kinugawa
Follow
AVTOKYO2015の発表資料です。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 59
Download now
Download to read offline
Recommended
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
CODE BLUE
CMSでのXSS to RCEを触ってみた
CMSでのXSS to RCEを触ってみた
adachi tomohiro
CVE、JVN番号の取得経験者になろう!
CVE、JVN番号の取得経験者になろう!
kazkiti
目grep入門 +解説
目grep入門 +解説
murachue
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
sonickun
暗号技術の実装と数学
暗号技術の実装と数学
MITSUNARI Shigeo
初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法
kazkiti
Recommended
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
CODE BLUE
CMSでのXSS to RCEを触ってみた
CMSでのXSS to RCEを触ってみた
adachi tomohiro
CVE、JVN番号の取得経験者になろう!
CVE、JVN番号の取得経験者になろう!
kazkiti
目grep入門 +解説
目grep入門 +解説
murachue
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
sonickun
暗号技術の実装と数学
暗号技術の実装と数学
MITSUNARI Shigeo
初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法
kazkiti
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeNA
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
暗認本読書会4
暗認本読書会4
MITSUNARI Shigeo
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
できる!並列・並行プログラミング
できる!並列・並行プログラミング
Preferred Networks
async/await のしくみ
async/await のしくみ
信之 岩永
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
XSSフィルターを利用したXSS攻撃 by Masato Kinugawa
XSSフィルターを利用したXSS攻撃 by Masato Kinugawa
CODE BLUE
X-XSS-Nightmare: 1; mode=attack ~XSSフィルターを利用したXSS攻撃~
X-XSS-Nightmare: 1; mode=attack ~XSSフィルターを利用したXSS攻撃~
Masato Kinugawa
ウェブセキュリティのありがちな誤解を解説する
ウェブセキュリティのありがちな誤解を解説する
Hiroshi Tokumaru
明日使えないすごいビット演算
明日使えないすごいビット演算
京大 マイコンクラブ
Scapyで作る・解析するパケット
Scapyで作る・解析するパケット
Takaaki Hoyo
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
Tokoroten Nakayama
セキュリティの都市伝説を暴く
セキュリティの都市伝説を暴く
Hiroshi Tokumaru
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
infinite_loop
エンジニアから飛んでくるマサカリを受け止める心得
エンジニアから飛んでくるマサカリを受け止める心得
Reimi Kuramochi Chiba
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
masayoshi takahashi
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
Akihiro Suda
X-XSS-Nightmare: 1; mode=attack XSS Attacks Exploiting XSS Filter
X-XSS-Nightmare: 1; mode=attack XSS Attacks Exploiting XSS Filter
Masato Kinugawa
Bug-hunter's Sorrow
Bug-hunter's Sorrow
Masato Kinugawa
More Related Content
What's hot
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeNA
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
暗認本読書会4
暗認本読書会4
MITSUNARI Shigeo
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
できる!並列・並行プログラミング
できる!並列・並行プログラミング
Preferred Networks
async/await のしくみ
async/await のしくみ
信之 岩永
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
XSSフィルターを利用したXSS攻撃 by Masato Kinugawa
XSSフィルターを利用したXSS攻撃 by Masato Kinugawa
CODE BLUE
X-XSS-Nightmare: 1; mode=attack ~XSSフィルターを利用したXSS攻撃~
X-XSS-Nightmare: 1; mode=attack ~XSSフィルターを利用したXSS攻撃~
Masato Kinugawa
ウェブセキュリティのありがちな誤解を解説する
ウェブセキュリティのありがちな誤解を解説する
Hiroshi Tokumaru
明日使えないすごいビット演算
明日使えないすごいビット演算
京大 マイコンクラブ
Scapyで作る・解析するパケット
Scapyで作る・解析するパケット
Takaaki Hoyo
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
Tokoroten Nakayama
セキュリティの都市伝説を暴く
セキュリティの都市伝説を暴く
Hiroshi Tokumaru
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
infinite_loop
エンジニアから飛んでくるマサカリを受け止める心得
エンジニアから飛んでくるマサカリを受け止める心得
Reimi Kuramochi Chiba
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
masayoshi takahashi
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
Akihiro Suda
What's hot
(20)
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
暗認本読書会4
暗認本読書会4
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
できる!並列・並行プログラミング
できる!並列・並行プログラミング
async/await のしくみ
async/await のしくみ
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
XSSフィルターを利用したXSS攻撃 by Masato Kinugawa
XSSフィルターを利用したXSS攻撃 by Masato Kinugawa
X-XSS-Nightmare: 1; mode=attack ~XSSフィルターを利用したXSS攻撃~
X-XSS-Nightmare: 1; mode=attack ~XSSフィルターを利用したXSS攻撃~
ウェブセキュリティのありがちな誤解を解説する
ウェブセキュリティのありがちな誤解を解説する
明日使えないすごいビット演算
明日使えないすごいビット演算
Scapyで作る・解析するパケット
Scapyで作る・解析するパケット
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
セキュリティの都市伝説を暴く
セキュリティの都市伝説を暴く
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
エンジニアから飛んでくるマサカリを受け止める心得
エンジニアから飛んでくるマサカリを受け止める心得
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
More from Masato Kinugawa
X-XSS-Nightmare: 1; mode=attack XSS Attacks Exploiting XSS Filter
X-XSS-Nightmare: 1; mode=attack XSS Attacks Exploiting XSS Filter
Masato Kinugawa
Bug-hunter's Sorrow
Bug-hunter's Sorrow
Masato Kinugawa
SecurityCamp2015「バグハンティング入門」
SecurityCamp2015「バグハンティング入門」
Masato Kinugawa
SecurityCamp2015「CVE-2015-4483解説」
SecurityCamp2015「CVE-2015-4483解説」
Masato Kinugawa
いでよ、電卓!
いでよ、電卓!
Masato Kinugawa
見つけた脆弱性について(cybozu.com Security Challenge)
見つけた脆弱性について(cybozu.com Security Challenge)
Masato Kinugawa
More from Masato Kinugawa
(6)
X-XSS-Nightmare: 1; mode=attack XSS Attacks Exploiting XSS Filter
X-XSS-Nightmare: 1; mode=attack XSS Attacks Exploiting XSS Filter
Bug-hunter's Sorrow
Bug-hunter's Sorrow
SecurityCamp2015「バグハンティング入門」
SecurityCamp2015「バグハンティング入門」
SecurityCamp2015「CVE-2015-4483解説」
SecurityCamp2015「CVE-2015-4483解説」
いでよ、電卓!
いでよ、電卓!
見つけた脆弱性について(cybozu.com Security Challenge)
見つけた脆弱性について(cybozu.com Security Challenge)
Recently uploaded
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
Recently uploaded
(10)
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
バグハンターの哀しみ
1.
バグハンター の哀しみ Masato Kinugawa か な
2.
自己紹介 Masato Kinugawa 孤独のバグハンター XSSだけが友達
3.
普段のお仕事 職場 自宅 勤務時間 やる気がある時 仕事
セキュリティバグを探す 収入 Bug Bounty ➡これだけでやっていける?
4.
去年の年収
5.
去年の年収 41050707 円
6.
去年の年収 41050707 円 (8進数)
7.
あかるい話は ここまでだ!
8.
話すこと 前 インターネットを 止められた話 後 哀しいバグ
9.
インターネットを 止められた話
10.
概要 BenesseのサイトのXSSを探した 自宅のネット回線がとまった 紆余曲折あり ➡なぜBenesseのXSSを探していたか?
11.
2013年夏 U+2028/2029を使ったDOM based XSS の可能性に気付いた http://masatokinugawa.l0.cm/2013/09/u2028 u2029.domxss.html アバウトな正規表現を書くと簡単にハマる 詳細はBlogで:U+2028/2029とDOM
based XSS 影響を調べていた ハマってる人多いかも? ということで
12.
調査方法 ❶ URLの#以降にU+2028とDOM based XSSが起き得る文字列をつけて まわる ❷
変なエラーがでないかみる http://host/#[U+2028]'"><svg/onload=alert(1)>
13.
すると Benesseのサイトにメチャ普通のDOM based XSSがあった https://web.archive.org/web/20130723155109/http://manabi.benes se.ne.jp/#"><svg/onload=alert(1)> function writeAccesskeyForm(){ var
htm = ''; var ownURI = location.href; //略 htm+= '<input type="hidden" name="backurl" value="' + ownURI + '">'; //略 document.write(htm); } writeAccesskeyForm();
14.
それから 2013/08/05 報告 2013/08/06 応答 "この度は、「Benesseマナビジョン」の脆弱性をご指摘 いただき、誠にありがとうございます。
至急こちらでも 事実を確認の上、対応を進めるようにいたします。 この 度はご連絡いただき誠にありがとうございました。" 2013/8下旬 修正を確認
15.
この対応を受け 修正する姿勢、 報告を受け入れる姿勢を感じた 別のとこも探して報告しよう! これが XSS-Nightmare の はじまりであった…
16.
探した 普通のReflected XSSがすぐみつかった この度は、新たに3件のXSS脆弱性をご指摘いただき 、 誠にありがとうございます。
今回についても弊社 でも事実確認の上、 鋭意対策を進めさせていただき ます。 前回に引き続き、大変貴重なご指摘を賜りま したこと、 重ねがさね御礼申し上げます。 2013/08/28 報告 2013/08/30 応答
17.
同じころ manabi.benesse.ne.jpに突然アクセス できなくなる IPを変えるとアクセスできるようになる 詳しくみると ➡検査のリクエストが原因で アクセス拒否してる?
18.
そういうこともあるだろう (問題の報告のついでに)一応連絡: 「検査のリクエストでアク禁してるかもし れないけど報告の通りなのでよろしく」 後日 修正が不適切であるとのこと、 ご指摘ありがとう ございます。 確認・検討のうえ、
対応を進めさせ ていただきます。 誠にありがとうざいました。 ➡アク禁のことはスルー まあ伝わっているよね
19.
その後も報告を続ける 修正方法が悪く何度も不完全だと伝える その確認のたびにアクセス拒否… IPを変更して確認を繰り返す
20.
そして 2013/9/7夕方に事件は起きた
21.
なにが起きた?! 最初は障害や機器の故障を疑った ところがどれも違う プロバイダのメールを見ると 警告がきていることに気付く そこから不審なアクセスがあった、ウイルスに 感染などして踏み台になっていないか
22.
不審なアクセス 思い当たると言えば思い当たる 警告メールの前後に脆弱性を検査・ 報告したサービス: Google、excite、Benesse (というか、日頃やっていること、 アクセスだけみたら全部不審) ➡これまで報告していなかったサービス アクセス拒否もあるし、どう考えても怪しい
23.
ねじれ ご指摘、誠にありがとうございます。 9月6日、9月7 日にいただきましたメールの内容についても 弊社でも 確認のうえ、鋭意対策を進めさせていただきます。
た いへん貴重なご指摘を賜りましたこと、 重ねがさね御 礼申し上げます。 9月9日、返信では相変わらず感謝:
24.
@niftyからお手紙が届く 攻撃行為をしないという誓約書が同封 待ってくれ、違うんだ…
25.
Benesse/@niftyに 電話でコンタクト 両「セキュリティ上の理由で答えられない」 僕「家のネットが止まって困っている。 事実関係を確認させてほしい。」
26.
らちが明かない!! まともに仕事ができないのでWiMAXを契約 テザリングを使ってすがる思いでBlogに書く もうだめだ… そんなときに現れた救世主 それが http://masatokinugawa.l0.cm/2013/09/xss.benesse.html たぶんXSSが理由でインターネットがとまった
27.
徳丸先生である!
28.
DMを頂く ブログ読みました。この件について、 ベネッセと連絡をとっています。メー ルアドレスを教えて頂けますか? あなたが神か!
29.
その後のやりとり ベネッセはセキュリティ業者に侵入 検知システムの運用を委託していて、 攻撃を検知すると、ブロックやISP への連絡をしているそう。 ふむふむ
30.
その後のやりとり そのフローにひっかかり、 IPS(侵入防止システム)検知 ➡ セキュリティベンダの監視 ➡ ISPへの連絡 ➡
ISPによる遮断 となったようだ なるほど~
31.
その後のやりとり やりとりの結果、ベネッセからISPに 連絡することは可能と言われた。 報告時点のIPアドレスを教えてもらえ れば報告と照合するとのこと。 ええ、記録あるかな…
32.
あった 日頃、自ドメイン(vulnerabledoma.in)で ブラウザの動作テストをしているので、 自分のアクセスが毎日のようにあった! 8月28日: XX.X.XX.2 8月29日: XX.X.XX.25 8月30日:
XX.X.XX.195 8月31日: XX.X.XX.14 9月01日: XX.X.XX.14 .... こんなかんじです:
33.
連絡後 「不正アクセス情報の取り下げ」 および「停止についての解除のお願 い」をしたとのこと。あとはプロバイ ダの判断になる。 ありがたい・・
34.
そしてついに 感涙 9月13日夕方(停止から約1週間)、 インターネット再開!
35.
改めて 徳丸さんの協力なしには自力で事情を 説明することは難しかったです。 この時は本当にありがとうございました! ※ みみりん では ありません
36.
そんな徳丸先生の本が 絶賛発売中だ! http://www.amazon.co.jp/dp/ 4822279987/ http://www.amazon.co.jp/dp/ 4797361190/ 今すぐ購入!!
37.
大きな会社の中は複雑 なんだろうなぁ… 問題を通して感じたこと そりゃ情報の持ち出し も起こるよな…
38.
他人事ではない あなたにBenesseのサイトへXSSっぽい リクエストを送らせるリンクを送る http://manabi.beness(略)/?<script>alert(1)</script> サイトが利用不可に 最悪インターネットが止まる?! あなたがアクセス ※危険なのでリンクできない
39.
侵入検知会社の間違い 攻撃かどうかを精査していない 攻撃の性質を理解していない XSSの対処にIPブロックする意味を問いたい サイト全体を止める方がまだわかる 今回は報告と照合すれば済んだはず 根は遠隔操作事件の問題に近い? ➡根本を修正する手助けをするべき XSSの対処にはそれしかないと思う
40.
XSSの脅威 勝手な操作の実行 機密情報の奪取 ページ内容変更によるフィッシング
41.
XSSの脅威 勝手な操作の実行 機密情報の奪取 ページ内容変更によるフィッシング ネット回線の停止
42.
教訓:世の中には つついてはいけないものがある
43.
実は最近も止められた! 料金の未納で。 (勘違いで手続きができてなかった)
44.
世間は厳しい…
45.
哀しいバグ
46.
ネット再開後 Benesseに事前にIPアドレスを伝えれば、 検査をしてもよいということになった 100件近い脆弱性を報告 (全てをわずかな期間で修正してくれた。 この姿勢は本当に素晴らしい。) その結果 ➡今回はこの中から2つ紹介!
47.
DOM based XSS
❶ https://web.archive.org/web/20130904143057/http://www. benesse.co.jp/s/land/pass/ jQuery("#nav-pw li a, a.tab-link") .bind("click touchstart", function(event){ setTimeout(function(){ hash = location.hash; if (hash != "" && jQuery(hash).length) { //省略 } }, 500); });
48.
DOM based XSS
❶ 特定のリンクのクリック時に イベント を動作させる jQuery("#nav-pw li a, a.tab-link") .bind("click touchstart", function(event){ ...
49.
特定のリンク <div id="nav-pw"> <ul> <li id="nav-first"><a
href="#first-login"><img src="img/nav_pw_01.png" width="260" height="50" alt=" はじめてログインするかたへ"></a></li> <li id="nav-passmodif"><a href="#passmodif"><img src="img/nav_pw_02.png" width="270" height="50" alt=" パスワードを変更(へんこう)したい"></a></li> <li id="nav-passlost"><a href="#passlost"><img src="img/nav_pw_03.png" width="270" height="50" alt=" パスワードを忘(わす)れたので再発行(さいはっこう)したい ... jQuery("#nav-pw li a, a.tab-link") どれも # へのリンク
50.
これを踏まえ jQuery("#nav-pw li a,
a.tab-link") .bind("click touchstart", function(event){ setTimeout(function(){ hash = location.hash; if (hash != "" && jQuery(hash).length) { //省略 } }, 500); }); もう一度よくみてほしい
51.
これを踏まえ jQuery("#nav-pw li a,
a.tab-link") .bind("click touchstart", function(event){ setTimeout(function(){ hash = location.hash; if (hash != "" && jQuery(hash).length) { //省略 } }, 500); }); 0.5秒の間にhashは変えられる! もう一度よくみてほしい
52.
現在のソース hash = location.hash; //
2013.10.4 XSS対応 if(hash == "#first-login"|| hash == "#passmodif" || hash == "#passlost") { }else { hash = ""; } if (hash != "" && jQuery(hash).length) { ... http://www.benesse.co.jp/s/land/pass/ 内のtabs.jsを参照 !
53.
DOM based XSS
❷ <script type="text/javascript"> $(document).ready(function(){ result = "./answer/answer_" + $.query.get('result') + ".html"; $("#answer_box").load(result); }); </script> ... <div id="answer_box"></div> resultというパラメータからパスを組立→ そのURLのレスポンスをページに書き出す
54.
DOM based XSS
❷ パスは同一ドメイン内に制限、セーフ? <script type="text/javascript"> $(document).ready(function(){ result = "./answer/answer_" + $.query.get('result') + ".html"; $("#answer_box").load(result); }); </script> ... <div id="answer_box"></div> https://web.archive.org/web/20120329044331/http://wm.benesse.ne.jp/ contents/oyashindan/answer.html?
55.
No! 同じドメインでユーザのアップロードする アバター画像をホストしている 画像のコメント領域などに<script>…とか書い ておけばそのままの内容をアップロード
56.
こうすれば /vulnpage?result=/../../../../uploads/profile/icon.jpg%23 $(document).ready(function(){ result = "./answer/answer_"
+ $.query.get('result') + ".html"; $("#answer_box").load(result); }); ➡画像のバイナリをページ内に書き出す
57.
DEMO http://vulnerabledoma.in/avtokyo2015/
58.
まとめ これからもできるだけ皆さんに迷惑を かけないようバグを探しますので どうぞよろしくお願いします
59.
@kinugawamasato masatokinugawa [at]gmail.com Thanks!
Download now