8. 一般企業のXSSに対する認識の甘さを憂う


Home -> 雑用 -> 雑用メモ -> [8. 一般企業のXSSに対する認識の甘さを憂う]

2015/04/19 作成
一切推敲していない糞文章故、大変読み難い代物となっております。

要約

キヤノン電子テクノロジー。あんたらのセキュリティ意識、ガバガバすぎやしませんかね

仮にも企業ならちゃんと対策しろ
さっさとチェックサムくらい何なり付けて変なのは弾くようにしろ
それすらできないとか無能かよ

概要

某所でほんの少し話題になっていた以下のサイト。

このサイトが何だかガバガバそうな雰囲気を醸し出していたので、先日少々調べて以下のようなものを書いた。

それから数日が経ったものの一向にシステムが改善される気配がないので行動に出てみた。
結局のところXSSに限らず甘いシステムを直さないような企業もあるんだなあという話。

一覧

  1. [2015/04/11] 基本調査
  2. [2015/04/13] 追加調査
  3. [2015/04/15] 最終確認と報告
  4. [2015/04/16] 1日経過
  5. [2015/04/17] 2日経過
  6. [2015/04/18] 3日経過
  7. [2015/04/19] 4日経過
  8. まとめ

[2015/04/11] 基本調査

投稿時のリクエスト仕様がどんな感じになっているか調べた。結果は以下の記事を参照。

ここまでの調査で作品投稿時のパラメータは以下のような仕様になっていることが分かった。

[2015/04/13] 追加調査

まだ細かい仕様までは確認していなかったのでいろいろと確認しておいた。

添削投稿の仕様

普通の作品投稿とはパラメータが若干異なる。

投稿要求に対する応答の仕様

新規の投稿や添削の投稿のリクエストを送ると決まった形の応答が得られる。

添削の投稿に対する応答の仕様 画像00: 添削の投稿に対する応答の仕様

応答の本文はいつも「SuccessShujiSakuhinRegistration」である。
破損したファイルを送ろうが変なファイルを送ろうが「SuccessShujiSakuhinRegistration」が返ってくる
しかもマジックバイトを見るなどして行われるべきファイル内容の妥当性確認が一切なされていない
さらにそれら不正なファイルも投稿の一つとしてきちんと受理されて一覧に表示される。ここ重要。

実はこのことに気付いたのは先の記事を書いていた折に間違って破損したファイルを送信してしまったことに由来する。
画像としては破損しているものの投稿一覧には投稿の一つとして表示される。

不正なファイルの投稿

上記のような"不具合"のお蔭でPNG以外も投稿できてしまう。
ブラウザがどう認識するかは別として、向うのサーバにGIFでも動画でもexeでも送り付けられる。
しかもそれらは確実に向うのサーバ上に保存され、Web上から誰でも参照が可能な状態となる。

Webブラウザへの応答の仕様

投稿された作品の閲覧ページをWebブラウザから覗いたときにどのような応答が得られるか。
特に作品自体のファイルがどのように返ってくるかで、このXSSの性質は大きく異なってくる。
そこで試しにGIFで投稿した場合の応答を検証してみた。

不正なファイルに対する応答の例 画像01: 不正なファイルに対する応答の例

どうやらファイル形式の判別は表示時もまた行っていないようだ。
応答は必ず「Content-Type: image/png」か「Content-Type: image/jpeg」のどちらかとなる
この時点でIE6やMS07-057未適用の旧IEではXSSが成立してしまうことがわかる。
上記条件下では応答のマジックバイトがBMのときContent-Typeに依らずコンテンツの内容を見て表示方法が決められる。
もし応答本文がHTMLとして解釈可能なら「Content-Type: image/png」は完全無視されてスクリプトが動作し、XSSが容易に成立する。
詳しくは以下の記事を参照のこと。

[2015/04/15] 最終確認と報告

XSS動作の最終確認

何やかんやで本当にXSSが動作するのか確認していなかったので確認することにした。
まずテスト用スクリプトを仕込んだ不正な画像ファイルを投稿し、そこに旧IEでアクセスすれば確認できる。

といっても現状では旧バージョンのIEでないと動作しないので確認用の環境を用意しなければならない。
別にそれ用のソフトウェアを用いてもいいが、完全に旧バージョンをシミュレートできているわけではない。
ありがたいことに、こういう時のために公式に配布されている仮想環境があるので、それを用いて旧IEのテストを行う。
今回はVirtualBoxを用いる。詳細は以下。

