BLOGTIMES
2011/08/15

phpMyAdmin の脆弱性と parse_str

  php  cve 
このエントリーをはてなブックマークに追加

ockeghem(徳丸浩)の日記で見つけたphpMyAdminの脆弱性が興味深かったのでメモ。これを読む限りではやっぱり phpMyAdmin は不特定多数の人がアクセスできるところに置かない方がいいということになるのでしょうね。実はこのサーバにも phpMyAdmin は置いてあるにはあるのですが、SSL+BASIC認証がかけてあって僕以外はアクセスできないようになっています。

phpMyAdminにおける任意スクリプト実行可能な脆弱性の検証 - ockeghem(徳丸浩)の日記

phpMyAdminのスクリプト実行の脆弱性(CVE-2011-2505CVE-2011-2506)について報告しました。
私がこの脆弱性に関心をもったきっかけは、スクリプトが実行される脆弱性とはどのようなものなのだろうという興味からでした。もちろん、ファイルインクルードとか、evalインジェクション、あるいはアップローダの脆弱性など、任意スクリプトが実行できる脆弱性はいくつかあるわけですが、phpMyAdminの脆弱性はどれでもないように思えたからです。

今回のポイントは parse_str でSESSION変数が汚染できるということでしょうか。あまり使ったことない関数だなと思って調べてみたら extract と同じくregister_globalsの時代の残骸みたいなものなので、あまりオススメされない関数みたいです。ちなみにextractの方は下記のように汚染されているデータには使ってはいけないと大きく警告が表記されているので分かりやすいのですが、こちらには何も書いていないというのも要注意なところかもしれません。

警告
extract() をユーザー入力 ($_GET や $_FILES など) のような信頼できないデータについて使用しないでください。 もし行う場合、例えば register_globals を信頼しているような古いコードを一時的に実行したい場合、 EXTR_SKIP のような extract_type の値が上書きされていないことを確認してください。そして php.ini の variables_order で定義されたものと同じ順で展開すべきであることに留意してください。

    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/4391
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン