[PR]小規模ECサイトに最適なWAF、SiteGuard Lite
徳丸浩の日記
2007年12月06日 イメージコピー版イメージファイト
_うまく動いてないようですが
IE仕様?をついた画像ファイルを使用したXSSというのがあります。なかなか決定的な対策がなく、私も困っています。画像の再コンバートとか、画像のファイルヘッダを確認するのも。コメントとかカラーパレットとかで、決定的なものがありません。
が、ちょっと作ってみたのが、
1.空の画像を作って
2.ユーザのアップロードしてきた画像を空の画像にコピーする
これだといけそうな気がしたので作っていました。
[PHPで画像XSSの一味変わった対策より引用]
えーっと、さっそく試してみましたが、意図通りに動いていないようです。パレットにJavaScriptを仕込んだ画像を食わせると、出力された画像にもJavaScriptが残っていました。
「JavaScriptを埋め込んだ画像を作ってみました」で紹介した画像だとJavaScriptが消えるのですが、これはJavaScriptを仕込んだパレットが実際には利用されていない色だったからのようで、そのパレットの色も使うようにすると、JavaScriptがそのまま残りました。下の画像がテストに使ったものです*1。

また、フルカラーのBMPの画像本体にJavaScriptを仕込んだ場合も、そのまま出力されました。この方式では、フルカラーBMPのイメージ本体に仕込まれたJavaScriptは、原理的に除去されないように思います。

以上、ご報告まで。がんばってください。
*1 実際には、はてブのはせがわさんの指摘のように、MS07-057を適用したIEの場合、JavaScriptが動くのはBMPのみですが
本日の日記はツッコミ数の制限を越えています。
本日のリンク元
その他のリンク元
- https://www.google.co.jp/ ×8
- http://www.tokumaru.org/ ×3
- http://search.fenrir-inc.com/?q=sniffing BMP XSS 脆... ×1
検索
- 上手く動いて_ ×1
[PR]小規模ECサイトに最適なWAF、SiteGuard Lite
HASHコンサルティング株式会社
最近の記事
- 2011年08月30日
- 1. RSSフィードをリダイレクトします
- 2011年07月01日
- 1.
- 2011年03月29日
- 1. PDO/MySQL(Windows版)の文字エンコーディング指定の不具合原因
- 2011年03月22日
- 1. PHP5.3.6からPDOの文字エンコーディング指定が可能となったがWindows版では不具合(脆弱性)あり
- 2011年01月27日
- 1. CSRF対策のトークンをワンタイムにしたら意図に反して脆弱になった実装例
- 2011年01月04日
- 1. escapeshellcmdの危険な実例
- 2011年01月01日
- 1. PHPのescapeshellcmdの危険性
- 2010年10月03日
- 1. 問題点の概要
- 2010年09月27日
- 1. 文字コードに起因する脆弱性を防ぐ「やや安全な」php.ini設定
- 2010年07月25日
- 1. ツッコミSPAM対策で、ツッコミ抜きのRSSフィードを用意しました
- 2010年07月01日
- 1. ぼくがPDOを採用しなかったわけ(Shift_JISによるSQLインジェクション)
- 2010年04月06日
- 1. PROXY(プロキシ)経由でのDNSリバインディングと対策
- 2010年04月05日
- 1. JavaアプレットのDNSリバインディングはJRE側で対策済みだった
- 2010年03月29日
- 1. DNSリバインディングによる無線LANパスフレーズの読み出しに成功
- 2010年03月25日
- 1. DNSリバインディングによるルータへの侵入実験
- 2010年02月22日
- 1. ケータイtwitter(twtr.jp)においてDNS Rebinding攻撃に対する脆弱性を発見・通報し、即座に修正された
- 2010年02月12日
- 1. かんたんログイン手法の脆弱性に対する責任は誰にあるのか
- 2010年01月18日
- 1. iモードブラウザ2.0のXMLHttpRequestでPOSTデータの扱いが困難になった
- 2009年10月19日
- 1. quoteメソッドの数値データ対応を検証する
- 2009年10月14日
- 1. htmlspecialchars/htmlentitiesはBMP外の文字を正しく扱えない
- 2009年10月09日
- 1. htmlspecialcharsのShift_JISチェック漏れによるXSS回避策
- 2009年09月30日
- 1. htmlspecialcharsは不正な文字エンコーディングをどこまでチェックするか
- 2009年09月24日
- 1. SQLの暗黙の型変換はワナがいっぱい
- 2009年09月18日
- 1. 文字エンコーディングバリデーションは自動化が望ましい
- 2009年09月14日
- 1. 既にあたり前になりつつある文字エンコーディングバリデーション
- 2009年08月05日
- 1. 携帯JavaScriptとXSSの組み合わせによる「かんたんログイン」なりすましの可能性
- 2009年03月28日
- 1. IPAは脆弱性の呼び方を統一して欲しい
- 2009年03月27日
- 2009年03月11日
- 1. U+00A5を用いたXSSの可能性
- 2008年12月22日
- 1. JavaとMySQLの組み合わせでUnicodeのU+00A5を用いたSQLインジェクションの可能性
徳丸さんはわかってらっしゃると思いますが、念のために整理してフォローしておきますと、MS07-054適用以前はBMP/PNGでこの手のXSSが可能でしたが、MS07-054の適用でPNGも大丈夫になり、BMPのみが危険となりました。とはいえ、GIF/JPEG/PNGであってもContent-Typeがファイル形式に合致していない場合はファイルの内容のsniffが行われ、HTMLと解釈されることはあり得ます。
はせがわさん、フォローありがとうございます。えーっと、MS07-054ではなくてMS07-057ですよね(MS07-054はMSN Messengerなどの脆弱性)。
Content-Typeに加えてマジックバイトのチェックも必要ですが、イメージをコピーする方式ですと、画像としての形式は整っているはずなので当然ながらマジックバイトも正しいものが入っているという前提ですよね。
ということで、MS07-057が適用されている場合、問題が残るのはBMP形式のみです。はてブの方には書きましたが、主要ブラウザがPNG形式に対応している現状ではBMPに対応しなければならない理由はほとんどなく、BMPには対応しないという考え方も現実解としてはあると思います。