古いIEでないとXSSは動作しないので、IE6+XPを用いて確認を行った。 VirtualBox用のzipを展開するとファイルが1つだけ出てくるので、それを規定のソフトウェアで開くといい感じに設定してくれる。
起動すると以下のような感じ。

旧IE検証用仮想環境 画像02: 旧IE検証用仮想環境

スタートメニューからIE6を起動、先程アップロードした画像にアクセスすると…

旧IEにおけるXSS動作の様子 画像03: 旧IEにおけるXSS動作の様子

はい、XSS成功。
上の画像のURL部分に注目してほしい。ちゃんとAir書道のドメインから(表向き)PNGを読み込んでいることが分かるだろう。
(注釈:この画像は既に削除されている。)

因みに、このXSSが動作する条件を満たすIEのシェアは2015年1月時点で2.22%(1.30%+0.92%)もあるらしい。
つまりさっきのURLを適当な所に貼っておいたらそれを踏んだ100人のうち2人くらいはXSSの餌食となる。
割と危ない。

XSSの報告

という訳でこの件を運営側に報告しておく。
GoogleなどのようにXSS報告に対して何らかの報酬を支払う企業も多いので、そういった展開を期待していない訳でもなかった。
こんなショボいバグではGoogleのように3000ドルくれるなんて事は無いにしろ、何らかの対応はあって然るべき。
一体どんな対応をするのか見物である。

問い合わせフォームがあったのでそこから連絡。文章は糞みたいなものだが分かればよい。

XSS脆弱性の報告 画像04: XSS脆弱性の報告

ちゃんと返信もしてくれるように書いておいた。
2015/04/15 02:43、問い合わせ完了。

問い合わせフォームの送信 画像05: 問い合わせフォームの送信

マトモな企業なら午前中にメールを確認して近いうちに返信などの"誠意ある対応"をしてくれるはずだ。

「お知らせ」の更新とXSSサンプルの削除

メールも届かないまま午後になった。
この頃、Air書道のTopページにある「お知らせ」が突如として更新された。
内容は「利用規約のご一読を」といった感じ。弁護士関連で不適と判断される投稿があったことが原因と考えられる。
遅くとも12:55にはお知らせが更新されていた。02:43時点では更新されていなかったので、この間のどこかで更新されたことになる。

その「禁止事項に当たる作品」は少なくとも2015/04/12時点までは生き残っていた。
このことから察するに、問題に対処してから何らかのアナウンスが発せられるまでに3日程度の猶予が必要なようだ。

また同じ頃に確認したところXSS動作の最終確認に用いたファイルも削除されていたので、問い合わせには一通り目を通しているらしい。
だったらメールくらい寄越せよ、と。せっかく連絡してやったのに。しれっと無言で削除とはこれ如何に。
しかし今回だけは寛大な精神で3日間くらいの猶予を設けておくことにした。
これを超えても連絡を寄越さなかったら何かしてやろうかと画策し始める。

ただ、1つ別の仮説としてXSS画像を「禁止事項に当たる作品」と称してこのお知らせを更新した可能性もある。
もしそうなら連絡を寄越さないのは尚更許せない。問い合わせのメアド欄は一体何のためにあるのか。

[2015/04/16] 1日経過

2015/04/16 02:43。メール来ない。相変わらず何の対応も無し。糞すぎ。

[2015/04/17] 2日経過

2015/04/17 02:43。メール来ない。

[2015/04/18] 3日経過

2015/04/18 02:43。とうとうメールは来なかった。

[2015/04/19] 4日経過

2015/04/19 02:43。やっぱりメールは来なかった。

ガバガバシステムを放置するとこうなる 画像06: ガバガバシステムを放置するとこうなる

ガバガバシステムを放置するとこうなる その2 画像07: ガバガバシステムを放置するとこうなる その2

それ見たことか!

まとめ

報酬どころか礼の言葉すら寄越さない、更にはシステム修正せずそのままって、フザケンナよ!


管理人Twitter: @su_te_ak/◆mmft4k9vgtL6
要望等はTwitterへ

Home -> 雑用 -> 雑用メモ -> [8. 一般企業のXSSに対する認識の甘さを憂う]

ここ以降は鯖が勝手に付加するやつです