Namazu-devel-ja(旧)


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

Namazu v2.0.7 にクロスサイトスクリプティング脆弱性



Namazu Project セキュリティご担当様:

私ども産業技術総合研究所のセキュリティ脆弱性研究におきまして、ウェブア
プリケーションの安全性について調査しておりましたところ、Namazu v2.0.7 
にクロスサイトスクリプティング (cross-site scripting) 脆弱性と呼ばれる
セキュリティ上の問題点が存在していると推察されましたので、このことにつ
いて技術的な観点からお知らせいたします。


■問題点
========

NamazuをCGIとして利用する「namazu.cgi」には、HTMLを動的に生成する際に
メタキャラクタの適切なエスケープ処理を怠っている個所が残存しています。

具体的には、検索結果の画面の末尾に現れる「ペイジ: [1]」の部分で、パラ
メタ「lang」として与えられた文字列を出力する個所です。

検証実験として下のURLにアクセスしてみてください。

  http://www.namazu.org/cgi-bin/namazu.cgi?query=test&whence=1&lang="><S>test</S>&idxname=www.namazu.org.ja

その結果を図1に示します。矢印が指す部分で、与えた文字列「<S>test</S>」
の「<S>」がHTMLタグとしてブラウザに解釈されていることが確認されます。

図1:「[1]」のリンク先URL出力部にクロスサイトスクリプティング脆弱性
    http://SecurIT.etl.go.jp/confidential/cross-site-scripting/namazu/fig/fig-1.gif

また、他の検証例として下のURLにアクセスしてみてください。

  http://www.namazu.org/cgi-bin/namazu.cgi?query=test&whence=1&lang="><SCRIPT>alert(document.domain)</SCRIPT>&idxname=www.namazu.org.ja

アラートボックスが現れ、スクリプトが実行されてしまうことを確認できます。

このサイトで使用されているNamazuのバージョンはv2.0.5のようですが、最新
版のv2.0.7を入手して検証してみたところ、v2.0.7でも同じ現象が確認されま
した。


■脅威
======

cookieを発行しているサイトが、同じドメイン上でnamazu.cgiを運用すると、
この脆弱性によって、そのcookieが漏洩する危険にさらされることになります。

cookieがセッション管理に用いられている場合には、cookieを盗まれることで
セッションを乗っ取られてしまい、個人情報が漏洩するなどの結果を招く場合
があります。

クロスサイトスクリプティング脆弱性がもたらす脅威の詳細について、参考文
献[1][2][3][4]などをご参照ください。


■改善案
========

問題の生じた個所は、

   <a href="....&lang=XXXX&....">

の「XXXX」の部分にありました。一般に、「"」で括る部分に文字列を挿入し
て出力する場合には、その文脈では文字「"」はメタキャラクタなのであり、
「&quot;」などにエスケープする必要があります。

メタキャラクタのエスケープ漏れは、思わぬところに残存しているものです。
必要最小限の変数に対してエスケープフィルタを通すという対策方法よりも、
すべての文字列出力処理(タグデリミタや引用符そのものを出力したい場合を
除く)においてエスケープフィルタを通すよう記述するのが確実な対策となる
と思います。


■参考文献
==========

[1] 「クロスサイトスクリプティング攻撃に対する電子商取引サイトの脆弱さ
    の実態とその対策」
    http://securit.etl.go.jp/research/paper/css2001-takagi-dist.pdf

[2] 情報処理振興事業協会セキュリティセンター 緊急対策情報
    Webサイトにおけるクロスサイト スクリプティング脆弱性に関する情報
    http://www.ipa.go.jp/security/ciadr/20011023css.html

[3] CERT Advisory CA-2000-02: Malicious HTML Tags Embedded in Client
    Web Requests
    http://www.cert.org/advisories/CA-2000-02.html

[4] Microsoft: Information on Cross-Site Scripting Security
    Vulnerability 
    http://www.microsoft.com/technet/security/crssite.asp


以上。
--
高木 浩光@独立行政法人産業技術総合研究所
http://staff.aist.go.jp/takagi.hiromitsu/

〒305-8568 茨城県つくば市梅園1-1-1中央第2
独立行政法人 産業技術総合研究所
情報処理研究部門 ハイエンド情報技術グループ 
インターネットアプリケーションセキュリティ脆弱性研究班
SecurIT@xxxxxxxxxxxx
http://SecurIT.etl.go.jp/