Upload
masato-kinugawa
View
32.318
Download
0
Embed Size (px)
Citation preview
バグハンターの哀しみ
Masato Kinugawa
か な
自己紹介
Masato Kinugawa
孤独のバグハンター
XSSだけが友達
普段のお仕事
職場 自宅
勤務時間 やる気がある時
仕事 セキュリティバグを探す
収入 Bug Bounty
これだけでやっていける
去年の年収
去年の年収
41050707 円
去年の年収
41050707 円
(8進数)
あかるい話はここまでだ
話すこと
前インターネットを止められた話
後 哀しいバグ
インターネットを止められた話
概要
BenesseのサイトのXSSを探した
自宅のネット回線がとまった
紆余曲折あり
なぜBenesseのXSSを探していたか
2013年夏U+20282029を使ったDOM based XSSの可能性に気付いた
httpmasatokinugawal0cm201309u2028u2029domxsshtml
アバウトな正規表現を書くと簡単にハマる
詳細はBlogでU+20282029とDOM based XSS
影響を調べていた
ハマってる人多いかもということで
調査方法
❶ URLの以降にU+2028とDOM based XSSが起き得る文字列をつけて
まわる
❷ 変なエラーがでないかみる
httphost[U+2028]gtltsvgonload=alert(1)gt
するとBenesseのサイトにメチャ普通のDOM based XSSがあったhttpswebarchiveorgweb20130723155109httpmanabibenessenejpgtltsvgonload=alert(1)gt
function writeAccesskeyForm()var htm = var ownURI = locationhref略
htm+= ltinput type=hidden name=backurl value= + ownURI + gt
略
documentwrite(htm)writeAccesskeyForm()
それから20130805 報告
20130806 応答この度は「Benesseマナビジョン」の脆弱性をご指摘いただき誠にありがとうございます 至急こちらでも事実を確認の上対応を進めるようにいたします この度はご連絡いただき誠にありがとうございました
20138下旬 修正を確認
この対応を受け
修正する姿勢報告を受け入れる姿勢を感じた
別のとこも探して報告しよう
これが XSS-Nightmare のはじまりであったhellip
探した普通のReflected XSSがすぐみつかった
この度は新たに3件のXSS脆弱性をご指摘いただき 誠にありがとうございます 今回についても弊社でも事実確認の上 鋭意対策を進めさせていただきます 前回に引き続き大変貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
20130828 報告
20130830 応答
同じころ
manabibenessenejpに突然アクセスできなくなる
IPを変えるとアクセスできるようになる
詳しくみると
検査のリクエストが原因でアクセス拒否してる
そういうこともあるだろう(問題の報告のついでに)一応連絡
「検査のリクエストでアク禁してるかもしれないけど報告の通りなのでよろしく」
後日
修正が不適切であるとのこと ご指摘ありがとうございます 確認検討のうえ 対応を進めさせていただきます 誠にありがとうざいました
アク禁のことはスルーまあ伝わっているよね
その後も報告を続ける
修正方法が悪く何度も不完全だと伝える
その確認のたびにアクセス拒否hellip
IPを変更して確認を繰り返す
そして
201397夕方に事件は起きた
なにが起きた
最初は障害や機器の故障を疑った
ところがどれも違う
プロバイダのメールを見ると警告がきていることに気付く
そこから不審なアクセスがあったウイルスに感染などして踏み台になっていないか
不審なアクセス
思い当たると言えば思い当たる
警告メールの前後に脆弱性を検査報告したサービス
GoogleexciteBenesse
(というか日頃やっていることアクセスだけみたら全部不審)
これまで報告していなかったサービスアクセス拒否もあるしどう考えても怪しい
ねじれ
ご指摘誠にありがとうございます 9月6日9月7日にいただきましたメールの内容についても 弊社でも確認のうえ鋭意対策を進めさせていただきます たいへん貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
9月9日返信では相変わらず感謝
niftyからお手紙が届く
攻撃行為をしないという誓約書が同封
待ってくれ違うんだhellip
Benesseniftyに電話でコンタクト
両「セキュリティ上の理由で答えられない」
僕「家のネットが止まって困っている事実関係を確認させてほしい」
らちが明かない
まともに仕事ができないのでWiMAXを契約
テザリングを使ってすがる思いでBlogに書く
もうだめだhellipそんなときに現れた救世主 それが
httpmasatokinugawal0cm201309xssbenessehtml
たぶんXSSが理由でインターネットがとまった
徳丸先生である
DMを頂く
ブログ読みましたこの件についてベネッセと連絡をとっていますメールアドレスを教えて頂けますか
あなたが神か
その後のやりとり
ベネッセはセキュリティ業者に侵入検知システムの運用を委託していて攻撃を検知するとブロックやISPへの連絡をしているそう
ふむふむ
その後のやりとりそのフローにひっかかりIPS(侵入防止システム)検知
セキュリティベンダの監視 ISPへの連絡 ISPによる遮断 となったようだ
なるほど~
その後のやりとり
やりとりの結果ベネッセからISPに連絡することは可能と言われた報告時点のIPアドレスを教えてもらえれば報告と照合するとのこと
ええ記録あるかなhellip
あった日頃自ドメイン(vulnerabledomain)でブラウザの動作テストをしているので自分のアクセスが毎日のようにあった
8月28日 XXXXX28月29日 XXXXX258月30日 XXXXX1958月31日 XXXXX149月01日 XXXXX14
こんなかんじです
連絡後
「不正アクセス情報の取り下げ」および「停止についての解除のお願い」をしたとのことあとはプロバイダの判断になる
ありがたい
そしてついに
感涙
9月13日夕方(停止から約1週間)
インターネット再開
改めて
徳丸さんの協力なしには自力で事情を説明することは難しかったです
この時は本当にありがとうございました
みみりん ではありません
そんな徳丸先生の本が絶賛発売中だ
httpwwwamazoncojpdp4822279987
httpwwwamazoncojpdp4797361190
今すぐ購入
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
自己紹介
Masato Kinugawa
孤独のバグハンター
XSSだけが友達
普段のお仕事
職場 自宅
勤務時間 やる気がある時
仕事 セキュリティバグを探す
収入 Bug Bounty
これだけでやっていける
去年の年収
去年の年収
41050707 円
去年の年収
41050707 円
(8進数)
あかるい話はここまでだ
話すこと
前インターネットを止められた話
後 哀しいバグ
インターネットを止められた話
概要
BenesseのサイトのXSSを探した
自宅のネット回線がとまった
紆余曲折あり
なぜBenesseのXSSを探していたか
2013年夏U+20282029を使ったDOM based XSSの可能性に気付いた
httpmasatokinugawal0cm201309u2028u2029domxsshtml
アバウトな正規表現を書くと簡単にハマる
詳細はBlogでU+20282029とDOM based XSS
影響を調べていた
ハマってる人多いかもということで
調査方法
❶ URLの以降にU+2028とDOM based XSSが起き得る文字列をつけて
まわる
❷ 変なエラーがでないかみる
httphost[U+2028]gtltsvgonload=alert(1)gt
するとBenesseのサイトにメチャ普通のDOM based XSSがあったhttpswebarchiveorgweb20130723155109httpmanabibenessenejpgtltsvgonload=alert(1)gt
function writeAccesskeyForm()var htm = var ownURI = locationhref略
htm+= ltinput type=hidden name=backurl value= + ownURI + gt
略
documentwrite(htm)writeAccesskeyForm()
それから20130805 報告
20130806 応答この度は「Benesseマナビジョン」の脆弱性をご指摘いただき誠にありがとうございます 至急こちらでも事実を確認の上対応を進めるようにいたします この度はご連絡いただき誠にありがとうございました
20138下旬 修正を確認
この対応を受け
修正する姿勢報告を受け入れる姿勢を感じた
別のとこも探して報告しよう
これが XSS-Nightmare のはじまりであったhellip
探した普通のReflected XSSがすぐみつかった
この度は新たに3件のXSS脆弱性をご指摘いただき 誠にありがとうございます 今回についても弊社でも事実確認の上 鋭意対策を進めさせていただきます 前回に引き続き大変貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
20130828 報告
20130830 応答
同じころ
manabibenessenejpに突然アクセスできなくなる
IPを変えるとアクセスできるようになる
詳しくみると
検査のリクエストが原因でアクセス拒否してる
そういうこともあるだろう(問題の報告のついでに)一応連絡
「検査のリクエストでアク禁してるかもしれないけど報告の通りなのでよろしく」
後日
修正が不適切であるとのこと ご指摘ありがとうございます 確認検討のうえ 対応を進めさせていただきます 誠にありがとうざいました
アク禁のことはスルーまあ伝わっているよね
その後も報告を続ける
修正方法が悪く何度も不完全だと伝える
その確認のたびにアクセス拒否hellip
IPを変更して確認を繰り返す
そして
201397夕方に事件は起きた
なにが起きた
最初は障害や機器の故障を疑った
ところがどれも違う
プロバイダのメールを見ると警告がきていることに気付く
そこから不審なアクセスがあったウイルスに感染などして踏み台になっていないか
不審なアクセス
思い当たると言えば思い当たる
警告メールの前後に脆弱性を検査報告したサービス
GoogleexciteBenesse
(というか日頃やっていることアクセスだけみたら全部不審)
これまで報告していなかったサービスアクセス拒否もあるしどう考えても怪しい
ねじれ
ご指摘誠にありがとうございます 9月6日9月7日にいただきましたメールの内容についても 弊社でも確認のうえ鋭意対策を進めさせていただきます たいへん貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
9月9日返信では相変わらず感謝
niftyからお手紙が届く
攻撃行為をしないという誓約書が同封
待ってくれ違うんだhellip
Benesseniftyに電話でコンタクト
両「セキュリティ上の理由で答えられない」
僕「家のネットが止まって困っている事実関係を確認させてほしい」
らちが明かない
まともに仕事ができないのでWiMAXを契約
テザリングを使ってすがる思いでBlogに書く
もうだめだhellipそんなときに現れた救世主 それが
httpmasatokinugawal0cm201309xssbenessehtml
たぶんXSSが理由でインターネットがとまった
徳丸先生である
DMを頂く
ブログ読みましたこの件についてベネッセと連絡をとっていますメールアドレスを教えて頂けますか
あなたが神か
その後のやりとり
ベネッセはセキュリティ業者に侵入検知システムの運用を委託していて攻撃を検知するとブロックやISPへの連絡をしているそう
ふむふむ
その後のやりとりそのフローにひっかかりIPS(侵入防止システム)検知
セキュリティベンダの監視 ISPへの連絡 ISPによる遮断 となったようだ
なるほど~
その後のやりとり
やりとりの結果ベネッセからISPに連絡することは可能と言われた報告時点のIPアドレスを教えてもらえれば報告と照合するとのこと
ええ記録あるかなhellip
あった日頃自ドメイン(vulnerabledomain)でブラウザの動作テストをしているので自分のアクセスが毎日のようにあった
8月28日 XXXXX28月29日 XXXXX258月30日 XXXXX1958月31日 XXXXX149月01日 XXXXX14
こんなかんじです
連絡後
「不正アクセス情報の取り下げ」および「停止についての解除のお願い」をしたとのことあとはプロバイダの判断になる
ありがたい
そしてついに
感涙
9月13日夕方(停止から約1週間)
インターネット再開
改めて
徳丸さんの協力なしには自力で事情を説明することは難しかったです
この時は本当にありがとうございました
みみりん ではありません
そんな徳丸先生の本が絶賛発売中だ
httpwwwamazoncojpdp4822279987
httpwwwamazoncojpdp4797361190
今すぐ購入
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
普段のお仕事
職場 自宅
勤務時間 やる気がある時
仕事 セキュリティバグを探す
収入 Bug Bounty
これだけでやっていける
去年の年収
去年の年収
41050707 円
去年の年収
41050707 円
(8進数)
あかるい話はここまでだ
話すこと
前インターネットを止められた話
後 哀しいバグ
インターネットを止められた話
概要
BenesseのサイトのXSSを探した
自宅のネット回線がとまった
紆余曲折あり
なぜBenesseのXSSを探していたか
2013年夏U+20282029を使ったDOM based XSSの可能性に気付いた
httpmasatokinugawal0cm201309u2028u2029domxsshtml
アバウトな正規表現を書くと簡単にハマる
詳細はBlogでU+20282029とDOM based XSS
影響を調べていた
ハマってる人多いかもということで
調査方法
❶ URLの以降にU+2028とDOM based XSSが起き得る文字列をつけて
まわる
❷ 変なエラーがでないかみる
httphost[U+2028]gtltsvgonload=alert(1)gt
するとBenesseのサイトにメチャ普通のDOM based XSSがあったhttpswebarchiveorgweb20130723155109httpmanabibenessenejpgtltsvgonload=alert(1)gt
function writeAccesskeyForm()var htm = var ownURI = locationhref略
htm+= ltinput type=hidden name=backurl value= + ownURI + gt
略
documentwrite(htm)writeAccesskeyForm()
それから20130805 報告
20130806 応答この度は「Benesseマナビジョン」の脆弱性をご指摘いただき誠にありがとうございます 至急こちらでも事実を確認の上対応を進めるようにいたします この度はご連絡いただき誠にありがとうございました
20138下旬 修正を確認
この対応を受け
修正する姿勢報告を受け入れる姿勢を感じた
別のとこも探して報告しよう
これが XSS-Nightmare のはじまりであったhellip
探した普通のReflected XSSがすぐみつかった
この度は新たに3件のXSS脆弱性をご指摘いただき 誠にありがとうございます 今回についても弊社でも事実確認の上 鋭意対策を進めさせていただきます 前回に引き続き大変貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
20130828 報告
20130830 応答
同じころ
manabibenessenejpに突然アクセスできなくなる
IPを変えるとアクセスできるようになる
詳しくみると
検査のリクエストが原因でアクセス拒否してる
そういうこともあるだろう(問題の報告のついでに)一応連絡
「検査のリクエストでアク禁してるかもしれないけど報告の通りなのでよろしく」
後日
修正が不適切であるとのこと ご指摘ありがとうございます 確認検討のうえ 対応を進めさせていただきます 誠にありがとうざいました
アク禁のことはスルーまあ伝わっているよね
その後も報告を続ける
修正方法が悪く何度も不完全だと伝える
その確認のたびにアクセス拒否hellip
IPを変更して確認を繰り返す
そして
201397夕方に事件は起きた
なにが起きた
最初は障害や機器の故障を疑った
ところがどれも違う
プロバイダのメールを見ると警告がきていることに気付く
そこから不審なアクセスがあったウイルスに感染などして踏み台になっていないか
不審なアクセス
思い当たると言えば思い当たる
警告メールの前後に脆弱性を検査報告したサービス
GoogleexciteBenesse
(というか日頃やっていることアクセスだけみたら全部不審)
これまで報告していなかったサービスアクセス拒否もあるしどう考えても怪しい
ねじれ
ご指摘誠にありがとうございます 9月6日9月7日にいただきましたメールの内容についても 弊社でも確認のうえ鋭意対策を進めさせていただきます たいへん貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
9月9日返信では相変わらず感謝
niftyからお手紙が届く
攻撃行為をしないという誓約書が同封
待ってくれ違うんだhellip
Benesseniftyに電話でコンタクト
両「セキュリティ上の理由で答えられない」
僕「家のネットが止まって困っている事実関係を確認させてほしい」
らちが明かない
まともに仕事ができないのでWiMAXを契約
テザリングを使ってすがる思いでBlogに書く
もうだめだhellipそんなときに現れた救世主 それが
httpmasatokinugawal0cm201309xssbenessehtml
たぶんXSSが理由でインターネットがとまった
徳丸先生である
DMを頂く
ブログ読みましたこの件についてベネッセと連絡をとっていますメールアドレスを教えて頂けますか
あなたが神か
その後のやりとり
ベネッセはセキュリティ業者に侵入検知システムの運用を委託していて攻撃を検知するとブロックやISPへの連絡をしているそう
ふむふむ
その後のやりとりそのフローにひっかかりIPS(侵入防止システム)検知
セキュリティベンダの監視 ISPへの連絡 ISPによる遮断 となったようだ
なるほど~
その後のやりとり
やりとりの結果ベネッセからISPに連絡することは可能と言われた報告時点のIPアドレスを教えてもらえれば報告と照合するとのこと
ええ記録あるかなhellip
あった日頃自ドメイン(vulnerabledomain)でブラウザの動作テストをしているので自分のアクセスが毎日のようにあった
8月28日 XXXXX28月29日 XXXXX258月30日 XXXXX1958月31日 XXXXX149月01日 XXXXX14
こんなかんじです
連絡後
「不正アクセス情報の取り下げ」および「停止についての解除のお願い」をしたとのことあとはプロバイダの判断になる
ありがたい
そしてついに
感涙
9月13日夕方(停止から約1週間)
インターネット再開
改めて
徳丸さんの協力なしには自力で事情を説明することは難しかったです
この時は本当にありがとうございました
みみりん ではありません
そんな徳丸先生の本が絶賛発売中だ
httpwwwamazoncojpdp4822279987
httpwwwamazoncojpdp4797361190
今すぐ購入
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
去年の年収
去年の年収
41050707 円
去年の年収
41050707 円
(8進数)
あかるい話はここまでだ
話すこと
前インターネットを止められた話
後 哀しいバグ
インターネットを止められた話
概要
BenesseのサイトのXSSを探した
自宅のネット回線がとまった
紆余曲折あり
なぜBenesseのXSSを探していたか
2013年夏U+20282029を使ったDOM based XSSの可能性に気付いた
httpmasatokinugawal0cm201309u2028u2029domxsshtml
アバウトな正規表現を書くと簡単にハマる
詳細はBlogでU+20282029とDOM based XSS
影響を調べていた
ハマってる人多いかもということで
調査方法
❶ URLの以降にU+2028とDOM based XSSが起き得る文字列をつけて
まわる
❷ 変なエラーがでないかみる
httphost[U+2028]gtltsvgonload=alert(1)gt
するとBenesseのサイトにメチャ普通のDOM based XSSがあったhttpswebarchiveorgweb20130723155109httpmanabibenessenejpgtltsvgonload=alert(1)gt
function writeAccesskeyForm()var htm = var ownURI = locationhref略
htm+= ltinput type=hidden name=backurl value= + ownURI + gt
略
documentwrite(htm)writeAccesskeyForm()
それから20130805 報告
20130806 応答この度は「Benesseマナビジョン」の脆弱性をご指摘いただき誠にありがとうございます 至急こちらでも事実を確認の上対応を進めるようにいたします この度はご連絡いただき誠にありがとうございました
20138下旬 修正を確認
この対応を受け
修正する姿勢報告を受け入れる姿勢を感じた
別のとこも探して報告しよう
これが XSS-Nightmare のはじまりであったhellip
探した普通のReflected XSSがすぐみつかった
この度は新たに3件のXSS脆弱性をご指摘いただき 誠にありがとうございます 今回についても弊社でも事実確認の上 鋭意対策を進めさせていただきます 前回に引き続き大変貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
20130828 報告
20130830 応答
同じころ
manabibenessenejpに突然アクセスできなくなる
IPを変えるとアクセスできるようになる
詳しくみると
検査のリクエストが原因でアクセス拒否してる
そういうこともあるだろう(問題の報告のついでに)一応連絡
「検査のリクエストでアク禁してるかもしれないけど報告の通りなのでよろしく」
後日
修正が不適切であるとのこと ご指摘ありがとうございます 確認検討のうえ 対応を進めさせていただきます 誠にありがとうざいました
アク禁のことはスルーまあ伝わっているよね
その後も報告を続ける
修正方法が悪く何度も不完全だと伝える
その確認のたびにアクセス拒否hellip
IPを変更して確認を繰り返す
そして
201397夕方に事件は起きた
なにが起きた
最初は障害や機器の故障を疑った
ところがどれも違う
プロバイダのメールを見ると警告がきていることに気付く
そこから不審なアクセスがあったウイルスに感染などして踏み台になっていないか
不審なアクセス
思い当たると言えば思い当たる
警告メールの前後に脆弱性を検査報告したサービス
GoogleexciteBenesse
(というか日頃やっていることアクセスだけみたら全部不審)
これまで報告していなかったサービスアクセス拒否もあるしどう考えても怪しい
ねじれ
ご指摘誠にありがとうございます 9月6日9月7日にいただきましたメールの内容についても 弊社でも確認のうえ鋭意対策を進めさせていただきます たいへん貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
9月9日返信では相変わらず感謝
niftyからお手紙が届く
攻撃行為をしないという誓約書が同封
待ってくれ違うんだhellip
Benesseniftyに電話でコンタクト
両「セキュリティ上の理由で答えられない」
僕「家のネットが止まって困っている事実関係を確認させてほしい」
らちが明かない
まともに仕事ができないのでWiMAXを契約
テザリングを使ってすがる思いでBlogに書く
もうだめだhellipそんなときに現れた救世主 それが
httpmasatokinugawal0cm201309xssbenessehtml
たぶんXSSが理由でインターネットがとまった
徳丸先生である
DMを頂く
ブログ読みましたこの件についてベネッセと連絡をとっていますメールアドレスを教えて頂けますか
あなたが神か
その後のやりとり
ベネッセはセキュリティ業者に侵入検知システムの運用を委託していて攻撃を検知するとブロックやISPへの連絡をしているそう
ふむふむ
その後のやりとりそのフローにひっかかりIPS(侵入防止システム)検知
セキュリティベンダの監視 ISPへの連絡 ISPによる遮断 となったようだ
なるほど~
その後のやりとり
やりとりの結果ベネッセからISPに連絡することは可能と言われた報告時点のIPアドレスを教えてもらえれば報告と照合するとのこと
ええ記録あるかなhellip
あった日頃自ドメイン(vulnerabledomain)でブラウザの動作テストをしているので自分のアクセスが毎日のようにあった
8月28日 XXXXX28月29日 XXXXX258月30日 XXXXX1958月31日 XXXXX149月01日 XXXXX14
こんなかんじです
連絡後
「不正アクセス情報の取り下げ」および「停止についての解除のお願い」をしたとのことあとはプロバイダの判断になる
ありがたい
そしてついに
感涙
9月13日夕方(停止から約1週間)
インターネット再開
改めて
徳丸さんの協力なしには自力で事情を説明することは難しかったです
この時は本当にありがとうございました
みみりん ではありません
そんな徳丸先生の本が絶賛発売中だ
httpwwwamazoncojpdp4822279987
httpwwwamazoncojpdp4797361190
今すぐ購入
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
去年の年収
41050707 円
去年の年収
41050707 円
(8進数)
あかるい話はここまでだ
話すこと
前インターネットを止められた話
後 哀しいバグ
インターネットを止められた話
概要
BenesseのサイトのXSSを探した
自宅のネット回線がとまった
紆余曲折あり
なぜBenesseのXSSを探していたか
2013年夏U+20282029を使ったDOM based XSSの可能性に気付いた
httpmasatokinugawal0cm201309u2028u2029domxsshtml
アバウトな正規表現を書くと簡単にハマる
詳細はBlogでU+20282029とDOM based XSS
影響を調べていた
ハマってる人多いかもということで
調査方法
❶ URLの以降にU+2028とDOM based XSSが起き得る文字列をつけて
まわる
❷ 変なエラーがでないかみる
httphost[U+2028]gtltsvgonload=alert(1)gt
するとBenesseのサイトにメチャ普通のDOM based XSSがあったhttpswebarchiveorgweb20130723155109httpmanabibenessenejpgtltsvgonload=alert(1)gt
function writeAccesskeyForm()var htm = var ownURI = locationhref略
htm+= ltinput type=hidden name=backurl value= + ownURI + gt
略
documentwrite(htm)writeAccesskeyForm()
それから20130805 報告
20130806 応答この度は「Benesseマナビジョン」の脆弱性をご指摘いただき誠にありがとうございます 至急こちらでも事実を確認の上対応を進めるようにいたします この度はご連絡いただき誠にありがとうございました
20138下旬 修正を確認
この対応を受け
修正する姿勢報告を受け入れる姿勢を感じた
別のとこも探して報告しよう
これが XSS-Nightmare のはじまりであったhellip
探した普通のReflected XSSがすぐみつかった
この度は新たに3件のXSS脆弱性をご指摘いただき 誠にありがとうございます 今回についても弊社でも事実確認の上 鋭意対策を進めさせていただきます 前回に引き続き大変貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
20130828 報告
20130830 応答
同じころ
manabibenessenejpに突然アクセスできなくなる
IPを変えるとアクセスできるようになる
詳しくみると
検査のリクエストが原因でアクセス拒否してる
そういうこともあるだろう(問題の報告のついでに)一応連絡
「検査のリクエストでアク禁してるかもしれないけど報告の通りなのでよろしく」
後日
修正が不適切であるとのこと ご指摘ありがとうございます 確認検討のうえ 対応を進めさせていただきます 誠にありがとうざいました
アク禁のことはスルーまあ伝わっているよね
その後も報告を続ける
修正方法が悪く何度も不完全だと伝える
その確認のたびにアクセス拒否hellip
IPを変更して確認を繰り返す
そして
201397夕方に事件は起きた
なにが起きた
最初は障害や機器の故障を疑った
ところがどれも違う
プロバイダのメールを見ると警告がきていることに気付く
そこから不審なアクセスがあったウイルスに感染などして踏み台になっていないか
不審なアクセス
思い当たると言えば思い当たる
警告メールの前後に脆弱性を検査報告したサービス
GoogleexciteBenesse
(というか日頃やっていることアクセスだけみたら全部不審)
これまで報告していなかったサービスアクセス拒否もあるしどう考えても怪しい
ねじれ
ご指摘誠にありがとうございます 9月6日9月7日にいただきましたメールの内容についても 弊社でも確認のうえ鋭意対策を進めさせていただきます たいへん貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
9月9日返信では相変わらず感謝
niftyからお手紙が届く
攻撃行為をしないという誓約書が同封
待ってくれ違うんだhellip
Benesseniftyに電話でコンタクト
両「セキュリティ上の理由で答えられない」
僕「家のネットが止まって困っている事実関係を確認させてほしい」
らちが明かない
まともに仕事ができないのでWiMAXを契約
テザリングを使ってすがる思いでBlogに書く
もうだめだhellipそんなときに現れた救世主 それが
httpmasatokinugawal0cm201309xssbenessehtml
たぶんXSSが理由でインターネットがとまった
徳丸先生である
DMを頂く
ブログ読みましたこの件についてベネッセと連絡をとっていますメールアドレスを教えて頂けますか
あなたが神か
その後のやりとり
ベネッセはセキュリティ業者に侵入検知システムの運用を委託していて攻撃を検知するとブロックやISPへの連絡をしているそう
ふむふむ
その後のやりとりそのフローにひっかかりIPS(侵入防止システム)検知
セキュリティベンダの監視 ISPへの連絡 ISPによる遮断 となったようだ
なるほど~
その後のやりとり
やりとりの結果ベネッセからISPに連絡することは可能と言われた報告時点のIPアドレスを教えてもらえれば報告と照合するとのこと
ええ記録あるかなhellip
あった日頃自ドメイン(vulnerabledomain)でブラウザの動作テストをしているので自分のアクセスが毎日のようにあった
8月28日 XXXXX28月29日 XXXXX258月30日 XXXXX1958月31日 XXXXX149月01日 XXXXX14
こんなかんじです
連絡後
「不正アクセス情報の取り下げ」および「停止についての解除のお願い」をしたとのことあとはプロバイダの判断になる
ありがたい
そしてついに
感涙
9月13日夕方(停止から約1週間)
インターネット再開
改めて
徳丸さんの協力なしには自力で事情を説明することは難しかったです
この時は本当にありがとうございました
みみりん ではありません
そんな徳丸先生の本が絶賛発売中だ
httpwwwamazoncojpdp4822279987
httpwwwamazoncojpdp4797361190
今すぐ購入
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
去年の年収
41050707 円
(8進数)
あかるい話はここまでだ
話すこと
前インターネットを止められた話
後 哀しいバグ
インターネットを止められた話
概要
BenesseのサイトのXSSを探した
自宅のネット回線がとまった
紆余曲折あり
なぜBenesseのXSSを探していたか
2013年夏U+20282029を使ったDOM based XSSの可能性に気付いた
httpmasatokinugawal0cm201309u2028u2029domxsshtml
アバウトな正規表現を書くと簡単にハマる
詳細はBlogでU+20282029とDOM based XSS
影響を調べていた
ハマってる人多いかもということで
調査方法
❶ URLの以降にU+2028とDOM based XSSが起き得る文字列をつけて
まわる
❷ 変なエラーがでないかみる
httphost[U+2028]gtltsvgonload=alert(1)gt
するとBenesseのサイトにメチャ普通のDOM based XSSがあったhttpswebarchiveorgweb20130723155109httpmanabibenessenejpgtltsvgonload=alert(1)gt
function writeAccesskeyForm()var htm = var ownURI = locationhref略
htm+= ltinput type=hidden name=backurl value= + ownURI + gt
略
documentwrite(htm)writeAccesskeyForm()
それから20130805 報告
20130806 応答この度は「Benesseマナビジョン」の脆弱性をご指摘いただき誠にありがとうございます 至急こちらでも事実を確認の上対応を進めるようにいたします この度はご連絡いただき誠にありがとうございました
20138下旬 修正を確認
この対応を受け
修正する姿勢報告を受け入れる姿勢を感じた
別のとこも探して報告しよう
これが XSS-Nightmare のはじまりであったhellip
探した普通のReflected XSSがすぐみつかった
この度は新たに3件のXSS脆弱性をご指摘いただき 誠にありがとうございます 今回についても弊社でも事実確認の上 鋭意対策を進めさせていただきます 前回に引き続き大変貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
20130828 報告
20130830 応答
同じころ
manabibenessenejpに突然アクセスできなくなる
IPを変えるとアクセスできるようになる
詳しくみると
検査のリクエストが原因でアクセス拒否してる
そういうこともあるだろう(問題の報告のついでに)一応連絡
「検査のリクエストでアク禁してるかもしれないけど報告の通りなのでよろしく」
後日
修正が不適切であるとのこと ご指摘ありがとうございます 確認検討のうえ 対応を進めさせていただきます 誠にありがとうざいました
アク禁のことはスルーまあ伝わっているよね
その後も報告を続ける
修正方法が悪く何度も不完全だと伝える
その確認のたびにアクセス拒否hellip
IPを変更して確認を繰り返す
そして
201397夕方に事件は起きた
なにが起きた
最初は障害や機器の故障を疑った
ところがどれも違う
プロバイダのメールを見ると警告がきていることに気付く
そこから不審なアクセスがあったウイルスに感染などして踏み台になっていないか
不審なアクセス
思い当たると言えば思い当たる
警告メールの前後に脆弱性を検査報告したサービス
GoogleexciteBenesse
(というか日頃やっていることアクセスだけみたら全部不審)
これまで報告していなかったサービスアクセス拒否もあるしどう考えても怪しい
ねじれ
ご指摘誠にありがとうございます 9月6日9月7日にいただきましたメールの内容についても 弊社でも確認のうえ鋭意対策を進めさせていただきます たいへん貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
9月9日返信では相変わらず感謝
niftyからお手紙が届く
攻撃行為をしないという誓約書が同封
待ってくれ違うんだhellip
Benesseniftyに電話でコンタクト
両「セキュリティ上の理由で答えられない」
僕「家のネットが止まって困っている事実関係を確認させてほしい」
らちが明かない
まともに仕事ができないのでWiMAXを契約
テザリングを使ってすがる思いでBlogに書く
もうだめだhellipそんなときに現れた救世主 それが
httpmasatokinugawal0cm201309xssbenessehtml
たぶんXSSが理由でインターネットがとまった
徳丸先生である
DMを頂く
ブログ読みましたこの件についてベネッセと連絡をとっていますメールアドレスを教えて頂けますか
あなたが神か
その後のやりとり
ベネッセはセキュリティ業者に侵入検知システムの運用を委託していて攻撃を検知するとブロックやISPへの連絡をしているそう
ふむふむ
その後のやりとりそのフローにひっかかりIPS(侵入防止システム)検知
セキュリティベンダの監視 ISPへの連絡 ISPによる遮断 となったようだ
なるほど~
その後のやりとり
やりとりの結果ベネッセからISPに連絡することは可能と言われた報告時点のIPアドレスを教えてもらえれば報告と照合するとのこと
ええ記録あるかなhellip
あった日頃自ドメイン(vulnerabledomain)でブラウザの動作テストをしているので自分のアクセスが毎日のようにあった
8月28日 XXXXX28月29日 XXXXX258月30日 XXXXX1958月31日 XXXXX149月01日 XXXXX14
こんなかんじです
連絡後
「不正アクセス情報の取り下げ」および「停止についての解除のお願い」をしたとのことあとはプロバイダの判断になる
ありがたい
そしてついに
感涙
9月13日夕方(停止から約1週間)
インターネット再開
改めて
徳丸さんの協力なしには自力で事情を説明することは難しかったです
この時は本当にありがとうございました
みみりん ではありません
そんな徳丸先生の本が絶賛発売中だ
httpwwwamazoncojpdp4822279987
httpwwwamazoncojpdp4797361190
今すぐ購入
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
あかるい話はここまでだ
話すこと
前インターネットを止められた話
後 哀しいバグ
インターネットを止められた話
概要
BenesseのサイトのXSSを探した
自宅のネット回線がとまった
紆余曲折あり
なぜBenesseのXSSを探していたか
2013年夏U+20282029を使ったDOM based XSSの可能性に気付いた
httpmasatokinugawal0cm201309u2028u2029domxsshtml
アバウトな正規表現を書くと簡単にハマる
詳細はBlogでU+20282029とDOM based XSS
影響を調べていた
ハマってる人多いかもということで
調査方法
❶ URLの以降にU+2028とDOM based XSSが起き得る文字列をつけて
まわる
❷ 変なエラーがでないかみる
httphost[U+2028]gtltsvgonload=alert(1)gt
するとBenesseのサイトにメチャ普通のDOM based XSSがあったhttpswebarchiveorgweb20130723155109httpmanabibenessenejpgtltsvgonload=alert(1)gt
function writeAccesskeyForm()var htm = var ownURI = locationhref略
htm+= ltinput type=hidden name=backurl value= + ownURI + gt
略
documentwrite(htm)writeAccesskeyForm()
それから20130805 報告
20130806 応答この度は「Benesseマナビジョン」の脆弱性をご指摘いただき誠にありがとうございます 至急こちらでも事実を確認の上対応を進めるようにいたします この度はご連絡いただき誠にありがとうございました
20138下旬 修正を確認
この対応を受け
修正する姿勢報告を受け入れる姿勢を感じた
別のとこも探して報告しよう
これが XSS-Nightmare のはじまりであったhellip
探した普通のReflected XSSがすぐみつかった
この度は新たに3件のXSS脆弱性をご指摘いただき 誠にありがとうございます 今回についても弊社でも事実確認の上 鋭意対策を進めさせていただきます 前回に引き続き大変貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
20130828 報告
20130830 応答
同じころ
manabibenessenejpに突然アクセスできなくなる
IPを変えるとアクセスできるようになる
詳しくみると
検査のリクエストが原因でアクセス拒否してる
そういうこともあるだろう(問題の報告のついでに)一応連絡
「検査のリクエストでアク禁してるかもしれないけど報告の通りなのでよろしく」
後日
修正が不適切であるとのこと ご指摘ありがとうございます 確認検討のうえ 対応を進めさせていただきます 誠にありがとうざいました
アク禁のことはスルーまあ伝わっているよね
その後も報告を続ける
修正方法が悪く何度も不完全だと伝える
その確認のたびにアクセス拒否hellip
IPを変更して確認を繰り返す
そして
201397夕方に事件は起きた
なにが起きた
最初は障害や機器の故障を疑った
ところがどれも違う
プロバイダのメールを見ると警告がきていることに気付く
そこから不審なアクセスがあったウイルスに感染などして踏み台になっていないか
不審なアクセス
思い当たると言えば思い当たる
警告メールの前後に脆弱性を検査報告したサービス
GoogleexciteBenesse
(というか日頃やっていることアクセスだけみたら全部不審)
これまで報告していなかったサービスアクセス拒否もあるしどう考えても怪しい
ねじれ
ご指摘誠にありがとうございます 9月6日9月7日にいただきましたメールの内容についても 弊社でも確認のうえ鋭意対策を進めさせていただきます たいへん貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
9月9日返信では相変わらず感謝
niftyからお手紙が届く
攻撃行為をしないという誓約書が同封
待ってくれ違うんだhellip
Benesseniftyに電話でコンタクト
両「セキュリティ上の理由で答えられない」
僕「家のネットが止まって困っている事実関係を確認させてほしい」
らちが明かない
まともに仕事ができないのでWiMAXを契約
テザリングを使ってすがる思いでBlogに書く
もうだめだhellipそんなときに現れた救世主 それが
httpmasatokinugawal0cm201309xssbenessehtml
たぶんXSSが理由でインターネットがとまった
徳丸先生である
DMを頂く
ブログ読みましたこの件についてベネッセと連絡をとっていますメールアドレスを教えて頂けますか
あなたが神か
その後のやりとり
ベネッセはセキュリティ業者に侵入検知システムの運用を委託していて攻撃を検知するとブロックやISPへの連絡をしているそう
ふむふむ
その後のやりとりそのフローにひっかかりIPS(侵入防止システム)検知
セキュリティベンダの監視 ISPへの連絡 ISPによる遮断 となったようだ
なるほど~
その後のやりとり
やりとりの結果ベネッセからISPに連絡することは可能と言われた報告時点のIPアドレスを教えてもらえれば報告と照合するとのこと
ええ記録あるかなhellip
あった日頃自ドメイン(vulnerabledomain)でブラウザの動作テストをしているので自分のアクセスが毎日のようにあった
8月28日 XXXXX28月29日 XXXXX258月30日 XXXXX1958月31日 XXXXX149月01日 XXXXX14
こんなかんじです
連絡後
「不正アクセス情報の取り下げ」および「停止についての解除のお願い」をしたとのことあとはプロバイダの判断になる
ありがたい
そしてついに
感涙
9月13日夕方(停止から約1週間)
インターネット再開
改めて
徳丸さんの協力なしには自力で事情を説明することは難しかったです
この時は本当にありがとうございました
みみりん ではありません
そんな徳丸先生の本が絶賛発売中だ
httpwwwamazoncojpdp4822279987
httpwwwamazoncojpdp4797361190
今すぐ購入
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
話すこと
前インターネットを止められた話
後 哀しいバグ
インターネットを止められた話
概要
BenesseのサイトのXSSを探した
自宅のネット回線がとまった
紆余曲折あり
なぜBenesseのXSSを探していたか
2013年夏U+20282029を使ったDOM based XSSの可能性に気付いた
httpmasatokinugawal0cm201309u2028u2029domxsshtml
アバウトな正規表現を書くと簡単にハマる
詳細はBlogでU+20282029とDOM based XSS
影響を調べていた
ハマってる人多いかもということで
調査方法
❶ URLの以降にU+2028とDOM based XSSが起き得る文字列をつけて
まわる
❷ 変なエラーがでないかみる
httphost[U+2028]gtltsvgonload=alert(1)gt
するとBenesseのサイトにメチャ普通のDOM based XSSがあったhttpswebarchiveorgweb20130723155109httpmanabibenessenejpgtltsvgonload=alert(1)gt
function writeAccesskeyForm()var htm = var ownURI = locationhref略
htm+= ltinput type=hidden name=backurl value= + ownURI + gt
略
documentwrite(htm)writeAccesskeyForm()
それから20130805 報告
20130806 応答この度は「Benesseマナビジョン」の脆弱性をご指摘いただき誠にありがとうございます 至急こちらでも事実を確認の上対応を進めるようにいたします この度はご連絡いただき誠にありがとうございました
20138下旬 修正を確認
この対応を受け
修正する姿勢報告を受け入れる姿勢を感じた
別のとこも探して報告しよう
これが XSS-Nightmare のはじまりであったhellip
探した普通のReflected XSSがすぐみつかった
この度は新たに3件のXSS脆弱性をご指摘いただき 誠にありがとうございます 今回についても弊社でも事実確認の上 鋭意対策を進めさせていただきます 前回に引き続き大変貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
20130828 報告
20130830 応答
同じころ
manabibenessenejpに突然アクセスできなくなる
IPを変えるとアクセスできるようになる
詳しくみると
検査のリクエストが原因でアクセス拒否してる
そういうこともあるだろう(問題の報告のついでに)一応連絡
「検査のリクエストでアク禁してるかもしれないけど報告の通りなのでよろしく」
後日
修正が不適切であるとのこと ご指摘ありがとうございます 確認検討のうえ 対応を進めさせていただきます 誠にありがとうざいました
アク禁のことはスルーまあ伝わっているよね
その後も報告を続ける
修正方法が悪く何度も不完全だと伝える
その確認のたびにアクセス拒否hellip
IPを変更して確認を繰り返す
そして
201397夕方に事件は起きた
なにが起きた
最初は障害や機器の故障を疑った
ところがどれも違う
プロバイダのメールを見ると警告がきていることに気付く
そこから不審なアクセスがあったウイルスに感染などして踏み台になっていないか
不審なアクセス
思い当たると言えば思い当たる
警告メールの前後に脆弱性を検査報告したサービス
GoogleexciteBenesse
(というか日頃やっていることアクセスだけみたら全部不審)
これまで報告していなかったサービスアクセス拒否もあるしどう考えても怪しい
ねじれ
ご指摘誠にありがとうございます 9月6日9月7日にいただきましたメールの内容についても 弊社でも確認のうえ鋭意対策を進めさせていただきます たいへん貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
9月9日返信では相変わらず感謝
niftyからお手紙が届く
攻撃行為をしないという誓約書が同封
待ってくれ違うんだhellip
Benesseniftyに電話でコンタクト
両「セキュリティ上の理由で答えられない」
僕「家のネットが止まって困っている事実関係を確認させてほしい」
らちが明かない
まともに仕事ができないのでWiMAXを契約
テザリングを使ってすがる思いでBlogに書く
もうだめだhellipそんなときに現れた救世主 それが
httpmasatokinugawal0cm201309xssbenessehtml
たぶんXSSが理由でインターネットがとまった
徳丸先生である
DMを頂く
ブログ読みましたこの件についてベネッセと連絡をとっていますメールアドレスを教えて頂けますか
あなたが神か
その後のやりとり
ベネッセはセキュリティ業者に侵入検知システムの運用を委託していて攻撃を検知するとブロックやISPへの連絡をしているそう
ふむふむ
その後のやりとりそのフローにひっかかりIPS(侵入防止システム)検知
セキュリティベンダの監視 ISPへの連絡 ISPによる遮断 となったようだ
なるほど~
その後のやりとり
やりとりの結果ベネッセからISPに連絡することは可能と言われた報告時点のIPアドレスを教えてもらえれば報告と照合するとのこと
ええ記録あるかなhellip
あった日頃自ドメイン(vulnerabledomain)でブラウザの動作テストをしているので自分のアクセスが毎日のようにあった
8月28日 XXXXX28月29日 XXXXX258月30日 XXXXX1958月31日 XXXXX149月01日 XXXXX14
こんなかんじです
連絡後
「不正アクセス情報の取り下げ」および「停止についての解除のお願い」をしたとのことあとはプロバイダの判断になる
ありがたい
そしてついに
感涙
9月13日夕方(停止から約1週間)
インターネット再開
改めて
徳丸さんの協力なしには自力で事情を説明することは難しかったです
この時は本当にありがとうございました
みみりん ではありません
そんな徳丸先生の本が絶賛発売中だ
httpwwwamazoncojpdp4822279987
httpwwwamazoncojpdp4797361190
今すぐ購入
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
インターネットを止められた話
概要
BenesseのサイトのXSSを探した
自宅のネット回線がとまった
紆余曲折あり
なぜBenesseのXSSを探していたか
2013年夏U+20282029を使ったDOM based XSSの可能性に気付いた
httpmasatokinugawal0cm201309u2028u2029domxsshtml
アバウトな正規表現を書くと簡単にハマる
詳細はBlogでU+20282029とDOM based XSS
影響を調べていた
ハマってる人多いかもということで
調査方法
❶ URLの以降にU+2028とDOM based XSSが起き得る文字列をつけて
まわる
❷ 変なエラーがでないかみる
httphost[U+2028]gtltsvgonload=alert(1)gt
するとBenesseのサイトにメチャ普通のDOM based XSSがあったhttpswebarchiveorgweb20130723155109httpmanabibenessenejpgtltsvgonload=alert(1)gt
function writeAccesskeyForm()var htm = var ownURI = locationhref略
htm+= ltinput type=hidden name=backurl value= + ownURI + gt
略
documentwrite(htm)writeAccesskeyForm()
それから20130805 報告
20130806 応答この度は「Benesseマナビジョン」の脆弱性をご指摘いただき誠にありがとうございます 至急こちらでも事実を確認の上対応を進めるようにいたします この度はご連絡いただき誠にありがとうございました
20138下旬 修正を確認
この対応を受け
修正する姿勢報告を受け入れる姿勢を感じた
別のとこも探して報告しよう
これが XSS-Nightmare のはじまりであったhellip
探した普通のReflected XSSがすぐみつかった
この度は新たに3件のXSS脆弱性をご指摘いただき 誠にありがとうございます 今回についても弊社でも事実確認の上 鋭意対策を進めさせていただきます 前回に引き続き大変貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
20130828 報告
20130830 応答
同じころ
manabibenessenejpに突然アクセスできなくなる
IPを変えるとアクセスできるようになる
詳しくみると
検査のリクエストが原因でアクセス拒否してる
そういうこともあるだろう(問題の報告のついでに)一応連絡
「検査のリクエストでアク禁してるかもしれないけど報告の通りなのでよろしく」
後日
修正が不適切であるとのこと ご指摘ありがとうございます 確認検討のうえ 対応を進めさせていただきます 誠にありがとうざいました
アク禁のことはスルーまあ伝わっているよね
その後も報告を続ける
修正方法が悪く何度も不完全だと伝える
その確認のたびにアクセス拒否hellip
IPを変更して確認を繰り返す
そして
201397夕方に事件は起きた
なにが起きた
最初は障害や機器の故障を疑った
ところがどれも違う
プロバイダのメールを見ると警告がきていることに気付く
そこから不審なアクセスがあったウイルスに感染などして踏み台になっていないか
不審なアクセス
思い当たると言えば思い当たる
警告メールの前後に脆弱性を検査報告したサービス
GoogleexciteBenesse
(というか日頃やっていることアクセスだけみたら全部不審)
これまで報告していなかったサービスアクセス拒否もあるしどう考えても怪しい
ねじれ
ご指摘誠にありがとうございます 9月6日9月7日にいただきましたメールの内容についても 弊社でも確認のうえ鋭意対策を進めさせていただきます たいへん貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
9月9日返信では相変わらず感謝
niftyからお手紙が届く
攻撃行為をしないという誓約書が同封
待ってくれ違うんだhellip
Benesseniftyに電話でコンタクト
両「セキュリティ上の理由で答えられない」
僕「家のネットが止まって困っている事実関係を確認させてほしい」
らちが明かない
まともに仕事ができないのでWiMAXを契約
テザリングを使ってすがる思いでBlogに書く
もうだめだhellipそんなときに現れた救世主 それが
httpmasatokinugawal0cm201309xssbenessehtml
たぶんXSSが理由でインターネットがとまった
徳丸先生である
DMを頂く
ブログ読みましたこの件についてベネッセと連絡をとっていますメールアドレスを教えて頂けますか
あなたが神か
その後のやりとり
ベネッセはセキュリティ業者に侵入検知システムの運用を委託していて攻撃を検知するとブロックやISPへの連絡をしているそう
ふむふむ
その後のやりとりそのフローにひっかかりIPS(侵入防止システム)検知
セキュリティベンダの監視 ISPへの連絡 ISPによる遮断 となったようだ
なるほど~
その後のやりとり
やりとりの結果ベネッセからISPに連絡することは可能と言われた報告時点のIPアドレスを教えてもらえれば報告と照合するとのこと
ええ記録あるかなhellip
あった日頃自ドメイン(vulnerabledomain)でブラウザの動作テストをしているので自分のアクセスが毎日のようにあった
8月28日 XXXXX28月29日 XXXXX258月30日 XXXXX1958月31日 XXXXX149月01日 XXXXX14
こんなかんじです
連絡後
「不正アクセス情報の取り下げ」および「停止についての解除のお願い」をしたとのことあとはプロバイダの判断になる
ありがたい
そしてついに
感涙
9月13日夕方(停止から約1週間)
インターネット再開
改めて
徳丸さんの協力なしには自力で事情を説明することは難しかったです
この時は本当にありがとうございました
みみりん ではありません
そんな徳丸先生の本が絶賛発売中だ
httpwwwamazoncojpdp4822279987
httpwwwamazoncojpdp4797361190
今すぐ購入
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
概要
BenesseのサイトのXSSを探した
自宅のネット回線がとまった
紆余曲折あり
なぜBenesseのXSSを探していたか
2013年夏U+20282029を使ったDOM based XSSの可能性に気付いた
httpmasatokinugawal0cm201309u2028u2029domxsshtml
アバウトな正規表現を書くと簡単にハマる
詳細はBlogでU+20282029とDOM based XSS
影響を調べていた
ハマってる人多いかもということで
調査方法
❶ URLの以降にU+2028とDOM based XSSが起き得る文字列をつけて
まわる
❷ 変なエラーがでないかみる
httphost[U+2028]gtltsvgonload=alert(1)gt
するとBenesseのサイトにメチャ普通のDOM based XSSがあったhttpswebarchiveorgweb20130723155109httpmanabibenessenejpgtltsvgonload=alert(1)gt
function writeAccesskeyForm()var htm = var ownURI = locationhref略
htm+= ltinput type=hidden name=backurl value= + ownURI + gt
略
documentwrite(htm)writeAccesskeyForm()
それから20130805 報告
20130806 応答この度は「Benesseマナビジョン」の脆弱性をご指摘いただき誠にありがとうございます 至急こちらでも事実を確認の上対応を進めるようにいたします この度はご連絡いただき誠にありがとうございました
20138下旬 修正を確認
この対応を受け
修正する姿勢報告を受け入れる姿勢を感じた
別のとこも探して報告しよう
これが XSS-Nightmare のはじまりであったhellip
探した普通のReflected XSSがすぐみつかった
この度は新たに3件のXSS脆弱性をご指摘いただき 誠にありがとうございます 今回についても弊社でも事実確認の上 鋭意対策を進めさせていただきます 前回に引き続き大変貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
20130828 報告
20130830 応答
同じころ
manabibenessenejpに突然アクセスできなくなる
IPを変えるとアクセスできるようになる
詳しくみると
検査のリクエストが原因でアクセス拒否してる
そういうこともあるだろう(問題の報告のついでに)一応連絡
「検査のリクエストでアク禁してるかもしれないけど報告の通りなのでよろしく」
後日
修正が不適切であるとのこと ご指摘ありがとうございます 確認検討のうえ 対応を進めさせていただきます 誠にありがとうざいました
アク禁のことはスルーまあ伝わっているよね
その後も報告を続ける
修正方法が悪く何度も不完全だと伝える
その確認のたびにアクセス拒否hellip
IPを変更して確認を繰り返す
そして
201397夕方に事件は起きた
なにが起きた
最初は障害や機器の故障を疑った
ところがどれも違う
プロバイダのメールを見ると警告がきていることに気付く
そこから不審なアクセスがあったウイルスに感染などして踏み台になっていないか
不審なアクセス
思い当たると言えば思い当たる
警告メールの前後に脆弱性を検査報告したサービス
GoogleexciteBenesse
(というか日頃やっていることアクセスだけみたら全部不審)
これまで報告していなかったサービスアクセス拒否もあるしどう考えても怪しい
ねじれ
ご指摘誠にありがとうございます 9月6日9月7日にいただきましたメールの内容についても 弊社でも確認のうえ鋭意対策を進めさせていただきます たいへん貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
9月9日返信では相変わらず感謝
niftyからお手紙が届く
攻撃行為をしないという誓約書が同封
待ってくれ違うんだhellip
Benesseniftyに電話でコンタクト
両「セキュリティ上の理由で答えられない」
僕「家のネットが止まって困っている事実関係を確認させてほしい」
らちが明かない
まともに仕事ができないのでWiMAXを契約
テザリングを使ってすがる思いでBlogに書く
もうだめだhellipそんなときに現れた救世主 それが
httpmasatokinugawal0cm201309xssbenessehtml
たぶんXSSが理由でインターネットがとまった
徳丸先生である
DMを頂く
ブログ読みましたこの件についてベネッセと連絡をとっていますメールアドレスを教えて頂けますか
あなたが神か
その後のやりとり
ベネッセはセキュリティ業者に侵入検知システムの運用を委託していて攻撃を検知するとブロックやISPへの連絡をしているそう
ふむふむ
その後のやりとりそのフローにひっかかりIPS(侵入防止システム)検知
セキュリティベンダの監視 ISPへの連絡 ISPによる遮断 となったようだ
なるほど~
その後のやりとり
やりとりの結果ベネッセからISPに連絡することは可能と言われた報告時点のIPアドレスを教えてもらえれば報告と照合するとのこと
ええ記録あるかなhellip
あった日頃自ドメイン(vulnerabledomain)でブラウザの動作テストをしているので自分のアクセスが毎日のようにあった
8月28日 XXXXX28月29日 XXXXX258月30日 XXXXX1958月31日 XXXXX149月01日 XXXXX14
こんなかんじです
連絡後
「不正アクセス情報の取り下げ」および「停止についての解除のお願い」をしたとのことあとはプロバイダの判断になる
ありがたい
そしてついに
感涙
9月13日夕方(停止から約1週間)
インターネット再開
改めて
徳丸さんの協力なしには自力で事情を説明することは難しかったです
この時は本当にありがとうございました
みみりん ではありません
そんな徳丸先生の本が絶賛発売中だ
httpwwwamazoncojpdp4822279987
httpwwwamazoncojpdp4797361190
今すぐ購入
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
2013年夏U+20282029を使ったDOM based XSSの可能性に気付いた
httpmasatokinugawal0cm201309u2028u2029domxsshtml
アバウトな正規表現を書くと簡単にハマる
詳細はBlogでU+20282029とDOM based XSS
影響を調べていた
ハマってる人多いかもということで
調査方法
❶ URLの以降にU+2028とDOM based XSSが起き得る文字列をつけて
まわる
❷ 変なエラーがでないかみる
httphost[U+2028]gtltsvgonload=alert(1)gt
するとBenesseのサイトにメチャ普通のDOM based XSSがあったhttpswebarchiveorgweb20130723155109httpmanabibenessenejpgtltsvgonload=alert(1)gt
function writeAccesskeyForm()var htm = var ownURI = locationhref略
htm+= ltinput type=hidden name=backurl value= + ownURI + gt
略
documentwrite(htm)writeAccesskeyForm()
それから20130805 報告
20130806 応答この度は「Benesseマナビジョン」の脆弱性をご指摘いただき誠にありがとうございます 至急こちらでも事実を確認の上対応を進めるようにいたします この度はご連絡いただき誠にありがとうございました
20138下旬 修正を確認
この対応を受け
修正する姿勢報告を受け入れる姿勢を感じた
別のとこも探して報告しよう
これが XSS-Nightmare のはじまりであったhellip
探した普通のReflected XSSがすぐみつかった
この度は新たに3件のXSS脆弱性をご指摘いただき 誠にありがとうございます 今回についても弊社でも事実確認の上 鋭意対策を進めさせていただきます 前回に引き続き大変貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
20130828 報告
20130830 応答
同じころ
manabibenessenejpに突然アクセスできなくなる
IPを変えるとアクセスできるようになる
詳しくみると
検査のリクエストが原因でアクセス拒否してる
そういうこともあるだろう(問題の報告のついでに)一応連絡
「検査のリクエストでアク禁してるかもしれないけど報告の通りなのでよろしく」
後日
修正が不適切であるとのこと ご指摘ありがとうございます 確認検討のうえ 対応を進めさせていただきます 誠にありがとうざいました
アク禁のことはスルーまあ伝わっているよね
その後も報告を続ける
修正方法が悪く何度も不完全だと伝える
その確認のたびにアクセス拒否hellip
IPを変更して確認を繰り返す
そして
201397夕方に事件は起きた
なにが起きた
最初は障害や機器の故障を疑った
ところがどれも違う
プロバイダのメールを見ると警告がきていることに気付く
そこから不審なアクセスがあったウイルスに感染などして踏み台になっていないか
不審なアクセス
思い当たると言えば思い当たる
警告メールの前後に脆弱性を検査報告したサービス
GoogleexciteBenesse
(というか日頃やっていることアクセスだけみたら全部不審)
これまで報告していなかったサービスアクセス拒否もあるしどう考えても怪しい
ねじれ
ご指摘誠にありがとうございます 9月6日9月7日にいただきましたメールの内容についても 弊社でも確認のうえ鋭意対策を進めさせていただきます たいへん貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
9月9日返信では相変わらず感謝
niftyからお手紙が届く
攻撃行為をしないという誓約書が同封
待ってくれ違うんだhellip
Benesseniftyに電話でコンタクト
両「セキュリティ上の理由で答えられない」
僕「家のネットが止まって困っている事実関係を確認させてほしい」
らちが明かない
まともに仕事ができないのでWiMAXを契約
テザリングを使ってすがる思いでBlogに書く
もうだめだhellipそんなときに現れた救世主 それが
httpmasatokinugawal0cm201309xssbenessehtml
たぶんXSSが理由でインターネットがとまった
徳丸先生である
DMを頂く
ブログ読みましたこの件についてベネッセと連絡をとっていますメールアドレスを教えて頂けますか
あなたが神か
その後のやりとり
ベネッセはセキュリティ業者に侵入検知システムの運用を委託していて攻撃を検知するとブロックやISPへの連絡をしているそう
ふむふむ
その後のやりとりそのフローにひっかかりIPS(侵入防止システム)検知
セキュリティベンダの監視 ISPへの連絡 ISPによる遮断 となったようだ
なるほど~
その後のやりとり
やりとりの結果ベネッセからISPに連絡することは可能と言われた報告時点のIPアドレスを教えてもらえれば報告と照合するとのこと
ええ記録あるかなhellip
あった日頃自ドメイン(vulnerabledomain)でブラウザの動作テストをしているので自分のアクセスが毎日のようにあった
8月28日 XXXXX28月29日 XXXXX258月30日 XXXXX1958月31日 XXXXX149月01日 XXXXX14
こんなかんじです
連絡後
「不正アクセス情報の取り下げ」および「停止についての解除のお願い」をしたとのことあとはプロバイダの判断になる
ありがたい
そしてついに
感涙
9月13日夕方(停止から約1週間)
インターネット再開
改めて
徳丸さんの協力なしには自力で事情を説明することは難しかったです
この時は本当にありがとうございました
みみりん ではありません
そんな徳丸先生の本が絶賛発売中だ
httpwwwamazoncojpdp4822279987
httpwwwamazoncojpdp4797361190
今すぐ購入
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
調査方法
❶ URLの以降にU+2028とDOM based XSSが起き得る文字列をつけて
まわる
❷ 変なエラーがでないかみる
httphost[U+2028]gtltsvgonload=alert(1)gt
するとBenesseのサイトにメチャ普通のDOM based XSSがあったhttpswebarchiveorgweb20130723155109httpmanabibenessenejpgtltsvgonload=alert(1)gt
function writeAccesskeyForm()var htm = var ownURI = locationhref略
htm+= ltinput type=hidden name=backurl value= + ownURI + gt
略
documentwrite(htm)writeAccesskeyForm()
それから20130805 報告
20130806 応答この度は「Benesseマナビジョン」の脆弱性をご指摘いただき誠にありがとうございます 至急こちらでも事実を確認の上対応を進めるようにいたします この度はご連絡いただき誠にありがとうございました
20138下旬 修正を確認
この対応を受け
修正する姿勢報告を受け入れる姿勢を感じた
別のとこも探して報告しよう
これが XSS-Nightmare のはじまりであったhellip
探した普通のReflected XSSがすぐみつかった
この度は新たに3件のXSS脆弱性をご指摘いただき 誠にありがとうございます 今回についても弊社でも事実確認の上 鋭意対策を進めさせていただきます 前回に引き続き大変貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
20130828 報告
20130830 応答
同じころ
manabibenessenejpに突然アクセスできなくなる
IPを変えるとアクセスできるようになる
詳しくみると
検査のリクエストが原因でアクセス拒否してる
そういうこともあるだろう(問題の報告のついでに)一応連絡
「検査のリクエストでアク禁してるかもしれないけど報告の通りなのでよろしく」
後日
修正が不適切であるとのこと ご指摘ありがとうございます 確認検討のうえ 対応を進めさせていただきます 誠にありがとうざいました
アク禁のことはスルーまあ伝わっているよね
その後も報告を続ける
修正方法が悪く何度も不完全だと伝える
その確認のたびにアクセス拒否hellip
IPを変更して確認を繰り返す
そして
201397夕方に事件は起きた
なにが起きた
最初は障害や機器の故障を疑った
ところがどれも違う
プロバイダのメールを見ると警告がきていることに気付く
そこから不審なアクセスがあったウイルスに感染などして踏み台になっていないか
不審なアクセス
思い当たると言えば思い当たる
警告メールの前後に脆弱性を検査報告したサービス
GoogleexciteBenesse
(というか日頃やっていることアクセスだけみたら全部不審)
これまで報告していなかったサービスアクセス拒否もあるしどう考えても怪しい
ねじれ
ご指摘誠にありがとうございます 9月6日9月7日にいただきましたメールの内容についても 弊社でも確認のうえ鋭意対策を進めさせていただきます たいへん貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
9月9日返信では相変わらず感謝
niftyからお手紙が届く
攻撃行為をしないという誓約書が同封
待ってくれ違うんだhellip
Benesseniftyに電話でコンタクト
両「セキュリティ上の理由で答えられない」
僕「家のネットが止まって困っている事実関係を確認させてほしい」
らちが明かない
まともに仕事ができないのでWiMAXを契約
テザリングを使ってすがる思いでBlogに書く
もうだめだhellipそんなときに現れた救世主 それが
httpmasatokinugawal0cm201309xssbenessehtml
たぶんXSSが理由でインターネットがとまった
徳丸先生である
DMを頂く
ブログ読みましたこの件についてベネッセと連絡をとっていますメールアドレスを教えて頂けますか
あなたが神か
その後のやりとり
ベネッセはセキュリティ業者に侵入検知システムの運用を委託していて攻撃を検知するとブロックやISPへの連絡をしているそう
ふむふむ
その後のやりとりそのフローにひっかかりIPS(侵入防止システム)検知
セキュリティベンダの監視 ISPへの連絡 ISPによる遮断 となったようだ
なるほど~
その後のやりとり
やりとりの結果ベネッセからISPに連絡することは可能と言われた報告時点のIPアドレスを教えてもらえれば報告と照合するとのこと
ええ記録あるかなhellip
あった日頃自ドメイン(vulnerabledomain)でブラウザの動作テストをしているので自分のアクセスが毎日のようにあった
8月28日 XXXXX28月29日 XXXXX258月30日 XXXXX1958月31日 XXXXX149月01日 XXXXX14
こんなかんじです
連絡後
「不正アクセス情報の取り下げ」および「停止についての解除のお願い」をしたとのことあとはプロバイダの判断になる
ありがたい
そしてついに
感涙
9月13日夕方(停止から約1週間)
インターネット再開
改めて
徳丸さんの協力なしには自力で事情を説明することは難しかったです
この時は本当にありがとうございました
みみりん ではありません
そんな徳丸先生の本が絶賛発売中だ
httpwwwamazoncojpdp4822279987
httpwwwamazoncojpdp4797361190
今すぐ購入
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
するとBenesseのサイトにメチャ普通のDOM based XSSがあったhttpswebarchiveorgweb20130723155109httpmanabibenessenejpgtltsvgonload=alert(1)gt
function writeAccesskeyForm()var htm = var ownURI = locationhref略
htm+= ltinput type=hidden name=backurl value= + ownURI + gt
略
documentwrite(htm)writeAccesskeyForm()
それから20130805 報告
20130806 応答この度は「Benesseマナビジョン」の脆弱性をご指摘いただき誠にありがとうございます 至急こちらでも事実を確認の上対応を進めるようにいたします この度はご連絡いただき誠にありがとうございました
20138下旬 修正を確認
この対応を受け
修正する姿勢報告を受け入れる姿勢を感じた
別のとこも探して報告しよう
これが XSS-Nightmare のはじまりであったhellip
探した普通のReflected XSSがすぐみつかった
この度は新たに3件のXSS脆弱性をご指摘いただき 誠にありがとうございます 今回についても弊社でも事実確認の上 鋭意対策を進めさせていただきます 前回に引き続き大変貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
20130828 報告
20130830 応答
同じころ
manabibenessenejpに突然アクセスできなくなる
IPを変えるとアクセスできるようになる
詳しくみると
検査のリクエストが原因でアクセス拒否してる
そういうこともあるだろう(問題の報告のついでに)一応連絡
「検査のリクエストでアク禁してるかもしれないけど報告の通りなのでよろしく」
後日
修正が不適切であるとのこと ご指摘ありがとうございます 確認検討のうえ 対応を進めさせていただきます 誠にありがとうざいました
アク禁のことはスルーまあ伝わっているよね
その後も報告を続ける
修正方法が悪く何度も不完全だと伝える
その確認のたびにアクセス拒否hellip
IPを変更して確認を繰り返す
そして
201397夕方に事件は起きた
なにが起きた
最初は障害や機器の故障を疑った
ところがどれも違う
プロバイダのメールを見ると警告がきていることに気付く
そこから不審なアクセスがあったウイルスに感染などして踏み台になっていないか
不審なアクセス
思い当たると言えば思い当たる
警告メールの前後に脆弱性を検査報告したサービス
GoogleexciteBenesse
(というか日頃やっていることアクセスだけみたら全部不審)
これまで報告していなかったサービスアクセス拒否もあるしどう考えても怪しい
ねじれ
ご指摘誠にありがとうございます 9月6日9月7日にいただきましたメールの内容についても 弊社でも確認のうえ鋭意対策を進めさせていただきます たいへん貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
9月9日返信では相変わらず感謝
niftyからお手紙が届く
攻撃行為をしないという誓約書が同封
待ってくれ違うんだhellip
Benesseniftyに電話でコンタクト
両「セキュリティ上の理由で答えられない」
僕「家のネットが止まって困っている事実関係を確認させてほしい」
らちが明かない
まともに仕事ができないのでWiMAXを契約
テザリングを使ってすがる思いでBlogに書く
もうだめだhellipそんなときに現れた救世主 それが
httpmasatokinugawal0cm201309xssbenessehtml
たぶんXSSが理由でインターネットがとまった
徳丸先生である
DMを頂く
ブログ読みましたこの件についてベネッセと連絡をとっていますメールアドレスを教えて頂けますか
あなたが神か
その後のやりとり
ベネッセはセキュリティ業者に侵入検知システムの運用を委託していて攻撃を検知するとブロックやISPへの連絡をしているそう
ふむふむ
その後のやりとりそのフローにひっかかりIPS(侵入防止システム)検知
セキュリティベンダの監視 ISPへの連絡 ISPによる遮断 となったようだ
なるほど~
その後のやりとり
やりとりの結果ベネッセからISPに連絡することは可能と言われた報告時点のIPアドレスを教えてもらえれば報告と照合するとのこと
ええ記録あるかなhellip
あった日頃自ドメイン(vulnerabledomain)でブラウザの動作テストをしているので自分のアクセスが毎日のようにあった
8月28日 XXXXX28月29日 XXXXX258月30日 XXXXX1958月31日 XXXXX149月01日 XXXXX14
こんなかんじです
連絡後
「不正アクセス情報の取り下げ」および「停止についての解除のお願い」をしたとのことあとはプロバイダの判断になる
ありがたい
そしてついに
感涙
9月13日夕方(停止から約1週間)
インターネット再開
改めて
徳丸さんの協力なしには自力で事情を説明することは難しかったです
この時は本当にありがとうございました
みみりん ではありません
そんな徳丸先生の本が絶賛発売中だ
httpwwwamazoncojpdp4822279987
httpwwwamazoncojpdp4797361190
今すぐ購入
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
それから20130805 報告
20130806 応答この度は「Benesseマナビジョン」の脆弱性をご指摘いただき誠にありがとうございます 至急こちらでも事実を確認の上対応を進めるようにいたします この度はご連絡いただき誠にありがとうございました
20138下旬 修正を確認
この対応を受け
修正する姿勢報告を受け入れる姿勢を感じた
別のとこも探して報告しよう
これが XSS-Nightmare のはじまりであったhellip
探した普通のReflected XSSがすぐみつかった
この度は新たに3件のXSS脆弱性をご指摘いただき 誠にありがとうございます 今回についても弊社でも事実確認の上 鋭意対策を進めさせていただきます 前回に引き続き大変貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
20130828 報告
20130830 応答
同じころ
manabibenessenejpに突然アクセスできなくなる
IPを変えるとアクセスできるようになる
詳しくみると
検査のリクエストが原因でアクセス拒否してる
そういうこともあるだろう(問題の報告のついでに)一応連絡
「検査のリクエストでアク禁してるかもしれないけど報告の通りなのでよろしく」
後日
修正が不適切であるとのこと ご指摘ありがとうございます 確認検討のうえ 対応を進めさせていただきます 誠にありがとうざいました
アク禁のことはスルーまあ伝わっているよね
その後も報告を続ける
修正方法が悪く何度も不完全だと伝える
その確認のたびにアクセス拒否hellip
IPを変更して確認を繰り返す
そして
201397夕方に事件は起きた
なにが起きた
最初は障害や機器の故障を疑った
ところがどれも違う
プロバイダのメールを見ると警告がきていることに気付く
そこから不審なアクセスがあったウイルスに感染などして踏み台になっていないか
不審なアクセス
思い当たると言えば思い当たる
警告メールの前後に脆弱性を検査報告したサービス
GoogleexciteBenesse
(というか日頃やっていることアクセスだけみたら全部不審)
これまで報告していなかったサービスアクセス拒否もあるしどう考えても怪しい
ねじれ
ご指摘誠にありがとうございます 9月6日9月7日にいただきましたメールの内容についても 弊社でも確認のうえ鋭意対策を進めさせていただきます たいへん貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
9月9日返信では相変わらず感謝
niftyからお手紙が届く
攻撃行為をしないという誓約書が同封
待ってくれ違うんだhellip
Benesseniftyに電話でコンタクト
両「セキュリティ上の理由で答えられない」
僕「家のネットが止まって困っている事実関係を確認させてほしい」
らちが明かない
まともに仕事ができないのでWiMAXを契約
テザリングを使ってすがる思いでBlogに書く
もうだめだhellipそんなときに現れた救世主 それが
httpmasatokinugawal0cm201309xssbenessehtml
たぶんXSSが理由でインターネットがとまった
徳丸先生である
DMを頂く
ブログ読みましたこの件についてベネッセと連絡をとっていますメールアドレスを教えて頂けますか
あなたが神か
その後のやりとり
ベネッセはセキュリティ業者に侵入検知システムの運用を委託していて攻撃を検知するとブロックやISPへの連絡をしているそう
ふむふむ
その後のやりとりそのフローにひっかかりIPS(侵入防止システム)検知
セキュリティベンダの監視 ISPへの連絡 ISPによる遮断 となったようだ
なるほど~
その後のやりとり
やりとりの結果ベネッセからISPに連絡することは可能と言われた報告時点のIPアドレスを教えてもらえれば報告と照合するとのこと
ええ記録あるかなhellip
あった日頃自ドメイン(vulnerabledomain)でブラウザの動作テストをしているので自分のアクセスが毎日のようにあった
8月28日 XXXXX28月29日 XXXXX258月30日 XXXXX1958月31日 XXXXX149月01日 XXXXX14
こんなかんじです
連絡後
「不正アクセス情報の取り下げ」および「停止についての解除のお願い」をしたとのことあとはプロバイダの判断になる
ありがたい
そしてついに
感涙
9月13日夕方(停止から約1週間)
インターネット再開
改めて
徳丸さんの協力なしには自力で事情を説明することは難しかったです
この時は本当にありがとうございました
みみりん ではありません
そんな徳丸先生の本が絶賛発売中だ
httpwwwamazoncojpdp4822279987
httpwwwamazoncojpdp4797361190
今すぐ購入
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
この対応を受け
修正する姿勢報告を受け入れる姿勢を感じた
別のとこも探して報告しよう
これが XSS-Nightmare のはじまりであったhellip
探した普通のReflected XSSがすぐみつかった
この度は新たに3件のXSS脆弱性をご指摘いただき 誠にありがとうございます 今回についても弊社でも事実確認の上 鋭意対策を進めさせていただきます 前回に引き続き大変貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
20130828 報告
20130830 応答
同じころ
manabibenessenejpに突然アクセスできなくなる
IPを変えるとアクセスできるようになる
詳しくみると
検査のリクエストが原因でアクセス拒否してる
そういうこともあるだろう(問題の報告のついでに)一応連絡
「検査のリクエストでアク禁してるかもしれないけど報告の通りなのでよろしく」
後日
修正が不適切であるとのこと ご指摘ありがとうございます 確認検討のうえ 対応を進めさせていただきます 誠にありがとうざいました
アク禁のことはスルーまあ伝わっているよね
その後も報告を続ける
修正方法が悪く何度も不完全だと伝える
その確認のたびにアクセス拒否hellip
IPを変更して確認を繰り返す
そして
201397夕方に事件は起きた
なにが起きた
最初は障害や機器の故障を疑った
ところがどれも違う
プロバイダのメールを見ると警告がきていることに気付く
そこから不審なアクセスがあったウイルスに感染などして踏み台になっていないか
不審なアクセス
思い当たると言えば思い当たる
警告メールの前後に脆弱性を検査報告したサービス
GoogleexciteBenesse
(というか日頃やっていることアクセスだけみたら全部不審)
これまで報告していなかったサービスアクセス拒否もあるしどう考えても怪しい
ねじれ
ご指摘誠にありがとうございます 9月6日9月7日にいただきましたメールの内容についても 弊社でも確認のうえ鋭意対策を進めさせていただきます たいへん貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
9月9日返信では相変わらず感謝
niftyからお手紙が届く
攻撃行為をしないという誓約書が同封
待ってくれ違うんだhellip
Benesseniftyに電話でコンタクト
両「セキュリティ上の理由で答えられない」
僕「家のネットが止まって困っている事実関係を確認させてほしい」
らちが明かない
まともに仕事ができないのでWiMAXを契約
テザリングを使ってすがる思いでBlogに書く
もうだめだhellipそんなときに現れた救世主 それが
httpmasatokinugawal0cm201309xssbenessehtml
たぶんXSSが理由でインターネットがとまった
徳丸先生である
DMを頂く
ブログ読みましたこの件についてベネッセと連絡をとっていますメールアドレスを教えて頂けますか
あなたが神か
その後のやりとり
ベネッセはセキュリティ業者に侵入検知システムの運用を委託していて攻撃を検知するとブロックやISPへの連絡をしているそう
ふむふむ
その後のやりとりそのフローにひっかかりIPS(侵入防止システム)検知
セキュリティベンダの監視 ISPへの連絡 ISPによる遮断 となったようだ
なるほど~
その後のやりとり
やりとりの結果ベネッセからISPに連絡することは可能と言われた報告時点のIPアドレスを教えてもらえれば報告と照合するとのこと
ええ記録あるかなhellip
あった日頃自ドメイン(vulnerabledomain)でブラウザの動作テストをしているので自分のアクセスが毎日のようにあった
8月28日 XXXXX28月29日 XXXXX258月30日 XXXXX1958月31日 XXXXX149月01日 XXXXX14
こんなかんじです
連絡後
「不正アクセス情報の取り下げ」および「停止についての解除のお願い」をしたとのことあとはプロバイダの判断になる
ありがたい
そしてついに
感涙
9月13日夕方(停止から約1週間)
インターネット再開
改めて
徳丸さんの協力なしには自力で事情を説明することは難しかったです
この時は本当にありがとうございました
みみりん ではありません
そんな徳丸先生の本が絶賛発売中だ
httpwwwamazoncojpdp4822279987
httpwwwamazoncojpdp4797361190
今すぐ購入
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
探した普通のReflected XSSがすぐみつかった
この度は新たに3件のXSS脆弱性をご指摘いただき 誠にありがとうございます 今回についても弊社でも事実確認の上 鋭意対策を進めさせていただきます 前回に引き続き大変貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
20130828 報告
20130830 応答
同じころ
manabibenessenejpに突然アクセスできなくなる
IPを変えるとアクセスできるようになる
詳しくみると
検査のリクエストが原因でアクセス拒否してる
そういうこともあるだろう(問題の報告のついでに)一応連絡
「検査のリクエストでアク禁してるかもしれないけど報告の通りなのでよろしく」
後日
修正が不適切であるとのこと ご指摘ありがとうございます 確認検討のうえ 対応を進めさせていただきます 誠にありがとうざいました
アク禁のことはスルーまあ伝わっているよね
その後も報告を続ける
修正方法が悪く何度も不完全だと伝える
その確認のたびにアクセス拒否hellip
IPを変更して確認を繰り返す
そして
201397夕方に事件は起きた
なにが起きた
最初は障害や機器の故障を疑った
ところがどれも違う
プロバイダのメールを見ると警告がきていることに気付く
そこから不審なアクセスがあったウイルスに感染などして踏み台になっていないか
不審なアクセス
思い当たると言えば思い当たる
警告メールの前後に脆弱性を検査報告したサービス
GoogleexciteBenesse
(というか日頃やっていることアクセスだけみたら全部不審)
これまで報告していなかったサービスアクセス拒否もあるしどう考えても怪しい
ねじれ
ご指摘誠にありがとうございます 9月6日9月7日にいただきましたメールの内容についても 弊社でも確認のうえ鋭意対策を進めさせていただきます たいへん貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
9月9日返信では相変わらず感謝
niftyからお手紙が届く
攻撃行為をしないという誓約書が同封
待ってくれ違うんだhellip
Benesseniftyに電話でコンタクト
両「セキュリティ上の理由で答えられない」
僕「家のネットが止まって困っている事実関係を確認させてほしい」
らちが明かない
まともに仕事ができないのでWiMAXを契約
テザリングを使ってすがる思いでBlogに書く
もうだめだhellipそんなときに現れた救世主 それが
httpmasatokinugawal0cm201309xssbenessehtml
たぶんXSSが理由でインターネットがとまった
徳丸先生である
DMを頂く
ブログ読みましたこの件についてベネッセと連絡をとっていますメールアドレスを教えて頂けますか
あなたが神か
その後のやりとり
ベネッセはセキュリティ業者に侵入検知システムの運用を委託していて攻撃を検知するとブロックやISPへの連絡をしているそう
ふむふむ
その後のやりとりそのフローにひっかかりIPS(侵入防止システム)検知
セキュリティベンダの監視 ISPへの連絡 ISPによる遮断 となったようだ
なるほど~
その後のやりとり
やりとりの結果ベネッセからISPに連絡することは可能と言われた報告時点のIPアドレスを教えてもらえれば報告と照合するとのこと
ええ記録あるかなhellip
あった日頃自ドメイン(vulnerabledomain)でブラウザの動作テストをしているので自分のアクセスが毎日のようにあった
8月28日 XXXXX28月29日 XXXXX258月30日 XXXXX1958月31日 XXXXX149月01日 XXXXX14
こんなかんじです
連絡後
「不正アクセス情報の取り下げ」および「停止についての解除のお願い」をしたとのことあとはプロバイダの判断になる
ありがたい
そしてついに
感涙
9月13日夕方(停止から約1週間)
インターネット再開
改めて
徳丸さんの協力なしには自力で事情を説明することは難しかったです
この時は本当にありがとうございました
みみりん ではありません
そんな徳丸先生の本が絶賛発売中だ
httpwwwamazoncojpdp4822279987
httpwwwamazoncojpdp4797361190
今すぐ購入
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
同じころ
manabibenessenejpに突然アクセスできなくなる
IPを変えるとアクセスできるようになる
詳しくみると
検査のリクエストが原因でアクセス拒否してる
そういうこともあるだろう(問題の報告のついでに)一応連絡
「検査のリクエストでアク禁してるかもしれないけど報告の通りなのでよろしく」
後日
修正が不適切であるとのこと ご指摘ありがとうございます 確認検討のうえ 対応を進めさせていただきます 誠にありがとうざいました
アク禁のことはスルーまあ伝わっているよね
その後も報告を続ける
修正方法が悪く何度も不完全だと伝える
その確認のたびにアクセス拒否hellip
IPを変更して確認を繰り返す
そして
201397夕方に事件は起きた
なにが起きた
最初は障害や機器の故障を疑った
ところがどれも違う
プロバイダのメールを見ると警告がきていることに気付く
そこから不審なアクセスがあったウイルスに感染などして踏み台になっていないか
不審なアクセス
思い当たると言えば思い当たる
警告メールの前後に脆弱性を検査報告したサービス
GoogleexciteBenesse
(というか日頃やっていることアクセスだけみたら全部不審)
これまで報告していなかったサービスアクセス拒否もあるしどう考えても怪しい
ねじれ
ご指摘誠にありがとうございます 9月6日9月7日にいただきましたメールの内容についても 弊社でも確認のうえ鋭意対策を進めさせていただきます たいへん貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
9月9日返信では相変わらず感謝
niftyからお手紙が届く
攻撃行為をしないという誓約書が同封
待ってくれ違うんだhellip
Benesseniftyに電話でコンタクト
両「セキュリティ上の理由で答えられない」
僕「家のネットが止まって困っている事実関係を確認させてほしい」
らちが明かない
まともに仕事ができないのでWiMAXを契約
テザリングを使ってすがる思いでBlogに書く
もうだめだhellipそんなときに現れた救世主 それが
httpmasatokinugawal0cm201309xssbenessehtml
たぶんXSSが理由でインターネットがとまった
徳丸先生である
DMを頂く
ブログ読みましたこの件についてベネッセと連絡をとっていますメールアドレスを教えて頂けますか
あなたが神か
その後のやりとり
ベネッセはセキュリティ業者に侵入検知システムの運用を委託していて攻撃を検知するとブロックやISPへの連絡をしているそう
ふむふむ
その後のやりとりそのフローにひっかかりIPS(侵入防止システム)検知
セキュリティベンダの監視 ISPへの連絡 ISPによる遮断 となったようだ
なるほど~
その後のやりとり
やりとりの結果ベネッセからISPに連絡することは可能と言われた報告時点のIPアドレスを教えてもらえれば報告と照合するとのこと
ええ記録あるかなhellip
あった日頃自ドメイン(vulnerabledomain)でブラウザの動作テストをしているので自分のアクセスが毎日のようにあった
8月28日 XXXXX28月29日 XXXXX258月30日 XXXXX1958月31日 XXXXX149月01日 XXXXX14
こんなかんじです
連絡後
「不正アクセス情報の取り下げ」および「停止についての解除のお願い」をしたとのことあとはプロバイダの判断になる
ありがたい
そしてついに
感涙
9月13日夕方(停止から約1週間)
インターネット再開
改めて
徳丸さんの協力なしには自力で事情を説明することは難しかったです
この時は本当にありがとうございました
みみりん ではありません
そんな徳丸先生の本が絶賛発売中だ
httpwwwamazoncojpdp4822279987
httpwwwamazoncojpdp4797361190
今すぐ購入
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
そういうこともあるだろう(問題の報告のついでに)一応連絡
「検査のリクエストでアク禁してるかもしれないけど報告の通りなのでよろしく」
後日
修正が不適切であるとのこと ご指摘ありがとうございます 確認検討のうえ 対応を進めさせていただきます 誠にありがとうざいました
アク禁のことはスルーまあ伝わっているよね
その後も報告を続ける
修正方法が悪く何度も不完全だと伝える
その確認のたびにアクセス拒否hellip
IPを変更して確認を繰り返す
そして
201397夕方に事件は起きた
なにが起きた
最初は障害や機器の故障を疑った
ところがどれも違う
プロバイダのメールを見ると警告がきていることに気付く
そこから不審なアクセスがあったウイルスに感染などして踏み台になっていないか
不審なアクセス
思い当たると言えば思い当たる
警告メールの前後に脆弱性を検査報告したサービス
GoogleexciteBenesse
(というか日頃やっていることアクセスだけみたら全部不審)
これまで報告していなかったサービスアクセス拒否もあるしどう考えても怪しい
ねじれ
ご指摘誠にありがとうございます 9月6日9月7日にいただきましたメールの内容についても 弊社でも確認のうえ鋭意対策を進めさせていただきます たいへん貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
9月9日返信では相変わらず感謝
niftyからお手紙が届く
攻撃行為をしないという誓約書が同封
待ってくれ違うんだhellip
Benesseniftyに電話でコンタクト
両「セキュリティ上の理由で答えられない」
僕「家のネットが止まって困っている事実関係を確認させてほしい」
らちが明かない
まともに仕事ができないのでWiMAXを契約
テザリングを使ってすがる思いでBlogに書く
もうだめだhellipそんなときに現れた救世主 それが
httpmasatokinugawal0cm201309xssbenessehtml
たぶんXSSが理由でインターネットがとまった
徳丸先生である
DMを頂く
ブログ読みましたこの件についてベネッセと連絡をとっていますメールアドレスを教えて頂けますか
あなたが神か
その後のやりとり
ベネッセはセキュリティ業者に侵入検知システムの運用を委託していて攻撃を検知するとブロックやISPへの連絡をしているそう
ふむふむ
その後のやりとりそのフローにひっかかりIPS(侵入防止システム)検知
セキュリティベンダの監視 ISPへの連絡 ISPによる遮断 となったようだ
なるほど~
その後のやりとり
やりとりの結果ベネッセからISPに連絡することは可能と言われた報告時点のIPアドレスを教えてもらえれば報告と照合するとのこと
ええ記録あるかなhellip
あった日頃自ドメイン(vulnerabledomain)でブラウザの動作テストをしているので自分のアクセスが毎日のようにあった
8月28日 XXXXX28月29日 XXXXX258月30日 XXXXX1958月31日 XXXXX149月01日 XXXXX14
こんなかんじです
連絡後
「不正アクセス情報の取り下げ」および「停止についての解除のお願い」をしたとのことあとはプロバイダの判断になる
ありがたい
そしてついに
感涙
9月13日夕方(停止から約1週間)
インターネット再開
改めて
徳丸さんの協力なしには自力で事情を説明することは難しかったです
この時は本当にありがとうございました
みみりん ではありません
そんな徳丸先生の本が絶賛発売中だ
httpwwwamazoncojpdp4822279987
httpwwwamazoncojpdp4797361190
今すぐ購入
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
その後も報告を続ける
修正方法が悪く何度も不完全だと伝える
その確認のたびにアクセス拒否hellip
IPを変更して確認を繰り返す
そして
201397夕方に事件は起きた
なにが起きた
最初は障害や機器の故障を疑った
ところがどれも違う
プロバイダのメールを見ると警告がきていることに気付く
そこから不審なアクセスがあったウイルスに感染などして踏み台になっていないか
不審なアクセス
思い当たると言えば思い当たる
警告メールの前後に脆弱性を検査報告したサービス
GoogleexciteBenesse
(というか日頃やっていることアクセスだけみたら全部不審)
これまで報告していなかったサービスアクセス拒否もあるしどう考えても怪しい
ねじれ
ご指摘誠にありがとうございます 9月6日9月7日にいただきましたメールの内容についても 弊社でも確認のうえ鋭意対策を進めさせていただきます たいへん貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
9月9日返信では相変わらず感謝
niftyからお手紙が届く
攻撃行為をしないという誓約書が同封
待ってくれ違うんだhellip
Benesseniftyに電話でコンタクト
両「セキュリティ上の理由で答えられない」
僕「家のネットが止まって困っている事実関係を確認させてほしい」
らちが明かない
まともに仕事ができないのでWiMAXを契約
テザリングを使ってすがる思いでBlogに書く
もうだめだhellipそんなときに現れた救世主 それが
httpmasatokinugawal0cm201309xssbenessehtml
たぶんXSSが理由でインターネットがとまった
徳丸先生である
DMを頂く
ブログ読みましたこの件についてベネッセと連絡をとっていますメールアドレスを教えて頂けますか
あなたが神か
その後のやりとり
ベネッセはセキュリティ業者に侵入検知システムの運用を委託していて攻撃を検知するとブロックやISPへの連絡をしているそう
ふむふむ
その後のやりとりそのフローにひっかかりIPS(侵入防止システム)検知
セキュリティベンダの監視 ISPへの連絡 ISPによる遮断 となったようだ
なるほど~
その後のやりとり
やりとりの結果ベネッセからISPに連絡することは可能と言われた報告時点のIPアドレスを教えてもらえれば報告と照合するとのこと
ええ記録あるかなhellip
あった日頃自ドメイン(vulnerabledomain)でブラウザの動作テストをしているので自分のアクセスが毎日のようにあった
8月28日 XXXXX28月29日 XXXXX258月30日 XXXXX1958月31日 XXXXX149月01日 XXXXX14
こんなかんじです
連絡後
「不正アクセス情報の取り下げ」および「停止についての解除のお願い」をしたとのことあとはプロバイダの判断になる
ありがたい
そしてついに
感涙
9月13日夕方(停止から約1週間)
インターネット再開
改めて
徳丸さんの協力なしには自力で事情を説明することは難しかったです
この時は本当にありがとうございました
みみりん ではありません
そんな徳丸先生の本が絶賛発売中だ
httpwwwamazoncojpdp4822279987
httpwwwamazoncojpdp4797361190
今すぐ購入
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
そして
201397夕方に事件は起きた
なにが起きた
最初は障害や機器の故障を疑った
ところがどれも違う
プロバイダのメールを見ると警告がきていることに気付く
そこから不審なアクセスがあったウイルスに感染などして踏み台になっていないか
不審なアクセス
思い当たると言えば思い当たる
警告メールの前後に脆弱性を検査報告したサービス
GoogleexciteBenesse
(というか日頃やっていることアクセスだけみたら全部不審)
これまで報告していなかったサービスアクセス拒否もあるしどう考えても怪しい
ねじれ
ご指摘誠にありがとうございます 9月6日9月7日にいただきましたメールの内容についても 弊社でも確認のうえ鋭意対策を進めさせていただきます たいへん貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
9月9日返信では相変わらず感謝
niftyからお手紙が届く
攻撃行為をしないという誓約書が同封
待ってくれ違うんだhellip
Benesseniftyに電話でコンタクト
両「セキュリティ上の理由で答えられない」
僕「家のネットが止まって困っている事実関係を確認させてほしい」
らちが明かない
まともに仕事ができないのでWiMAXを契約
テザリングを使ってすがる思いでBlogに書く
もうだめだhellipそんなときに現れた救世主 それが
httpmasatokinugawal0cm201309xssbenessehtml
たぶんXSSが理由でインターネットがとまった
徳丸先生である
DMを頂く
ブログ読みましたこの件についてベネッセと連絡をとっていますメールアドレスを教えて頂けますか
あなたが神か
その後のやりとり
ベネッセはセキュリティ業者に侵入検知システムの運用を委託していて攻撃を検知するとブロックやISPへの連絡をしているそう
ふむふむ
その後のやりとりそのフローにひっかかりIPS(侵入防止システム)検知
セキュリティベンダの監視 ISPへの連絡 ISPによる遮断 となったようだ
なるほど~
その後のやりとり
やりとりの結果ベネッセからISPに連絡することは可能と言われた報告時点のIPアドレスを教えてもらえれば報告と照合するとのこと
ええ記録あるかなhellip
あった日頃自ドメイン(vulnerabledomain)でブラウザの動作テストをしているので自分のアクセスが毎日のようにあった
8月28日 XXXXX28月29日 XXXXX258月30日 XXXXX1958月31日 XXXXX149月01日 XXXXX14
こんなかんじです
連絡後
「不正アクセス情報の取り下げ」および「停止についての解除のお願い」をしたとのことあとはプロバイダの判断になる
ありがたい
そしてついに
感涙
9月13日夕方(停止から約1週間)
インターネット再開
改めて
徳丸さんの協力なしには自力で事情を説明することは難しかったです
この時は本当にありがとうございました
みみりん ではありません
そんな徳丸先生の本が絶賛発売中だ
httpwwwamazoncojpdp4822279987
httpwwwamazoncojpdp4797361190
今すぐ購入
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
なにが起きた
最初は障害や機器の故障を疑った
ところがどれも違う
プロバイダのメールを見ると警告がきていることに気付く
そこから不審なアクセスがあったウイルスに感染などして踏み台になっていないか
不審なアクセス
思い当たると言えば思い当たる
警告メールの前後に脆弱性を検査報告したサービス
GoogleexciteBenesse
(というか日頃やっていることアクセスだけみたら全部不審)
これまで報告していなかったサービスアクセス拒否もあるしどう考えても怪しい
ねじれ
ご指摘誠にありがとうございます 9月6日9月7日にいただきましたメールの内容についても 弊社でも確認のうえ鋭意対策を進めさせていただきます たいへん貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
9月9日返信では相変わらず感謝
niftyからお手紙が届く
攻撃行為をしないという誓約書が同封
待ってくれ違うんだhellip
Benesseniftyに電話でコンタクト
両「セキュリティ上の理由で答えられない」
僕「家のネットが止まって困っている事実関係を確認させてほしい」
らちが明かない
まともに仕事ができないのでWiMAXを契約
テザリングを使ってすがる思いでBlogに書く
もうだめだhellipそんなときに現れた救世主 それが
httpmasatokinugawal0cm201309xssbenessehtml
たぶんXSSが理由でインターネットがとまった
徳丸先生である
DMを頂く
ブログ読みましたこの件についてベネッセと連絡をとっていますメールアドレスを教えて頂けますか
あなたが神か
その後のやりとり
ベネッセはセキュリティ業者に侵入検知システムの運用を委託していて攻撃を検知するとブロックやISPへの連絡をしているそう
ふむふむ
その後のやりとりそのフローにひっかかりIPS(侵入防止システム)検知
セキュリティベンダの監視 ISPへの連絡 ISPによる遮断 となったようだ
なるほど~
その後のやりとり
やりとりの結果ベネッセからISPに連絡することは可能と言われた報告時点のIPアドレスを教えてもらえれば報告と照合するとのこと
ええ記録あるかなhellip
あった日頃自ドメイン(vulnerabledomain)でブラウザの動作テストをしているので自分のアクセスが毎日のようにあった
8月28日 XXXXX28月29日 XXXXX258月30日 XXXXX1958月31日 XXXXX149月01日 XXXXX14
こんなかんじです
連絡後
「不正アクセス情報の取り下げ」および「停止についての解除のお願い」をしたとのことあとはプロバイダの判断になる
ありがたい
そしてついに
感涙
9月13日夕方(停止から約1週間)
インターネット再開
改めて
徳丸さんの協力なしには自力で事情を説明することは難しかったです
この時は本当にありがとうございました
みみりん ではありません
そんな徳丸先生の本が絶賛発売中だ
httpwwwamazoncojpdp4822279987
httpwwwamazoncojpdp4797361190
今すぐ購入
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
不審なアクセス
思い当たると言えば思い当たる
警告メールの前後に脆弱性を検査報告したサービス
GoogleexciteBenesse
(というか日頃やっていることアクセスだけみたら全部不審)
これまで報告していなかったサービスアクセス拒否もあるしどう考えても怪しい
ねじれ
ご指摘誠にありがとうございます 9月6日9月7日にいただきましたメールの内容についても 弊社でも確認のうえ鋭意対策を進めさせていただきます たいへん貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
9月9日返信では相変わらず感謝
niftyからお手紙が届く
攻撃行為をしないという誓約書が同封
待ってくれ違うんだhellip
Benesseniftyに電話でコンタクト
両「セキュリティ上の理由で答えられない」
僕「家のネットが止まって困っている事実関係を確認させてほしい」
らちが明かない
まともに仕事ができないのでWiMAXを契約
テザリングを使ってすがる思いでBlogに書く
もうだめだhellipそんなときに現れた救世主 それが
httpmasatokinugawal0cm201309xssbenessehtml
たぶんXSSが理由でインターネットがとまった
徳丸先生である
DMを頂く
ブログ読みましたこの件についてベネッセと連絡をとっていますメールアドレスを教えて頂けますか
あなたが神か
その後のやりとり
ベネッセはセキュリティ業者に侵入検知システムの運用を委託していて攻撃を検知するとブロックやISPへの連絡をしているそう
ふむふむ
その後のやりとりそのフローにひっかかりIPS(侵入防止システム)検知
セキュリティベンダの監視 ISPへの連絡 ISPによる遮断 となったようだ
なるほど~
その後のやりとり
やりとりの結果ベネッセからISPに連絡することは可能と言われた報告時点のIPアドレスを教えてもらえれば報告と照合するとのこと
ええ記録あるかなhellip
あった日頃自ドメイン(vulnerabledomain)でブラウザの動作テストをしているので自分のアクセスが毎日のようにあった
8月28日 XXXXX28月29日 XXXXX258月30日 XXXXX1958月31日 XXXXX149月01日 XXXXX14
こんなかんじです
連絡後
「不正アクセス情報の取り下げ」および「停止についての解除のお願い」をしたとのことあとはプロバイダの判断になる
ありがたい
そしてついに
感涙
9月13日夕方(停止から約1週間)
インターネット再開
改めて
徳丸さんの協力なしには自力で事情を説明することは難しかったです
この時は本当にありがとうございました
みみりん ではありません
そんな徳丸先生の本が絶賛発売中だ
httpwwwamazoncojpdp4822279987
httpwwwamazoncojpdp4797361190
今すぐ購入
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
ねじれ
ご指摘誠にありがとうございます 9月6日9月7日にいただきましたメールの内容についても 弊社でも確認のうえ鋭意対策を進めさせていただきます たいへん貴重なご指摘を賜りましたこと 重ねがさね御礼申し上げます
9月9日返信では相変わらず感謝
niftyからお手紙が届く
攻撃行為をしないという誓約書が同封
待ってくれ違うんだhellip
Benesseniftyに電話でコンタクト
両「セキュリティ上の理由で答えられない」
僕「家のネットが止まって困っている事実関係を確認させてほしい」
らちが明かない
まともに仕事ができないのでWiMAXを契約
テザリングを使ってすがる思いでBlogに書く
もうだめだhellipそんなときに現れた救世主 それが
httpmasatokinugawal0cm201309xssbenessehtml
たぶんXSSが理由でインターネットがとまった
徳丸先生である
DMを頂く
ブログ読みましたこの件についてベネッセと連絡をとっていますメールアドレスを教えて頂けますか
あなたが神か
その後のやりとり
ベネッセはセキュリティ業者に侵入検知システムの運用を委託していて攻撃を検知するとブロックやISPへの連絡をしているそう
ふむふむ
その後のやりとりそのフローにひっかかりIPS(侵入防止システム)検知
セキュリティベンダの監視 ISPへの連絡 ISPによる遮断 となったようだ
なるほど~
その後のやりとり
やりとりの結果ベネッセからISPに連絡することは可能と言われた報告時点のIPアドレスを教えてもらえれば報告と照合するとのこと
ええ記録あるかなhellip
あった日頃自ドメイン(vulnerabledomain)でブラウザの動作テストをしているので自分のアクセスが毎日のようにあった
8月28日 XXXXX28月29日 XXXXX258月30日 XXXXX1958月31日 XXXXX149月01日 XXXXX14
こんなかんじです
連絡後
「不正アクセス情報の取り下げ」および「停止についての解除のお願い」をしたとのことあとはプロバイダの判断になる
ありがたい
そしてついに
感涙
9月13日夕方(停止から約1週間)
インターネット再開
改めて
徳丸さんの協力なしには自力で事情を説明することは難しかったです
この時は本当にありがとうございました
みみりん ではありません
そんな徳丸先生の本が絶賛発売中だ
httpwwwamazoncojpdp4822279987
httpwwwamazoncojpdp4797361190
今すぐ購入
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
niftyからお手紙が届く
攻撃行為をしないという誓約書が同封
待ってくれ違うんだhellip
Benesseniftyに電話でコンタクト
両「セキュリティ上の理由で答えられない」
僕「家のネットが止まって困っている事実関係を確認させてほしい」
らちが明かない
まともに仕事ができないのでWiMAXを契約
テザリングを使ってすがる思いでBlogに書く
もうだめだhellipそんなときに現れた救世主 それが
httpmasatokinugawal0cm201309xssbenessehtml
たぶんXSSが理由でインターネットがとまった
徳丸先生である
DMを頂く
ブログ読みましたこの件についてベネッセと連絡をとっていますメールアドレスを教えて頂けますか
あなたが神か
その後のやりとり
ベネッセはセキュリティ業者に侵入検知システムの運用を委託していて攻撃を検知するとブロックやISPへの連絡をしているそう
ふむふむ
その後のやりとりそのフローにひっかかりIPS(侵入防止システム)検知
セキュリティベンダの監視 ISPへの連絡 ISPによる遮断 となったようだ
なるほど~
その後のやりとり
やりとりの結果ベネッセからISPに連絡することは可能と言われた報告時点のIPアドレスを教えてもらえれば報告と照合するとのこと
ええ記録あるかなhellip
あった日頃自ドメイン(vulnerabledomain)でブラウザの動作テストをしているので自分のアクセスが毎日のようにあった
8月28日 XXXXX28月29日 XXXXX258月30日 XXXXX1958月31日 XXXXX149月01日 XXXXX14
こんなかんじです
連絡後
「不正アクセス情報の取り下げ」および「停止についての解除のお願い」をしたとのことあとはプロバイダの判断になる
ありがたい
そしてついに
感涙
9月13日夕方(停止から約1週間)
インターネット再開
改めて
徳丸さんの協力なしには自力で事情を説明することは難しかったです
この時は本当にありがとうございました
みみりん ではありません
そんな徳丸先生の本が絶賛発売中だ
httpwwwamazoncojpdp4822279987
httpwwwamazoncojpdp4797361190
今すぐ購入
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
Benesseniftyに電話でコンタクト
両「セキュリティ上の理由で答えられない」
僕「家のネットが止まって困っている事実関係を確認させてほしい」
らちが明かない
まともに仕事ができないのでWiMAXを契約
テザリングを使ってすがる思いでBlogに書く
もうだめだhellipそんなときに現れた救世主 それが
httpmasatokinugawal0cm201309xssbenessehtml
たぶんXSSが理由でインターネットがとまった
徳丸先生である
DMを頂く
ブログ読みましたこの件についてベネッセと連絡をとっていますメールアドレスを教えて頂けますか
あなたが神か
その後のやりとり
ベネッセはセキュリティ業者に侵入検知システムの運用を委託していて攻撃を検知するとブロックやISPへの連絡をしているそう
ふむふむ
その後のやりとりそのフローにひっかかりIPS(侵入防止システム)検知
セキュリティベンダの監視 ISPへの連絡 ISPによる遮断 となったようだ
なるほど~
その後のやりとり
やりとりの結果ベネッセからISPに連絡することは可能と言われた報告時点のIPアドレスを教えてもらえれば報告と照合するとのこと
ええ記録あるかなhellip
あった日頃自ドメイン(vulnerabledomain)でブラウザの動作テストをしているので自分のアクセスが毎日のようにあった
8月28日 XXXXX28月29日 XXXXX258月30日 XXXXX1958月31日 XXXXX149月01日 XXXXX14
こんなかんじです
連絡後
「不正アクセス情報の取り下げ」および「停止についての解除のお願い」をしたとのことあとはプロバイダの判断になる
ありがたい
そしてついに
感涙
9月13日夕方(停止から約1週間)
インターネット再開
改めて
徳丸さんの協力なしには自力で事情を説明することは難しかったです
この時は本当にありがとうございました
みみりん ではありません
そんな徳丸先生の本が絶賛発売中だ
httpwwwamazoncojpdp4822279987
httpwwwamazoncojpdp4797361190
今すぐ購入
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
らちが明かない
まともに仕事ができないのでWiMAXを契約
テザリングを使ってすがる思いでBlogに書く
もうだめだhellipそんなときに現れた救世主 それが
httpmasatokinugawal0cm201309xssbenessehtml
たぶんXSSが理由でインターネットがとまった
徳丸先生である
DMを頂く
ブログ読みましたこの件についてベネッセと連絡をとっていますメールアドレスを教えて頂けますか
あなたが神か
その後のやりとり
ベネッセはセキュリティ業者に侵入検知システムの運用を委託していて攻撃を検知するとブロックやISPへの連絡をしているそう
ふむふむ
その後のやりとりそのフローにひっかかりIPS(侵入防止システム)検知
セキュリティベンダの監視 ISPへの連絡 ISPによる遮断 となったようだ
なるほど~
その後のやりとり
やりとりの結果ベネッセからISPに連絡することは可能と言われた報告時点のIPアドレスを教えてもらえれば報告と照合するとのこと
ええ記録あるかなhellip
あった日頃自ドメイン(vulnerabledomain)でブラウザの動作テストをしているので自分のアクセスが毎日のようにあった
8月28日 XXXXX28月29日 XXXXX258月30日 XXXXX1958月31日 XXXXX149月01日 XXXXX14
こんなかんじです
連絡後
「不正アクセス情報の取り下げ」および「停止についての解除のお願い」をしたとのことあとはプロバイダの判断になる
ありがたい
そしてついに
感涙
9月13日夕方(停止から約1週間)
インターネット再開
改めて
徳丸さんの協力なしには自力で事情を説明することは難しかったです
この時は本当にありがとうございました
みみりん ではありません
そんな徳丸先生の本が絶賛発売中だ
httpwwwamazoncojpdp4822279987
httpwwwamazoncojpdp4797361190
今すぐ購入
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
徳丸先生である
DMを頂く
ブログ読みましたこの件についてベネッセと連絡をとっていますメールアドレスを教えて頂けますか
あなたが神か
その後のやりとり
ベネッセはセキュリティ業者に侵入検知システムの運用を委託していて攻撃を検知するとブロックやISPへの連絡をしているそう
ふむふむ
その後のやりとりそのフローにひっかかりIPS(侵入防止システム)検知
セキュリティベンダの監視 ISPへの連絡 ISPによる遮断 となったようだ
なるほど~
その後のやりとり
やりとりの結果ベネッセからISPに連絡することは可能と言われた報告時点のIPアドレスを教えてもらえれば報告と照合するとのこと
ええ記録あるかなhellip
あった日頃自ドメイン(vulnerabledomain)でブラウザの動作テストをしているので自分のアクセスが毎日のようにあった
8月28日 XXXXX28月29日 XXXXX258月30日 XXXXX1958月31日 XXXXX149月01日 XXXXX14
こんなかんじです
連絡後
「不正アクセス情報の取り下げ」および「停止についての解除のお願い」をしたとのことあとはプロバイダの判断になる
ありがたい
そしてついに
感涙
9月13日夕方(停止から約1週間)
インターネット再開
改めて
徳丸さんの協力なしには自力で事情を説明することは難しかったです
この時は本当にありがとうございました
みみりん ではありません
そんな徳丸先生の本が絶賛発売中だ
httpwwwamazoncojpdp4822279987
httpwwwamazoncojpdp4797361190
今すぐ購入
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
DMを頂く
ブログ読みましたこの件についてベネッセと連絡をとっていますメールアドレスを教えて頂けますか
あなたが神か
その後のやりとり
ベネッセはセキュリティ業者に侵入検知システムの運用を委託していて攻撃を検知するとブロックやISPへの連絡をしているそう
ふむふむ
その後のやりとりそのフローにひっかかりIPS(侵入防止システム)検知
セキュリティベンダの監視 ISPへの連絡 ISPによる遮断 となったようだ
なるほど~
その後のやりとり
やりとりの結果ベネッセからISPに連絡することは可能と言われた報告時点のIPアドレスを教えてもらえれば報告と照合するとのこと
ええ記録あるかなhellip
あった日頃自ドメイン(vulnerabledomain)でブラウザの動作テストをしているので自分のアクセスが毎日のようにあった
8月28日 XXXXX28月29日 XXXXX258月30日 XXXXX1958月31日 XXXXX149月01日 XXXXX14
こんなかんじです
連絡後
「不正アクセス情報の取り下げ」および「停止についての解除のお願い」をしたとのことあとはプロバイダの判断になる
ありがたい
そしてついに
感涙
9月13日夕方(停止から約1週間)
インターネット再開
改めて
徳丸さんの協力なしには自力で事情を説明することは難しかったです
この時は本当にありがとうございました
みみりん ではありません
そんな徳丸先生の本が絶賛発売中だ
httpwwwamazoncojpdp4822279987
httpwwwamazoncojpdp4797361190
今すぐ購入
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
その後のやりとり
ベネッセはセキュリティ業者に侵入検知システムの運用を委託していて攻撃を検知するとブロックやISPへの連絡をしているそう
ふむふむ
その後のやりとりそのフローにひっかかりIPS(侵入防止システム)検知
セキュリティベンダの監視 ISPへの連絡 ISPによる遮断 となったようだ
なるほど~
その後のやりとり
やりとりの結果ベネッセからISPに連絡することは可能と言われた報告時点のIPアドレスを教えてもらえれば報告と照合するとのこと
ええ記録あるかなhellip
あった日頃自ドメイン(vulnerabledomain)でブラウザの動作テストをしているので自分のアクセスが毎日のようにあった
8月28日 XXXXX28月29日 XXXXX258月30日 XXXXX1958月31日 XXXXX149月01日 XXXXX14
こんなかんじです
連絡後
「不正アクセス情報の取り下げ」および「停止についての解除のお願い」をしたとのことあとはプロバイダの判断になる
ありがたい
そしてついに
感涙
9月13日夕方(停止から約1週間)
インターネット再開
改めて
徳丸さんの協力なしには自力で事情を説明することは難しかったです
この時は本当にありがとうございました
みみりん ではありません
そんな徳丸先生の本が絶賛発売中だ
httpwwwamazoncojpdp4822279987
httpwwwamazoncojpdp4797361190
今すぐ購入
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
その後のやりとりそのフローにひっかかりIPS(侵入防止システム)検知
セキュリティベンダの監視 ISPへの連絡 ISPによる遮断 となったようだ
なるほど~
その後のやりとり
やりとりの結果ベネッセからISPに連絡することは可能と言われた報告時点のIPアドレスを教えてもらえれば報告と照合するとのこと
ええ記録あるかなhellip
あった日頃自ドメイン(vulnerabledomain)でブラウザの動作テストをしているので自分のアクセスが毎日のようにあった
8月28日 XXXXX28月29日 XXXXX258月30日 XXXXX1958月31日 XXXXX149月01日 XXXXX14
こんなかんじです
連絡後
「不正アクセス情報の取り下げ」および「停止についての解除のお願い」をしたとのことあとはプロバイダの判断になる
ありがたい
そしてついに
感涙
9月13日夕方(停止から約1週間)
インターネット再開
改めて
徳丸さんの協力なしには自力で事情を説明することは難しかったです
この時は本当にありがとうございました
みみりん ではありません
そんな徳丸先生の本が絶賛発売中だ
httpwwwamazoncojpdp4822279987
httpwwwamazoncojpdp4797361190
今すぐ購入
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
その後のやりとり
やりとりの結果ベネッセからISPに連絡することは可能と言われた報告時点のIPアドレスを教えてもらえれば報告と照合するとのこと
ええ記録あるかなhellip
あった日頃自ドメイン(vulnerabledomain)でブラウザの動作テストをしているので自分のアクセスが毎日のようにあった
8月28日 XXXXX28月29日 XXXXX258月30日 XXXXX1958月31日 XXXXX149月01日 XXXXX14
こんなかんじです
連絡後
「不正アクセス情報の取り下げ」および「停止についての解除のお願い」をしたとのことあとはプロバイダの判断になる
ありがたい
そしてついに
感涙
9月13日夕方(停止から約1週間)
インターネット再開
改めて
徳丸さんの協力なしには自力で事情を説明することは難しかったです
この時は本当にありがとうございました
みみりん ではありません
そんな徳丸先生の本が絶賛発売中だ
httpwwwamazoncojpdp4822279987
httpwwwamazoncojpdp4797361190
今すぐ購入
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
あった日頃自ドメイン(vulnerabledomain)でブラウザの動作テストをしているので自分のアクセスが毎日のようにあった
8月28日 XXXXX28月29日 XXXXX258月30日 XXXXX1958月31日 XXXXX149月01日 XXXXX14
こんなかんじです
連絡後
「不正アクセス情報の取り下げ」および「停止についての解除のお願い」をしたとのことあとはプロバイダの判断になる
ありがたい
そしてついに
感涙
9月13日夕方(停止から約1週間)
インターネット再開
改めて
徳丸さんの協力なしには自力で事情を説明することは難しかったです
この時は本当にありがとうございました
みみりん ではありません
そんな徳丸先生の本が絶賛発売中だ
httpwwwamazoncojpdp4822279987
httpwwwamazoncojpdp4797361190
今すぐ購入
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
連絡後
「不正アクセス情報の取り下げ」および「停止についての解除のお願い」をしたとのことあとはプロバイダの判断になる
ありがたい
そしてついに
感涙
9月13日夕方(停止から約1週間)
インターネット再開
改めて
徳丸さんの協力なしには自力で事情を説明することは難しかったです
この時は本当にありがとうございました
みみりん ではありません
そんな徳丸先生の本が絶賛発売中だ
httpwwwamazoncojpdp4822279987
httpwwwamazoncojpdp4797361190
今すぐ購入
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
そしてついに
感涙
9月13日夕方(停止から約1週間)
インターネット再開
改めて
徳丸さんの協力なしには自力で事情を説明することは難しかったです
この時は本当にありがとうございました
みみりん ではありません
そんな徳丸先生の本が絶賛発売中だ
httpwwwamazoncojpdp4822279987
httpwwwamazoncojpdp4797361190
今すぐ購入
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
改めて
徳丸さんの協力なしには自力で事情を説明することは難しかったです
この時は本当にありがとうございました
みみりん ではありません
そんな徳丸先生の本が絶賛発売中だ
httpwwwamazoncojpdp4822279987
httpwwwamazoncojpdp4797361190
今すぐ購入
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
そんな徳丸先生の本が絶賛発売中だ
httpwwwamazoncojpdp4822279987
httpwwwamazoncojpdp4797361190
今すぐ購入
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
大きな会社の中は複雑なんだろうなぁhellip
問題を通して感じたこと
そりゃ情報の持ち出しも起こるよなhellip
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
他人事ではない
あなたにBenesseのサイトへXSSっぽいリクエストを送らせるリンクを送る
httpmanabibeness(略)ltscriptgtalert(1)ltscriptgt
サイトが利用不可に最悪インターネットが止まる
あなたがアクセス
危険なのでリンクできない
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
侵入検知会社の間違い
攻撃かどうかを精査していない
攻撃の性質を理解していないXSSの対処にIPブロックする意味を問いたいサイト全体を止める方がまだわかる
今回は報告と照合すれば済んだはず根は遠隔操作事件の問題に近い
根本を修正する手助けをするべきXSSの対処にはそれしかないと思う
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
XSSの脅威
勝手な操作の実行
機密情報の奪取
ページ内容変更によるフィッシング
ネット回線の停止
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
教訓世の中には
つついてはいけないものがある
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
実は最近も止められた
料金の未納で
(勘違いで手続きができてなかった)
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
世間は厳しいhellip
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
哀しいバグ
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
ネット再開後
Benesseに事前にIPアドレスを伝えれば検査をしてもよいということになった
100件近い脆弱性を報告(全てをわずかな期間で修正してくれた
この姿勢は本当に素晴らしい)
その結果
今回はこの中から2つ紹介
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
DOM based XSS ❶httpswebarchiveorgweb20130904143057httpwwwbenessecojpslandpass
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
DOM based XSS ❶
特定のリンクのクリック時に イベントを動作させる
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
特定のリンク
ltdiv id=nav-pwgtltulgtltli id=nav-firstgtlta href=first-logingtltimg src=imgnav_pw_01png width=260 height=50 alt=はじめてログインするかたへgtltagtltligt
ltli id=nav-passmodifgtlta href=passmodifgtltimg src=imgnav_pw_02png width=270 height=50 alt=パスワードを変更(へんこう)したいgtltagtltligt
ltli id=nav-passlostgtlta href=passlostgtltimg src=imgnav_pw_03png width=270 height=50 alt=パスワードを忘(わす)れたので再発行(さいはっこう)したい
jQuery(nav-pw li a atab-link)
どれも へのリンク
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
もう一度よくみてほしい
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
これを踏まえ
jQuery(nav-pw li a atab-link)bind(click touchstart function(event)setTimeout(function()hash = locationhashif (hash = ampamp jQuery(hash)length) 省略
500))
05秒の間にhashは変えられる
もう一度よくみてほしい
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
現在のソースhash = locationhash
2013104 XSS対応
if(hash == first-login||hash == passmodif ||hash == passlost)
else hash =
if (hash = ampamp jQuery(hash)length)
httpwwwbenessecojpslandpass 内のtabsjsを参照
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
DOM based XSS ❷
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
resultというパラメータからパスを組立rarrそのURLのレスポンスをページに書き出す
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
DOM based XSS ❷パスは同一ドメイン内に制限セーフ
ltscript type=textjavascriptgt$(document)ready(function()
result = answeranswer_ + $queryget(result) + html
$(answer_box)load(result))ltscriptgtltdiv id=answer_boxgtltdivgt
httpswebarchiveorgweb20120329044331httpwmbenessenejpcontentsoyashindananswerhtml
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
No同じドメインでユーザのアップロードするアバター画像をホストしている
画像のコメント領域などにltscriptgthellipとか書いておけばそのままの内容をアップロード
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
こうすればvulnpageresult=uploadsprofileiconjpg23
$(document)ready(function()result = answeranswer_ +
$queryget(result) + html$(answer_box)load(result)
)
画像のバイナリをページ内に書き出す
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
DEMOhttpvulnerabledomainavtokyo2015
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
まとめ
これからもできるだけ皆さんに迷惑を
かけないようバグを探しますので
どうぞよろしくお願いします
kinugawamasato
masatokinugawa[at]gmailcom
Thanks
kinugawamasato
masatokinugawa[at]gmailcom
Thanks