SlideShare a Scribd company logo
SecurityCamp2015
CVE-2015-4483解説
Masato Kinugawa
このスライドについて
セキュリティ・キャンプ全国大会2015の2日目(8
月12日)の夕食時に行われた特別コーナー「俺た
ち、高レイヤーの講師だけど質問ある?」で発表
したものです。
この日、ちょうど自分の報告した脆弱性(CVE-
2015-4483)が修正されたので、どのような問題
だったか、どのようにして発見に至ったかについ
て、自分が担当した講義「バグハンティング入
門」で紹介した脆弱性発見のテクニックを実際の
場面で使っていることを示しながら解説しました。
Firefox 40がリリース!今朝こんなのがでました。
http://www.mozilla-japan.org/security/announce/2015/mfsa2015-86.html
概要
feed: プロトコルの接頭辞付き URL でターゲットと
するページを POST メソッドで開いた場合に、その
ページのための混合コンテンツブロッカーが無効化
されてしまうことが、セキュリティ研究者
の Masato Kinugawa 氏によって報告されました
。これは、本来ブロックされるべき安全でないコン
テンツを偶然含んだページに対する中間者 (MITM)
スクリプティング攻撃のリスクを生む恐れがありま
した。
タイトル:
POST 時の feed プロトコルによっ
て混合コンテンツ制限が回避される
feed プロトコル?
feed: プロトコルの接頭辞付き URL でターゲットと
するページを POST メソッドで開いた場合に、その
ページのための混合コンテンツブロッカーが無効化
されてしまうことが、セキュリティ研究者
の Masato Kinugawa 氏によって報告されました
。これは、本来ブロックされるべき安全でないコン
テンツを偶然含んだページに対する中間者 (MITM)
スクリプティング攻撃のリスクを生む恐れがありま
した。
タイトル:
POST 時の feed プロトコルによっ
て混合コンテンツ制限が回避される
こんなの
feed:
(RSS feed まわりのどこかで使われているもの…?)
ハントの秘訣
[ 過去の失敗を知ろう ]
過去の修正済みの脆弱性をじっくりみてみよう
修正後に詳細情報が公開されているものはたくさんある
大抵の脆弱性は形を変えたよく似た失敗
探すべきポイントがみえてくる
という話をしました
昔こんなのがあった(CVE-2012-1965)
feed:javascript:alert(1)
次のようなリンクをクリックするとJSがうごく
feed:をつけるとなんか
起きる場合があるのね。
僕
些細なバグや特徴的な挙動
いちいち悪用できないか考える
僕は小さな気付きをメモするようにしている
あとで脆弱性に繋がると気付くことも
という話をしました
ハントの秘訣
[ 細かいことを気にしよう ]
講義で紹介した僕のメモ
ftp:のURLで、存在しないディレクトリをスクリプトなど
のリソースとしてよみこもうとするとダイアログがでる。
Firefoxのメモ( browser/firefox/bug.txt ) のNo41:
今回に関係するメモ
feed:なURLに対してPOSTすると
feed:がURLから消えない。
Firefoxのメモ( browser/firefox/bug.txt ) のNo49:
「feed:なURLに対してPOST」とは
<form method="post" action="feed:http://example.com/">
<input type="submit">
</form>
こういうこと
「feed:がURLから消えない」とは
こういうこと
混合コンテンツ制限?
feed: プロトコルの接頭辞付き URL でターゲットと
するページを POST メソッドで開いた場合に、その
ページのための混合コンテンツブロッカーが無効化
されてしまうことが、セキュリティ研究者
の Masato Kinugawa 氏によって報告されました
。これは、本来ブロックされるべき安全でないコン
テンツを偶然含んだページに対する中間者 (MITM)
スクリプティング攻撃のリスクを生む恐れがありま
した。
タイトル:
POST 時の feed プロトコルによっ
て混合コンテンツ制限が回避される
講義で話したLiveにあった件
http://maps.google.com/maps/ms?msid=XXX
https://cybozulive.com/[掲示板のURL]
これが混合コンテンツ制限
大きな影響があるもの
なぜ影響があるか?
location.protocol == "feed:"
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-xxxxx-y']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script');
ga.type = 'text/javascript';
ga.async = true;
ga.src = ('https:' ==
document.location.protocol ?
'https://ssl' : 'http://www')
+ '.google-analytics.com/ga.js';
var s =
document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ga, s);
})();
DEMO
http://vulnerabledoma.in/camp2015/fx_feed_mixedcontent.html
脆弱性を引き出すコツ[列挙]
同じ性質のものを列挙しておくと便利
例えばHTMLタグ
例えばHTTPLeaks
例えば様々なフォーマットのファイル
例えばブラウザで利用可能な文字コード
パーツがたくさんあればアイデアに幅が生まれる
一度列挙しておけば必要なときそこをみるだけ
http://l0.cm/encodings/table/
という話を
しました
ちなみに
"about:","blob:","chrome:","data:","feed:","file:",
"ftp:","http:","https:","jar:","javascript:",
"mailto:","mediasource:","moz-anno:","moz-device:",
"moz-icon:","moz-page-thumb:","moz-safe-about:",
"pcast:","resource:","vbscript:",
"view-source:","ws:","wss:","wyciwyg:"
Firefoxで使えそうなプロトコル
列挙して何かしようとしている最中

More Related Content

SecurityCamp2015「CVE-2015-4483解説」