漏洞信息详情
OpenVMS WASD HTTP服务程序多个远程漏洞
- CNNVD编号:CNNVD-200212-145
- 危害等级: 中危
- CVE编号:
CVE-2002-1825
- 漏洞类型:
未知
- 发布时间:
2002-09-26
- 威胁类型:
远程
- 更新时间:
2005-10-20
- 厂 商:
wasd - 漏洞来源:
Jean-loup Gailly※ … -
漏洞简介
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位置。错误页面会返回包含如下类似的信息:
<!– sts: \\%X00018292 \”$1$DUA2:[HT_ROOT.][WWWROOT]NOTFOUND\” –>
* 全部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.<a href=\”http://theserver:\” target=\”_blank\”>http://theserver:
80.ip.address.of.caller.GET /filename\”
* \”tree\”脚本可以显示隐藏的目录信息:
服务程序日志一般存放在/ht_root/log/server/目录下,由于一般由\”fail\”规则保护,所以子目录一般都隐藏,不过通过\”tree\”脚本可以访问隐藏目录信息:
<a href=\”http://theserver/tree/ht_root/\” target=\”_blank\”>http://theserver/tree/ht_root/
* CGI脚本列表可以方便的获得:
通过提交 <a href=\”http://theserver/cgi-bin/*.*\” target=\”_blank\”>http://theserver/cgi-bin/*.* 访问不能获得CGI脚本列表,但是一般脚本都存放在ht_root/script/或者ht_root/script_local目录下,如果配置文件阻止这些目录访问,一般可以通过如下访问绕过限制获得CGI列表:
<a href=\”http://theserver/ht_root/wwwroot/-/script_local/*.*\” target=\”_blank\”>http://theserver/ht_root/wwwroot/-/script_local/*.*
各个用户的CGI脚本,可以运行URL:
<a href=\”http://theserver/~username/cgi-bin/scriptname\” target=\”_blank\”>http://theserver/~username/cgi-bin/scriptname
一般访问如下脚本会失败:
<a href=\”http://theserver/~username/cgi-bin/*.*\” target=\”_blank\”>http://theserver/~username/cgi-bin/*.*
但是你可以通过提交如下请求获得CGI脚本列表:
<a href=\”http://theserver/~username/xxx/-/cgi-bin/*.*\” target=\”_blank\”>http://theserver/~username/xxx/-/cgi-bin/*.*
<a href=\”http://theserver/~username/…/*.com?search=$\” target=\”_blank\”>http://theserver/~username/…/*.com?search=$
* CGI脚本源代码可以获得:
通过上面方法获得CGI脚本列表,可以点击相关连接获得脚本源代码,一般情况下脚本连接如如下形式:
<a href=\”http://theserver/ht_root/wwwroot/-/script_local/scriptname\” target=\”_blank\”>http://theserver/ht_root/wwwroot/-/script_local/scriptname
* OpenVMS系统文件可以读取:
部分站点中,配置规则设置如下,只允许访问选择性的系统部分文件:
pass /sys$common/syslib/* /sys$common/syslib/*
不过其他系统文件可以通过如下方法获得:
<a href=\”http://theserver/sys$common/syslib/-/sysmgr/systartup_vms.com\” target=\”_blank\”>http://theserver/sys$common/syslib/-/sysmgr/systartup_vms.com
* 用户HOME目录可以读取:
一般用户目录映射为 <a href=\”http://theserver/~username/web/\” target=\”_blank\”>http://theserver/~username/web/ ,如果OpenVMS保护和ACL设置不正确,可能可以以如下方法访问:
<a href=\”http://theserver/~username/-/*.*\” target=\”_blank\”>http://theserver/~username/-/*.*
不过有设置如下的映射规则会返回错误:
pass /*/-/* /ht_root/runtime/*/*
但是可以通过如下方法访问:
<a href=\”http://theserver/~username/x/–/*.*\” target=\”_blank\”>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变量由用户输入,但没有进行充分过滤。攻击者提供恶意格式串可导致覆盖内存任意地址,造成拒绝服务,或者执行任意代码。如<a href=\”http://wasd.vsm.com.au/plrte/PerlRTE_example1/\\%25x\\%25x\\%25x\” target=\”_blank\”>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” target=”_blank”>
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/” target=”_blank”>
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/” target=”_blank”>
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/” target=”_blank”>
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/” target=”_blank”>
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/” target=”_blank”>
http://wasd.vsm.com.au/wasd/
参考网址
来源: BID
名称: 5811
链接:http://www.securityfocus.com/bid/5811
来源: XF
名称: wasd-http-perlrte-format-string(10213)
链接:http://www.iss.net/security_center/static/10213.php
来源: www.teaser.fr
链接:http://www.teaser.fr/~jlgailly/security/wasd-vuln-2002-09.txt
来源: wasd.vsm.com.au
链接:http://wasd.vsm.com.au/ht_root/doc/misc/wasd_advisory_020925.txt
来源: OSVDB
名称: 21288
链接:http://www.osvdb.org/21288
来源:NSFOCUS
名称:3603
链接:http://www.nsfocus.net/vulndb/3603