2003年7月2日(水曜日)
TRACEメソッドをブロック
TRACE メソッドって URLScan のデフォルトの設定でブロックされるようになっているんですね。こんなログが残りました。
Client at 211.16.234.154: Sent verb 'TRACE', which is not specifically allowed. Request will be rejected.
ちょっとだけ IIS の株が上がりました。
※って、URLScan 自体 IIS のデフォルトではないのですけれど。
サニタイズ貫通(XSS大王シリーズ)
更新: 2003年7月4日
nifty.com 以下のドメインには「パレット」というサービスがあります。この名前からサービスの内容を想像するのはかなり困難ですが、要するに「絵が描ける掲示板」というようなコンセプトだったようです。つまりは HTML タグが使用できる掲示板です。
私は把握していなかったのですが、かつてはこれにも自由にいろいろ書けてしまったようで、6月30日に、パレットのタグ利用を制限した旨のアナウンスが出ています。
パレットでのタグの利用について
パレットでのタグの制限につきましてご案内が遅れましたこと、お詫び申し上げます。今回パレットを安全にご利用いただけるよう対応をおこない、一部のHTMLタグの記述を制限させていただきました。
この制限はブラウザでの発言の表示となります。ニュースリーダーでのアクセスでは、オリジナルのデータを取得することとなります。
詳細は「パレットの基本仕様」または「よく使うHTMLタグ」をご参照ください。
引き続き、みなさまに安心してご利用頂けるよう努力いたしますので、今後ともどうぞよろしくお願いいたします。
以上、https://com.nifty.com/forum/ より
というわけで、サニタイズが強化されたようです。
ところがどっこい、このサニタイズを貫通する書き方があって、なんと script要素を含む発言ができてしまうことが判明。
※具体的な方法は伏せておきます。ヒントとしては、サニタイズのルーチンが賢いのが逆に敗因になった感じ。特殊な制御文字なども不要ですし、やり方さえ分かれば誰でも気軽に書き込めます。
……どこかで高木さんも書いていたような気がしますが、「特定のタグだけのサニタイズ」って本当に難しいものですね。
なお、パレットの認証は Basic 認証で、Cookie は関係ありません。パレットだけを使用している分には、セッション Cookie の漏洩はありません。また、ここに書けるのは会員だけです。
ただし、会員がコミュニティなどにログインし、そのままパレットを閲覧すると危険な場合があります (これは Cookie ドメイン問題の影響)。また、普通に書いても img要素で外部の画像を参照することはできるので、Web バグを使用したり、ひそかに hpcgi1.nifty.com の画像を参照して Cookie を取得したりすることは可能です。
……などということをのんきに考えていましたが、実はそれだけではなく、Microsoft.XMLHTTP で Basic 認証の ID とパスワードをこっそり盗めるので、きわめて危険です。実際に Base64 エンコードされた ID:パスワードの組が画面に表示されることを確認、デコードしたら簡単に ID とパスワードが取り出せました。分かると思いますが、この値を密かに他のサーバに送出することも可能です。本気で洒落になりません……。
※Microsoft.XMLHTTP でパスワードが盗めるという情報はえむけいさんから頂きました。情報感謝です。これについての詳細は、高木さんによる「[memo:5237] XSS脆弱性によりBasic認証のパスワード情報が漏えいする (memo.st.ryukoku.ac.jp)」を参照してください。
※また、Mozilla などでも XMLHttpRequest を使用すれば全く同様にパスワードが盗めるようです。Flash や Java Applet でも OK なようで、スクリプト無効でも駄目っぽいです。この辺まとめてえむけいさん情報。
さらに恐ろしいことに、パレットには任意のファイルを添付ファイルとして指定できる機能があります。この添付ファイルは同じドメインのサーバ内に格納されます。そして発言には object要素を書くこともできてしまうので、ユーザのセキュリティ設定によっては任意の ActiveX コントロールを実行することさえできます。
※実際にこの方法で Flash を実行できることを確認しました。
これはスクリプト無効でも駄目なので、パレットには近寄らないのが無難でしょう。
2003-07-04 追記 : 「私は把握していなかった」と書きましたが、パレットに何でも書けてしまうということは公開当初から知られていたようです。「パレット裏マニュアル (forum.nifty.com)」に、パレットの発言をフレームにして他のリソースを丸ごと取り込む方法が紹介されています。今回の修正が行われる前は、文字通りの意味で何でも書けたようですね。
※FPROG 会員なのに気づいてなかった私って……。
振り返ればロボット
ログファイルが大きいなぁ、と思ったら UA 統計のトップを独走する dloader のお姿。とほほ……。
※アクセスの勢いが凄い上に、このサーチエンジンでは UTF-8 のリソースはまともに検索できないので、dloader の訪問には何のメリットもなくてひたすら
次点の ZyBorg って聞き慣れない名前でしたが、LYCOS のロボットなのですね。……ってこれもロボットかい。
……そして、そのようなログが残った後には必ず Google で "dloader" を検索した人の訪問があるのですね。笑える話なんですが、苦笑に近いなあ。
ジェネテリアを確実に合成する方法
リーヴェルファンタジア (www.amazon.co.jp)。いろいろやっていて、ジェネテリアを確実に合成する方法を発見しました。やり方はきわめて単純です。
- 電源投入直後にまっすぐエリックのところに行ってジェネテリアを合成する。
すると 100% 成功します。いわゆるひとつの「電源技」ですね。
ちなみに、そのまま続けると 3連続で失敗するのですが、ここで一度手頃なダンジョンに入ってランダムマテリアルを一つ拾い (ゴミでも可)、すぐに帰ってジェネテリアの合成をするとこれまた成功します。その後はちょっと安定させる方法が見つからず……。
この方法でジェネテリア 2個を確実に合成できます。そうしたらリセットして (ソフトリセットはたぶんできないのでハードウェアでリセット) 同じことを繰り返すと、失敗せずにジェネテリアを合成し続けられるというわけです。これはなかなか効率が良い感じ。
※ただし、ソフトウェアのバージョンやシリアルによって乱数系列が異なる可能性があるので、環境によっては再現しないかも知れません。
そんな感じでジェネテリア 10個ほど合成し、6月クリア。
関連する話題: メモ / ゲーム / リーヴェルファンタジア
- 前(古い): 2003年7月1日(Tuesday)のえび日記
- 次(新しい): 2003年7月3日(Thursday)のえび日記