Submit Search
Upload
バグハンターの哀しみ
•
69 likes
•
48,305 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
セキュリティを楽しむ(CTFとbugbountyの始め方)
セキュリティを楽しむ(CTFとbugbountyの始め方)
kazkiti
最近のやられアプリを試してみた
最近のやられアプリを試してみた
zaki4649
SecurityCamp2015「バグハンティング入門」
SecurityCamp2015「バグハンティング入門」
Masato Kinugawa
外部キー制約に伴うロックの小話
外部キー制約に伴うロックの小話
ichirin2501
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
XSSフィルターを利用したXSS攻撃 by Masato Kinugawa
XSSフィルターを利用したXSS攻撃 by Masato Kinugawa
CODE BLUE
Recommended
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
CODE BLUE 2014 : バグハンターの愉しみ by キヌガワマサト Masato Kinugawa
CODE BLUE
セキュリティを楽しむ(CTFとbugbountyの始め方)
セキュリティを楽しむ(CTFとbugbountyの始め方)
kazkiti
最近のやられアプリを試してみた
最近のやられアプリを試してみた
zaki4649
SecurityCamp2015「バグハンティング入門」
SecurityCamp2015「バグハンティング入門」
Masato Kinugawa
外部キー制約に伴うロックの小話
外部キー制約に伴うロックの小話
ichirin2501
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
XSSフィルターを利用したXSS攻撃 by Masato Kinugawa
XSSフィルターを利用したXSS攻撃 by Masato Kinugawa
CODE BLUE
こわくない Git
こわくない Git
Kota Saito
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
sonickun
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
Tokoroten Nakayama
CyberChefの使い方(HamaCTF2019 WriteUp編)
CyberChefの使い方(HamaCTF2019 WriteUp編)
Shota Shinogi
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14
Ryo Suzuki
X-XSS-Nightmare: 1; mode=attack ~XSSフィルターを利用したXSS攻撃~
X-XSS-Nightmare: 1; mode=attack ~XSSフィルターを利用したXSS攻撃~
Masato Kinugawa
目grep入門 +解説
目grep入門 +解説
murachue
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法
kazkiti
WebSocketのキホン
WebSocketのキホン
You_Kinjoh
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
Scapyで作る・解析するパケット
Scapyで作る・解析するパケット
Takaaki Hoyo
MonotaROが向かうクラウド活用の今後 2016-04-21 関西スタートアップAWS勉強会
MonotaROが向かうクラウド活用の今後 2016-04-21 関西スタートアップAWS勉強会
株式会社MonotaRO Tech Team
最近のBurp Suiteについて調べてみた
最近のBurp Suiteについて調べてみた
zaki4649
セキュリティ未経験だったけど入社1年目から Bug Bounty Program 運営に参加してみた
セキュリティ未経験だったけど入社1年目から Bug Bounty Program 運営に参加してみた
LINE Corporation
go generate 完全入門
go generate 完全入門
yaegashi
Marp Tutorial
Marp Tutorial
Rui Watanabe
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
More Related Content
What's hot
こわくない Git
こわくない Git
Kota Saito
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
sonickun
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
Tokoroten Nakayama
CyberChefの使い方(HamaCTF2019 WriteUp編)
CyberChefの使い方(HamaCTF2019 WriteUp編)
Shota Shinogi
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14
Ryo Suzuki
X-XSS-Nightmare: 1; mode=attack ~XSSフィルターを利用したXSS攻撃~
X-XSS-Nightmare: 1; mode=attack ~XSSフィルターを利用したXSS攻撃~
Masato Kinugawa
目grep入門 +解説
目grep入門 +解説
murachue
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法
kazkiti
WebSocketのキホン
WebSocketのキホン
You_Kinjoh
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
Scapyで作る・解析するパケット
Scapyで作る・解析するパケット
Takaaki Hoyo
MonotaROが向かうクラウド活用の今後 2016-04-21 関西スタートアップAWS勉強会
MonotaROが向かうクラウド活用の今後 2016-04-21 関西スタートアップAWS勉強会
株式会社MonotaRO Tech Team
最近のBurp Suiteについて調べてみた
最近のBurp Suiteについて調べてみた
zaki4649
セキュリティ未経験だったけど入社1年目から Bug Bounty Program 運営に参加してみた
セキュリティ未経験だったけど入社1年目から Bug Bounty Program 運営に参加してみた
LINE Corporation
go generate 完全入門
go generate 完全入門
yaegashi
Marp Tutorial
Marp Tutorial
Rui Watanabe
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
What's hot
(20)
こわくない Git
こわくない Git
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
CyberChefの使い方(HamaCTF2019 WriteUp編)
CyberChefの使い方(HamaCTF2019 WriteUp編)
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14
X-XSS-Nightmare: 1; mode=attack ~XSSフィルターを利用したXSS攻撃~
X-XSS-Nightmare: 1; mode=attack ~XSSフィルターを利用したXSS攻撃~
目grep入門 +解説
目grep入門 +解説
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法
WebSocketのキホン
WebSocketのキホン
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Scapyで作る・解析するパケット
Scapyで作る・解析するパケット
MonotaROが向かうクラウド活用の今後 2016-04-21 関西スタートアップAWS勉強会
MonotaROが向かうクラウド活用の今後 2016-04-21 関西スタートアップAWS勉強会
最近のBurp Suiteについて調べてみた
最近のBurp Suiteについて調べてみた
セキュリティ未経験だったけど入社1年目から Bug Bounty Program 運営に参加してみた
セキュリティ未経験だったけど入社1年目から Bug Bounty Program 運営に参加してみた
go generate 完全入門
go generate 完全入門
Marp Tutorial
Marp Tutorial
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Recently uploaded
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
sugiuralab
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
osamut
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
Atomu Hidaka
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
Shota Ito
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
sugiuralab
Recently uploaded
(8)
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
バグハンターの哀しみ
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