2016年9月10日土曜日

Windows向けXAMPPにあったDoSの脆弱性

去年の7月3日にIPAにWindows向けXAMPPのDoSの脆弱性を報告していたのですが、1年経っても開発元から一切連絡がないようなのでIPAに情報非開示依頼の取下げ申請をしてみました。

そして3日前の9月7日にその申請が通ったので、この記事ではその脆弱性の詳細について書いてみたいと思います。

と言っても今回の脆弱性はURLを少し弄るだけで攻撃が成功してしまうので、PoCと言えるほどのものはないです。

この脆弱性が発生していたのはPHP 5.6.8がバンドルされていたWindows向けXAMPPで、幸いにもそのバージョンのインストーラーがまだ公開されているようなので時間がある人はぜひ自分の環境で試してみてください。


再現方法ですが、 http://vuln.jp というURLがあるとすると、次のような形にURLを書き換えてそのURLにアクセスをするだけで再現ができます。

https://vuln.jp:80

スキームをhttpからhttpsに変えていることと、ポート番号として80番ポートを指定しているところがポイントとなっています。

結果として、以下の動画のようにWindows向けXAMPPが再起動を繰り返します。

https://1drv.ms/v/s!AhSdI1CzfRRpkg6-3e3I-INWqAmj

今回はWindows 10を使って動画を撮影している関係で自動再起動機能が働いて攻撃が成功していることが若干分かりにくいのですが、Windows 7では異常終了した際の「Apache HTTP Server は動作を停止しました」というダイアログを閉じない限り自動再起動は行われません。

上記のことから、Windows 7では一度でもこの脆弱性を悪用されてしまうと、サーバ管理者が対応を行うまでApacheを介してのサービス提供が不可能な状態になります。

そもそもWindows向けXAMPPを使ってグローバルにサイトを公開している人はほとんどいないと思うので影響範囲は大したことがなさそうですが、このような簡単な方法でDoSの脆弱性が突けてしまうのは少し面白かったです。

ちなみにこの脆弱性は現行バージョンのWindows向けXAMPPでは既に修正済みのようですが、修正後もIPAには開発元から一切連絡が来なかったそうです(˘⊖˘)