Apacheの「AddHandler」設定にご注意を 33
ストーリー by hylom
これは知らなかった 部門より
これは知らなかった 部門より
insiderman 曰く、
ApacheでCGIやPHPスクリプトの実行などを行うために使用される設定ディレクティブ「AddHandler」には、セキュリティ上の懸念点があるという(ApacheのAddHandlerはセキュリティ上の懸念から使用すべきではない — Dマイナー志向)。
たとえばAddHanderで「.php」に対し「php5-script」を指定する場合、拡張子「.php」をPHPスクリプトとして実行させるよう指定しているように見えるが、実際には「aaa.php.html」など、ファイル内に「.php」という文字列が含まれているファイルすべてが対象になる。
これは、PHPスクリプトの実行が許可されているディレクトリ内にアップロードされたファイルを格納する、といったケースで問題になる。これ単体で脆弱性になるわけではないが、利用時には注意が必要だろう。
これって (スコア:2)
> これは、PHPスクリプトの実行が許可されている
> ディレクトリ内にアップロードされたファイルを格納する、といったケースで問題になる。
これって、 hoge.php がアップロードされても問題なんじゃない? hoge.exe とか置けるの?
なぜに公開されているディレクトリにアップロードされたファイルを置くの?
Re: (スコア:0)
ディレクトリ絞らずドキュメントルート全体で有効にしてる場合も多いと思われる。
だから、画像をアップロードさせて指定のディレクトリに保存して、URLでアクセスする、っていうのは割とよくあるケース。
その際に、xxxx.php.jpgというファイル名の画像をアップロードしてそのままの名前で保存したら問題起きるかもね、
普通はファイルタイプをチェックしてから保存するだろうけど。
Re: (スコア:0)
世の中には自分がやりたいことができると脇目も振らず突っ走って、”できました!”というヤツは結構居る。
見たことないならかなり幸せ者だ。
index.php.bak (スコア:1)
世の中にあるURLのケツに.bakとか.oldとか付けていったらいろんなものが見れそうですね.
Re: (スコア:0)
脆弱性が残った古いバージョンが.bakとして残っていたとか、ありそう…。
タレコミによれば「脆弱性じゃない」らしいから、ほとんどのところは対応しないだろうし、クラッキングがはかどりますね。
Re: (スコア:0)
ドットよりアンダースコア、_bak, _oldの方がよく使われてそうですね
Re: (スコア:0)
_index.html
とか
index.html_
index.html__
とか
良くやってた記憶が
Re: (スコア:0)
index.html# ってやると、URLを打ってもindex.html内アンカーへのリクエストと解釈するルールが優先されるから安全。
って聞いたんだが、本当なんだろうか。
何か見落としているんじゃないかと気になってしょうがない。
Re:index.php.bak (スコア:1)
http://example.com/index.html%23 [example.com]
これでリクエストできちゃいますよ。
スクリプトの実行が許可されているディレクトリ内にアップロードされたファイルを格納する (スコア:1)
これがそもそも間違いでは
ゲームするためにゲーム機を買うのが間違いであるように (スコア:0)
素人は好んで間違った方法を選ぶものなのですよ
こういう糞仕様は修正すればいい (スコア:0)
とっとと修正しないというのは
修正できない事情でもあるのかねえ
Re:こういう糞仕様は修正すればいい (スコア:5, 参考になる)
apacheにはMultiViewsという機能があり、
hoge.php.en -- 英語用のスクリプト
hoge.php.ja -- 日本語用のスクリプト
というように準備しておくと hoge.php にアクセスした時にウェブブラウザの言語設定に従って最適な方が実行されます。
末尾だけに限定するとこの仕組みが動かなくなります。
Re: (スコア:0)
そういう機能のためには
.php.ja
.php.en
を明示的に指定できるようにすればいいだけじゃないの
Re: (スコア:0)
hoge.php.enとかへの直接アクセスは禁止してもいいんじゃないですかね。
Re: (スコア:0)
hoge.en.php
hoge.jp.php
ではない理由は何故なんだろうか。
Re: (スコア:0)
中間判定になると単純に
en.ja.phpとかはじく表現がめんどくなるからじゃないかなーとか
Re:こういう糞仕様は修正すればいい (スコア:2, 参考になる)
まずこれを読め、常識を疑われているぞ。
http://ya.maya.st/d/201502c.html#d20150223 [ya.maya.st]
Re:こういう糞仕様は修正すればいい (スコア:1)
一度用意した設定項目は安易に削除できないなんてことは、ちょっと想像力があれば分かることだと思うけど。
それとも君は、今まで動いていたソフトがバージョンアップした途端に動かなくなっても良いの?
Re: (スコア:0)
この場合は、動かなくなる方がいいですね
Re: (スコア:0)
そう単純な話でもない、この挙動で脆弱性となるようなシステムは
いろんないみでやばい
Re: (スコア:0)
そんな危険なソフトウェアは今すぐ動かなくしてしまえ
Re:こういう糞仕様は修正すればいい (スコア:1)
Re:こういう糞仕様は修正すればいい (スコア:2)
でもMSがそれやったらゴカンセイガーって大騒ぎするんでしょ
Re: (スコア:0)
小学生なみの駄々
Re: (スコア:0)
その前に修正して欲しいのが、
> ファイル内に「.php」という文字列が含まれているファイルすべてが対象になる。
というところかね。
Re:こういう糞仕様は修正すればいい (スコア:1)
たしかに内でなく名ですね。
Re: (スコア:0)
////.php
//これでおっけー?
Re: (スコア:0)
その程度、holymフィルタを通せば文脈から十分意味が通じるので間題ないでしょ。
hyromファンは何もないと見つかるまで探してしまう修正があるんで、ある程度は入れておいてもらわないと。
Re: (スコア:0)
問題のない別の手段が用意されているから。
AddHandlerは、あえてこういう挙動を使いたいときに使うもの。
Apache使いなら常識かと思っていたがそうでもないんだな。
手元で確認すると (スコア:0)
MacでMacportsでApache+PHPをインストールして、ほぼデフォルト設定で使ってるけど xxx.php.txt はそのままテキストで表示される。
設定ファイル群を調べても、AddTypeはあるけど、AddHandlerやSetHandlerがない。
ついでにUbuntu 12.04のaptで入れたものをみると、ちゃんとFileMatchの正規表現でファイル名の末尾とマッチした時だけSetHandlerで有効になってる。
公式のレポジトリなんかからインストールしたものはこの問題に引っかからないような設定になってるのかな?
nginx派のワイ、高みの見物 (スコア:0)
しかし/cgi-bin以下を全てfcgiwrapにぶん投げてるもよう。
# どーでもいーよ。もう辞める会社だし。
# 引き継ぐ人が、客の書いたのも全部fcgi化するんじゃね?