CVE-2002-1825
CVSS6.4
发布时间 :2002-12-31 00:00:00
修订时间 :2008-09-05 16:31:36
NMCO    

[原文]Format string vulnerability in PerlRTE_example1.pl in WASD 7.1, 7.2.0 through 7.2.3, and 8.0.0 allows remote attackers to execute arbitrary commands or crash the server via format strings in the $name variable.


[CNNVD]OpenVMS WASD HTTP服务程序多个远程漏洞(CNNVD-200212-145)

        
        WASD VMS超文本服务是一款使用在OpenVMS系统上流行的HTTP服务程序。
        WASD HTTP服务程序存在多个漏洞,远程攻击者可以利用这些漏洞进行访问系统文件,获得系统敏感信息,以SYSTEM权限执行任意指令等攻击。
        * 默认情况下"Tree"内部脚本允许生成目录树,通过提交 http://webserver/tree/ 请求,可以获得整个目录树。提交统配符'*.*'可导致获得全部文件信息。
        (相关文档:http://wasd.vsm.com.au/ht_root/doc/env/env_0400.html#43 )
        * 默认情况下,向WASD HTTP服务程序提交类似如下的请求,可以造成目录遍历攻击:
        http://webserver/dirname/*.*
        (相关文档:http://wasd.vsm.com.au/ht_root/doc/env/env_0400.html )
        * upd脚本存在目录遍历漏洞,提交http://webserver/upd/dirname/请求可以泄露当前文件信息。(相关文档:http://wasd.vsm.com.au/httpd/-/updhelp.html )
        * WASD HTTP服务程序存在多个搜索脚本,可以用来搜索所有文档。(相关文档:http://wasd.vsm.com.au/ht_root/doc/env/env_0700.html#97 )
        * 默认情况下server root可访问,系统中文档目录就是服务程序主ROOT目录,包含多个配置文件,脚本,可执行文件,直接访问这些文件可以获得环境变量信息,配置等敏感信息。(相关文档:http://wasd.vsm.com.au/ht_root/doc/htd/htd_0600.html#98 )
        * 系统访问控制规则可以很容易的绕过。
         如httpd$map.conf配置文件包含如下:
        
         pass /ht_root/wwwroot*
         fail /ht_root/*
         fail /-/*
         在上面这种情况下,服务程序主目录是ht_root,而文档目录是WWWROOT。"fail"规则可以通过如下访问绕过:
        
         http://theserver/ht_root/wwwroot/-/*.*
        * 文档ROOT位置容易判别:
         文档ROOT位置可以方便的通过"where"脚本获得(相关文档:http://wasd.vsm.com.au/ht_root/doc/htd/htd_2100.html#364 )
         即使"where"脚本没有启用,"404 not found"错误页面提供的消息也会返回文档ROOT位置。错误页面会返回包含如下类似的信息:
        
        
        * 全部WEB配置文件可以方便的获得:
         Web服务程序配置信息存放在ht_root/local/httpd$map.conf文件中,一般由如下规则保护:
        
         fail /ht_root/local/*
        
         但是可以通过如下方法绕过获得配置文件信息:
        
         http://theserver/ht_root/wwwroot/-/local/httpd$map.conf
         在一台机器上测试,既然没有"fail"规则,配置文件可以通过如下方法获得:
        
         http://theserver/local/httpd$map.conf
        * 所有WEB服务程序LOG可以方便获得:
         如果配置文件中设置如下规则:
        
         fail /ht_root/log/*
         可以通过如下请求获得日志信息:
        
         http://theserver/upd/ht_root/src/-/log/
        
         如果日志由ACLs保护,但你有系统上一个合法用户帐户,可以通过如下方法获得:
        
         $ show log HTTPD80$REQUEST
         "HTTPD80$REQUEST" = "08 11:56:42.200.430.5287.0.9000.http://theserver:
         80.ip.address.of.caller.GET /filename"
        * "tree"脚本可以显示隐藏的目录信息:
         服务程序日志一般存放在/ht_root/log/server/目录下,由于一般由"fail"规则保护,所以子目录一般都隐藏,不过通过"tree"脚本可以访问隐藏目录信息:
        
        
http://theserver/tree/ht_root/
        * CGI脚本列表可以方便的获得:
         通过提交
http://theserver/cgi-bin/*.* 访问不能获得CGI脚本列表,但是一般脚本都存放在ht_root/script/或者ht_root/script_local目录下,如果配置文件阻止这些目录访问,一般可以通过如下访问绕过限制获得CGI列表:
        
        
http://theserver/ht_root/wwwroot/-/script_local/*.*
         各个用户的CGI脚本,可以运行URL:
        
        
http://theserver/~username/cgi-bin/scriptname
        
         一般访问如下脚本会失败:
        
        
http://theserver/~username/cgi-bin/*.*
         但是你可以通过提交如下请求获得CGI脚本列表:
        
        
http://theserver/~username/xxx/-/cgi-bin/*.*
        
        
http://theserver/~username/.../*.com?search=$
        * CGI脚本源代码可以获得:
         通过上面方法获得CGI脚本列表,可以点击相关连接获得脚本源代码,一般情况下脚本连接如如下形式:
        
        
http://theserver/ht_root/wwwroot/-/script_local/scriptname
        * OpenVMS系统文件可以读取:
         部分站点中,配置规则设置如下,只允许访问选择性的系统部分文件:
        
         pass /sys$common/syslib/* /sys$common/syslib/*
         不过其他系统文件可以通过如下方法获得:
        
        
http://theserver/sys$common/syslib/-/sysmgr/systartup_vms.com
        * 用户HOME目录可以读取:
         一般用户目录映射为
http://theserver/~username/web/ ,如果OpenVMS保护和ACL设置不正确,可能可以以如下方法访问:
        
        
http://theserver/~username/-/*.*
         不过有设置如下的映射规则会返回错误:
        
         pass /*/-/* /ht_root/runtime/*/*
         但是可以通过如下方法访问:
        
        
http://theserver/~username/x/--/*.*
         这里"--"类似"../.."。
        
        * 默认情况下CGI脚本可执行:
         默认情况下CGI脚本以http$server用户进程运行httpd.exe或者httpd_ssl.exe,这是个高权限用户,如果某个CGI脚本存在漏洞,可导致整个系统被控制。
        
        * 默认CGI脚本存在多个漏洞:
         某个脚本如果在VMS ACL运行的情况下可以写任意文件内容到服务器上,这个漏洞可以导致获得SYSTEM权限。
        
         运行cgi_process.com程序,可以泄露大量系统相关信息给攻击者。
        * PerlRTE_example1.pl脚本存在格式字符串漏洞,问题存在于printf ("$name=\"$ENV{$name}\"\n");调用上,这个$name变量由用户输入,但没有进行充分过滤。攻击者提供恶意格式串可导致覆盖内存任意地址,造成拒绝服务,或者执行任意代码。如
http://wasd.vsm.com.au/plrte/PerlRTE_example1/%25x%25x%25x
        * print.com CGI脚本可以打印任意文件:
         默认情况下print.com CGI脚本允许从远程打印文件到服务器上,不过这个脚本访问受IP限制如:
        
         $ HPRINTS_ALLOWED = "131.185.250.*"
        任何这个IP地址范围内的用户可以打印任意文件,可能导致拒绝服务攻击。
        

- CVSS (基础分值)

CVSS分值: 6.4 [中等(MEDIUM)]
机密性影响: NONE [对系统的机密性无影响]
完整性影响: PARTIAL [可能会导致系统文件被修改]
可用性影响: PARTIAL [可能会导致性能下降或中断资源访问]
攻击复杂度: LOW [漏洞利用没有访问限制 ]
攻击向量: [--]
身份认证: NONE [漏洞利用无需身份认证]

- CPE (受影响的平台与产品)

cpe:/a:wasd:wasd_http_server:7.1
cpe:/a:wasd:wasd_http_server:8.0
cpe:/a:wasd:wasd_http_server:7.2.3
cpe:/a:wasd:wasd_http_server:7.2.1
cpe:/a:wasd:wasd_http_server:7.2
cpe:/a:wasd:wasd_http_server:7.2.2

- OVAL (用于检测的技术细节)

未找到相关OVAL定义

- 官方数据库链接

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2002-1825
(官方数据源) MITRE
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2002-1825
(官方数据源) NVD
http://www.cnnvd.org.cn/vulnerability/show/cv_cnnvdid/CNNVD-200212-145
(官方数据源) CNNVD

- 其它链接及资源

http://www.securityfocus.com/bid/5811
(PATCH)  BID  5811
http://www.iss.net/security_center/static/10213.php
(PATCH)  XF  wasd-http-perlrte-format-string(10213)
http://www.teaser.fr/~jlgailly/security/wasd-vuln-2002-09.txt
(VENDOR_ADVISORY)  MISC  http://www.teaser.fr/~jlgailly/security/wasd-vuln-2002-09.txt
http://wasd.vsm.com.au/ht_root/doc/misc/wasd_advisory_020925.txt
(VENDOR_ADVISORY)  CONFIRM  http://wasd.vsm.com.au/ht_root/doc/misc/wasd_advisory_020925.txt
http://www.osvdb.org/21288
(UNKNOWN)  OSVDB  21288

- 漏洞信息

OpenVMS WASD HTTP服务程序多个远程漏洞
中危 未知
2002-12-31 00:00:00 2005-10-20 00:00:00
远程  
        
        WASD VMS超文本服务是一款使用在OpenVMS系统上流行的HTTP服务程序。
        WASD HTTP服务程序存在多个漏洞,远程攻击者可以利用这些漏洞进行访问系统文件,获得系统敏感信息,以SYSTEM权限执行任意指令等攻击。
        * 默认情况下"Tree"内部脚本允许生成目录树,通过提交 http://webserver/tree/ 请求,可以获得整个目录树。提交统配符'*.*'可导致获得全部文件信息。
        (相关文档:http://wasd.vsm.com.au/ht_root/doc/env/env_0400.html#43 )
        * 默认情况下,向WASD HTTP服务程序提交类似如下的请求,可以造成目录遍历攻击:
        http://webserver/dirname/*.*
        (相关文档:http://wasd.vsm.com.au/ht_root/doc/env/env_0400.html )
        * upd脚本存在目录遍历漏洞,提交http://webserver/upd/dirname/请求可以泄露当前文件信息。(相关文档:http://wasd.vsm.com.au/httpd/-/updhelp.html )
        * WASD HTTP服务程序存在多个搜索脚本,可以用来搜索所有文档。(相关文档:http://wasd.vsm.com.au/ht_root/doc/env/env_0700.html#97 )
        * 默认情况下server root可访问,系统中文档目录就是服务程序主ROOT目录,包含多个配置文件,脚本,可执行文件,直接访问这些文件可以获得环境变量信息,配置等敏感信息。(相关文档:http://wasd.vsm.com.au/ht_root/doc/htd/htd_0600.html#98 )
        * 系统访问控制规则可以很容易的绕过。
         如httpd$map.conf配置文件包含如下:
        
         pass /ht_root/wwwroot*
         fail /ht_root/*
         fail /-/*
         在上面这种情况下,服务程序主目录是ht_root,而文档目录是WWWROOT。"fail"规则可以通过如下访问绕过:
        
         http://theserver/ht_root/wwwroot/-/*.*
        * 文档ROOT位置容易判别:
         文档ROOT位置可以方便的通过"where"脚本获得(相关文档:http://wasd.vsm.com.au/ht_root/doc/htd/htd_2100.html#364 )
         即使"where"脚本没有启用,"404 not found"错误页面提供的消息也会返回文档ROOT位置。错误页面会返回包含如下类似的信息:
        
        
        * 全部WEB配置文件可以方便的获得:
         Web服务程序配置信息存放在ht_root/local/httpd$map.conf文件中,一般由如下规则保护:
        
         fail /ht_root/local/*
        
         但是可以通过如下方法绕过获得配置文件信息:
        
         http://theserver/ht_root/wwwroot/-/local/httpd$map.conf
         在一台机器上测试,既然没有"fail"规则,配置文件可以通过如下方法获得:
        
         http://theserver/local/httpd$map.conf
        * 所有WEB服务程序LOG可以方便获得:
         如果配置文件中设置如下规则:
        
         fail /ht_root/log/*
         可以通过如下请求获得日志信息:
        
         http://theserver/upd/ht_root/src/-/log/
        
         如果日志由ACLs保护,但你有系统上一个合法用户帐户,可以通过如下方法获得:
        
         $ show log HTTPD80$REQUEST
         "HTTPD80$REQUEST" = "08 11:56:42.200.430.5287.0.9000.http://theserver:
         80.ip.address.of.caller.GET /filename"
        * "tree"脚本可以显示隐藏的目录信息:
         服务程序日志一般存放在/ht_root/log/server/目录下,由于一般由"fail"规则保护,所以子目录一般都隐藏,不过通过"tree"脚本可以访问隐藏目录信息:
        
        
http://theserver/tree/ht_root/
        * CGI脚本列表可以方便的获得:
         通过提交
http://theserver/cgi-bin/*.* 访问不能获得CGI脚本列表,但是一般脚本都存放在ht_root/script/或者ht_root/script_local目录下,如果配置文件阻止这些目录访问,一般可以通过如下访问绕过限制获得CGI列表:
        
        
http://theserver/ht_root/wwwroot/-/script_local/*.*
         各个用户的CGI脚本,可以运行URL:
        
        
http://theserver/~username/cgi-bin/scriptname
        
         一般访问如下脚本会失败:
        
        
http://theserver/~username/cgi-bin/*.*
         但是你可以通过提交如下请求获得CGI脚本列表:
        
        
http://theserver/~username/xxx/-/cgi-bin/*.*
        
        
http://theserver/~username/.../*.com?search=$
        * CGI脚本源代码可以获得:
         通过上面方法获得CGI脚本列表,可以点击相关连接获得脚本源代码,一般情况下脚本连接如如下形式:
        
        
http://theserver/ht_root/wwwroot/-/script_local/scriptname
        * OpenVMS系统文件可以读取:
         部分站点中,配置规则设置如下,只允许访问选择性的系统部分文件:
        
         pass /sys$common/syslib/* /sys$common/syslib/*
         不过其他系统文件可以通过如下方法获得:
        
        
http://theserver/sys$common/syslib/-/sysmgr/systartup_vms.com
        * 用户HOME目录可以读取:
         一般用户目录映射为
http://theserver/~username/web/ ,如果OpenVMS保护和ACL设置不正确,可能可以以如下方法访问:
        
        
http://theserver/~username/-/*.*
         不过有设置如下的映射规则会返回错误:
        
         pass /*/-/* /ht_root/runtime/*/*
         但是可以通过如下方法访问:
        
        
http://theserver/~username/x/--/*.*
         这里"--"类似"../.."。
        
        * 默认情况下CGI脚本可执行:
         默认情况下CGI脚本以http$server用户进程运行httpd.exe或者httpd_ssl.exe,这是个高权限用户,如果某个CGI脚本存在漏洞,可导致整个系统被控制。
        
        * 默认CGI脚本存在多个漏洞:
         某个脚本如果在VMS ACL运行的情况下可以写任意文件内容到服务器上,这个漏洞可以导致获得SYSTEM权限。
        
         运行cgi_process.com程序,可以泄露大量系统相关信息给攻击者。
        * PerlRTE_example1.pl脚本存在格式字符串漏洞,问题存在于printf ("$name=\"$ENV{$name}\"\n");调用上,这个$name变量由用户输入,但没有进行充分过滤。攻击者提供恶意格式串可导致覆盖内存任意地址,造成拒绝服务,或者执行任意代码。如
http://wasd.vsm.com.au/plrte/PerlRTE_example1/%25x%25x%25x
        * print.com CGI脚本可以打印任意文件:
         默认情况下print.com CGI脚本允许从远程打印文件到服务器上,不过这个脚本访问受IP限制如:
        
         $ HPRINTS_ALLOWED = "131.185.250.*"
        任何这个IP地址范围内的用户可以打印任意文件,可能导致拒绝服务攻击。
        

- 公告与补丁

        临时解决方法:
        如果您不能立刻安装补丁或者升级,CNNVD建议您采取以下措施以降低威胁:
        * 请参看
        http://wasd.vsm.com.au/ht_root/doc/htd/htd_0600.html#98文档安全配置WASD
HTTP服务程序。
        厂商补丁:
        WASD
        ----
        目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
        WASD WASD HTTP Server 7.1:
        WASD WASD HTTP Server 7.2:
        WASD Upgrade WASD 7.24 Fix Kit
        
        http://wasd.vsm.com.au/wasd/

        WASD WASD HTTP Server 7.2.1:
        WASD Upgrade WASD 7.24 Fix Kit
        
        http://wasd.vsm.com.au/wasd/

        WASD WASD HTTP Server 7.2.2:
        WASD Upgrade WASD 7.24 Fix Kit
        
        http://wasd.vsm.com.au/wasd/

        WASD WASD HTTP Server 7.2.3:
        WASD Upgrade WASD 7.24 Fix Kit
        
        http://wasd.vsm.com.au/wasd/

        WASD WASD HTTP Server 8.0:
        WASD Upgrade WASD 8.01 Fix Kit
        
        http://wasd.vsm.com.au/wasd/

- 漏洞信息

21288
WASD Web Server PerlRTE_example1.pl name Variable Format String
Remote / Network Access, Local / Remote, Context Dependent Input Manipulation
Loss of Integrity, Loss of Availability
Exploit Unknown

- 漏洞描述

WASD WebServer PerlRTE_example1.pl contains a format string flaw. The issue is triggered when a user sends malcious input via format string errors in the $name variable. It is possible that the flaw may allow arbitrary code execution and/or a denial of service.

- 时间线

2005-11-29 2002-08-26
Unknow Unknow

- 解决方案

Upgrade to version 8.1 or higher, as it has been reported to fix this vulnerability. An upgrade is required as there are no known workarounds.

- 相关参考

- 漏洞作者

Unknown or Incomplete
 

 

关于SCAP中文社区

SCAP中文社区是国内第一个以SCAP为主题的中文开放社区。了解更多信息,请查阅[关于本站]

版权声明

CVE/CWE/OVAL均为MITRE公司的注册商标,它们的官方数据源均保存在MITRE公司的相关网站