Namazu-devel-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: クロスサイトスクリプティング脆弱性 (ver2.0.10)



竹迫です。

花井さん、貴重なご報告どうもありがとうございました。

"NOKUBI Takatsugu" <knok@xxxxxxxxxxxxx> wrote:
> 
> >> cgiの呼び出しにて、存在しないインデックスを
> >> http://〜/cgi-bin/namazu.cgi.exe?idxname=hoge
> >> と指定すると、下記のようなエラーが返ってきます。
> >> 
> >> namazu: D:\namazu\var\namazu\index/hoge/NMZ.head: No such file or directory
> >> namazu: D:\namazu\var\namazu\index/hoge/NMZ.body: No such file or directory
> >> namazu: D:\namazu\var\namazu\index/hoge/NMZ.foot: No such file or directory

下記環境の Namazu 2.0.10 for Win32 にて、問題の現象を確認しました。

* IIS4.0 / WindowsNT4.0 Server SP6a + hotfix
* IIS5.0 / Windows 2000 Server SP2  + hotfix
→ 標準エラー出力が、ブラウザに表示されてしまう。

* AN HTTP 1.39f / WindowsNT4.0 Workstation SP6a + hotfix
→ 標準エラー出力は、ブラウザに出力されない。

今のところ、私の試した限りでは、IIS4.0/5.0 特有の問題のようです。

>   おそらく read_headfoot() 等から nmz_warn_printf() を呼び出して出力さ
> れたものだと思います。これは stderr に出力する関数なのですが、Unix で 
> apache 等で利用している分には、stderr の出力は HTTP の出力には反映され
> ない(error.log 等に出力される)ので問題にならないようです。
>   IIS は違うようですが、apache 以外でも同様の挙動をする実装がないとは
> いいきれません... ということで確かに問題ですね。

確かにその通りですね。

>   今回は既に流れてしまったので、なんとか設定レベルで解決できる方法を模
> 索したいところです。

とりあえず、以下のように namazurc の設定ファイルで
Template を指定しておけば、この問題は回避できると思います。

Index         c:/namazu/var/namazu/index
Template      c:/namazu/share/namazu/template

または

Index         c:/namazu/var/namazu/index
Template      c:/namazu/var/namazu/index

ただし、idxname の値によって、参照する Template を切り分けている場合には
この手法は使えません。

>   IIS はあまり使ったことがないのでよくわかりませんが、どなたか有効そう
> な workaround をご存知ないでしょうか?

少しややこしいことに、IIS 4.0 のデフォルトの状態のままでは、
CGI からプロセスを呼び出すときに、以下の問題があるようです。

* [IIS] HOWTO: CGI プロセスから子コンソールを作成する方法
  http://www.microsoft.com/JAPAN/support/kb/articles/JP194/9/48.ASP

確実な方法が無いかどうか、もうちょっと調べてみます。

取り急ぎ、ご報告まで。

--
  広島市立大学 情報科学部 情報機械システム工学科 知能ロボット講座
     竹迫 良範 <takesako@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>