安全研究

安全漏洞
TCLhttpd远程目录列表泄露漏洞

发布日期:2003-09-24
更新日期:2003-10-08

受影响系统:
TCLHttpd TCLHttpd 3.4.2
描述:
BUGTRAQ  ID: 8687

TCLHttpd是一款WEB服务程序。

TCLHttpd对用户提交的请求缺少正确处理,远程攻击者可以利用这个漏洞查看系统目录列表,导致信息泄露。

当用户请求TCLHttpd服务器上的目录时,会查找目录中的索引文件名,如没有找到就会使用dirlist.tcl脚本执行"fancy"目录列表,提供用户通过修改文件名,日期大小等参数来对文件进行排序。dirlist.tcl脚本虽然进行了一些过滤可防止部分目录遍历,但这个安全检查可以通过输入绝对路径名来绕过,通过查看目录信息可获得系统敏感信息。

<*来源:Phuong Nguyen (dphuong@yahoo.com
  
  链接:http://marc.theaimsgroup.com/?l=bugtraq&m=106444875624790&w=2
*>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

Phuong Nguyen (dphuong@yahoo.com)提供了如下测试方法:

http://abc.com/images/?pattern=/*&sort=name

建议:
厂商补丁:

TCLHttpd
--------
使用如下补丁:

*** dirlist.tcl 4 Apr 2003 04:10:54 -0000       1.10
--- dirlist.tcl 24 Sep 2003 20:32:28 -0000
***************
*** 174,180 ****
      set path [file split $dir]

      # Filter pattern to avoid leaking path information
!     regsub -all {\.\./} $pattern {} pattern

      set list [glob -nocomplain -- [file join $dir $pattern]]
      if {[llength $path] > 1} {
--- 174,181 ----
      set path [file split $dir]

      # Filter pattern to avoid leaking path information
!     regsub -all {\.+/} $pattern {} pattern
!     set pattern [string trimleft $pattern /]

      set list [glob -nocomplain -- [file join $dir $pattern]]
      if {[llength $path] > 1} {

浏览次数:3101
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障