Anymacro 邮件系统登陆状态任意文件下载漏洞(读取源码以及邮件内容)

2014-05-17T00:00:00
ID SSV:95506
Type seebug
Reporter Root
Modified 2014-05-17T00:00:00

Description

简要描述:

详细说明:

乌云已经把它列入到通用型奖励厂商当中了。 0x01 北京 anymacro是国内较流行的一家企业级邮箱系统,客户主要为教育/政府机构。 其中涉及客户较多。 从官网确认以下受影响: 运营级系统 中华人民共和国商务部 河北省网通 黑龙江省网通 内蒙古自治区铁通 抚顺市网通 企业级系统 苏宁电器集团 中远房地产 邯郸钢铁集团 铜牛针织集团 校园级系统 北京邮电大学 中国人民大学 东北大学 南昌大学 电 子 政 务 中国政协 济南市政府 天津市公安局 河北省高级人民法院 市民信箱系统 青岛市 东营市 石家庄市 宝鸡市 0x02 漏洞分析: 给2个案例 http://webmail.vanceinfo.com
http://sut.edu.cn 在根目录当中domain_sign.php

require_once "config/config.php"; require_once "include/template.php"; require_once "include/func.php"; require_once 'include/right.php'; require_once 'include/func_login.php'; require_once "include/auth.php"; $domain_sign_dir=$DOMAIN_SIGN_DIR; //这里$DOMAIN_SIGN_DIR已经原始定义域签名目录:/mail/domain_sign if (!empty($imgid)){ //不为空的情况下: $file=$domain_sign_dir."/img/".base64_decode($imgid); 这里$imgid base64解码。。 if (file_exists($file)){ //如果存在就以图片输出。。。从而造成任意文件读取(源码),,包括邮件信息 header("Content-type:image;"); readfile($file); exit; } exit; } if (!empty($get_sign)){ $file=$domain_sign_dir."/".$SESSION["domain"].".sign"; if (file_exists($file)){ readfile($file); exit;

例如读取/etc/passwd

<img src="https://images.seebug.org/upload/201405/171622571d9978b75f5e448cbf5890c58666bbef.jpg" alt="JRZG(ZE}B6EP5FY4CD5AO`O.jpg" width="600" onerror="javascript:errimg(this);">

<img src="https://images.seebug.org/upload/201405/1716233385c6788c75615e5ebd46aaa76f46bc46.jpg" alt="(UHL)C{LU9C[1`E0IPH]UVA.jpg" width="600" onerror="javascript:errimg(this);">

然后通过读/etc/shadow 报错,即可知道邮件系统的路径,从而造成任意源码读取

[<img src="https://images.seebug.org/upload/201405/171624117587af6cddfe343b7057db6ab003b68e.jpg" alt="H@{X1F(JOQ(QD~[ZJDDC4Y.jpg" width="600" onerror="javascript:errimg(this);">

同样构造好即可读取任意邮件内容。

漏洞证明:

<img src="https://images.seebug.org/upload/201405/1716233385c6788c75615e5ebd46aaa76f46bc46.jpg" alt="(UHL)C{LU9C[1`E0IPH]UVA.jpg" width="600" onerror="javascript:errimg(this);">

[<img src="https://images.seebug.org/upload/201405/171624117587af6cddfe343b7057db6ab003b68e.jpg" alt="H@{X1F(JOQ(QD~[ZJDDC4Y.jpg" width="600" onerror="javascript:errimg(this);">