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

2014-05-22T00:00:00
ID SSV:95450
Type seebug
Reporter Root
Modified 2014-05-22T00:00:00

Description

简要描述:

产品介绍(摘自官网) U-Mail专注于电子邮件领域15年,为企业轻松搭建最安全稳定的电子邮件系统软件。 关键字:15年 最安全 最稳定 {15年 最安全 最稳定} , (w)(o)(x)(*)(a)(o)(l)(e),这么奇葩的代码,这么奇葩的设计、这么奇葩的配置、这么奇葩的、超常轻松的、利用正常的不能再正常的功能就可以拿到shell的系统,我服了... 涉及:金融、政府、银行,石油、军队、证券行业等重要部门,影响非常巨大,经测试受影响率:99.8%~100% 场外话:我很想把农业银行拿下来的,想想还是算了,毕竟随便改卡里的数字,成土豪了,这样是极其不安全的..

详细说明:

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任意文件上传漏洞一枚](http://www.wooyun.org/bugs/wooyun-2014-059954)

但由于官方已经修复了这个漏洞,当然利用上面的方法是无法成功上传的,要稍微改变下 构造表单上传的时候,采用Burp抓包上,修改上传的文件名 如下

Content-Disposition: form-data; name="Filedata"; filename="shell.jpg" 修改为 Content-Disposition: form-data; name="Filedata"; filename="shell.php " 注意:shell.php后面的个空格

提交,即可获取webshell,如图

<img src="https://images.seebug.org/upload/201405/221109270497c88d232102a8414fe14f055a9abc.jpg" alt="1.jpg" width="600" onerror="javascript:errimg(this);">

(当时并不是这样获取到的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 不可思议的是,居然解析了..

<img src="https://images.seebug.org/upload/201405/22112025f2e77f7e794dfa5cfe4228388829bff9.jpg" alt="2.jpg" width="600" onerror="javascript:errimg(this);">

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

<img src="https://images.seebug.org/upload/201405/2211213288806a853a6adae0bffaea95b5394641.jpg" alt="3.jpg" width="600" onerror="javascript:errimg(this);">

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

5 奇葩配置家家有

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

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

<img src="https://images.seebug.org/upload/201405/22112859e1e7db67f470f66c243b15e779ec6937.jpg" alt="4.jpg" width="600" onerror="javascript:errimg(this);">

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

<img src="https://images.seebug.org/upload/201405/22113003833f239d323004a1e7a9ccbf43756db2.jpg" alt="5.jpg" width="600" onerror="javascript:errimg(this);">

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

<img src="https://images.seebug.org/upload/201405/221131013562f9b8fa97f44fb703ad17bc833f61.jpg" alt="6.jpg" width="600" onerror="javascript:errimg(this);">

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

<img src="https://images.seebug.org/upload/201405/22113211264d9ce4132ad1f5026cf3fa82f96f92.jpg" alt="7.jpg" width="600" onerror="javascript:errimg(this);">

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

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%

<img src="https://images.seebug.org/upload/201405/22114546d68b807e0e89ba787512d3e91e305b22.jpg" alt="aaa.jpg" width="600" onerror="javascript:errimg(this);">

漏洞证明:

丢个官方shell

<img src="https://images.seebug.org/upload/201405/221109270497c88d232102a8414fe14f055a9abc.jpg" alt="1.jpg" width="600" onerror="javascript:errimg(this);">