セキュリティ

Javaの「すでに最新」を信用してはいけない

その理由は アップデート情報の取得の途中で失敗しても「すでに最新」と言い張る Java6u16以前にはアップデートに失敗するバグがある アップデート情報ファイルの更新ミスが多い(前科の一例) ちなみに、昨日の時点でのアップデート情報ファイルには Java 6…

JIRAサーバがやられた

ApacheのJIRAサーバがやられたらしい。 https://blogs.apache.org/infra/entry/apache_org_04_09_2010 パスワードを変更しろというメールが来た。

Oracle+JavaでPreparedStatement

安全なSQLの呼び出し方 非常に細かい所なんですが、Oracle + JDBC の場合は、文字列リテラルを使った式とプレースホルダを使った式が等価では無い場合があるので、プログラムを書き換える時には注意が必要です。具体的な事例として java-houseでの例を紹介し…

HTTPヘッダインジェクションを使用したXSSの可能性について考える

恐らく、現時点でMIcrosoftがサポートを継続しているIEでは不可能ですHTMLの属性値として埋め込まれるスクリプト(onXXXX 系のイベントハンドリング用の属性値)は、metaもしくはHTTPヘッダの Content-Script-Type で記述言語を指定する(デフォルトはJavaScrip…

MFSA 2009-25(CVE-2009-1834) の調査で明らかになったこと

バグの詳細が公開されているのでもう書いてもいいでしょう。 FirefoxのIDNの処理で unassigned code point の文字が含まれている部分をpunycode に変換するべきなのに変換せずにそのままにしていたのが主原因 影の犯人はWindowsのフォント。unassigned code …

無限に増殖するJavaScript

自分が新しいブラウザを入手すると必ず試す事の1つに 自己増殖しながら無限に document.write() をするスクリプトを使った メモリ不足時の動作のテストがあります。 (ループではないのが意地の悪い所)docomo の携帯の JavaScript ってこういう意地悪なス…

Cambria Mathフォントを使用したUI偽装

Office製品(又はPower Point Viewer)に付属する数学記号フォントのCambtia Mathには、次のような特徴があります。 BMP外のコードポイントの文字(サロゲートペアで表現される文字)のグリフがある 数学記号のグリフが充実している(他のフォントは持っていない…

J2EE仕様の問題について考える

Windows-31JがUTF-7によるXSSの要因になることはよく知られるようになって来ましたが、依然としてMS932やWindows-31Jが使われるWebアプリケーションは生産され続けています。その原因の1つはJ2EEのサーブレット及びJSPのAPIの仕様の欠陥にあるのではないか…

UTF-8の動的コンテンツをShift_JISと誤認させることで成立するXSS

文字コード指定の無いUTF-8のコンテンツでは、ブラウザ側の文字コード自動認識でシフトJISと誤認させることで、HTMLの特殊文字を一切使わずにXSSが成立する場合があります。 原理 UTF-8 では1文字が3バイトマッピングされる場合があります。そこで、これを…

アップデートに失敗しても「このシステムはすでに最新...」と表示する問題

WindowsでコントロールパネルのJavaの設定画面からアップデートをしようとすると、実際にはアップデート失敗なのに「最新の状態です」「このシステムはすでに最新...」と表示される場合があります。Sunに出したバグレポートの要旨は以下の通り control panel…

ウイルスバスター2009

http://d.hatena.ne.jp/ripjyr/20090717/1247832147 もしかして <iframe src="file:///C:/Windows/System32"> とか <iframe src="file:///C:/Program%20Files/Trend%20Micro/Virus%20Buster"> って書いたページを開くだけでブラウザが強制終了させられてしまうなんてことはないんでしょうか?</iframe>

EV SSLの組織名が省略表示される

先日のエントリ でドメイン名偽装と見間違えたと書いたJPCERTのページですが、Firefox3.5でアクセスすると、組織名が省略表示になってしまいます。 一定の文字数で強制的に省略しているように見えます。Firefox3の表示とどちらがよかったんでしょう? 自分で…

UTF-16の動的コンテンツにおけるXSS

charset指定を明示しない動的なUTF-16のHTMLでは、 動的に生成した部分に1バイトで文字を表現できるエンコーディングで HTMLのタグと認識できるようなバイト列を注入することでXSSが成立する。例:UTF-16(BE,BOMなし)で生成されるレスポンスが <html><head> <title>ユーザー入</title></head></html>…