探索黑客技术攻防,实战研究与安全创新

导航菜单

危机四伏的优邮 WebMail 0day漏洞

最近,朋友下载了一个邮件服务程序—BestMail准备安装在自己的服务器上供用户使用,在正式使用之前,朋友委托我对该邮件服务程序做一个安全测试,于是,就有了这篇文章。

从网上查询了一下,BestMail又名优邮,是由开发的一款邮件服务程序,从网上的介绍来看,该程序安装使用都非常简单,同时具有向用户提供 Web  Mail方式的邮件发送接收功能,看起来还是功能蛮全面的一款邮件服务程序。

我在进行安全测试的时候,下载使用的是优邮  3.5标准版。由于优邮提供了 Web  Mail功能,在安装优邮程序的过程中,该程序会提示管理员根据系统环境的不同来选择不同的安装模式:一个是 IIS模式,一个是程序整合的 Apache模式,我这里选择的是   IIS模式。选择该模式后,优邮会将 Web Mail功能与系统的  IIS相结合来使用。

成功安装好优邮后,我们就可以通过“http://服务器 IP/mail”这个网址来访问使用优邮提供的 Web Mail,如图 1所示。


QQ截图20160909150154.png

这里我们可以利用图 1中的“注册”按钮来申请一个普通邮件用户,也可以通过“管理端”按钮来登录系统后台来创建一个普通邮件用户。这里我们创建了一个普通邮件用户 test,密码 123456。

现在使用 test用户登录优邮的    Web  Mail系统,我们知道,对于Web  Mail来说最容易发生的一个安全漏洞就是  XSS。一旦程序对邮件中的脚本代码没有做好安全过滤,那么用户一旦通过 Web  Mail系统接收到带有恶意脚本代码的邮件时就会发生 XSS。

为了测试优邮的 Web  Mail系统有没有存在  XSS漏洞,我们这里首先点击“发邮件”功能来创建一封带有脚本代码的电子邮件,如图2所示。

QQ截图20160909150248.png

图 2这里我们有三个细节要注意,第一我们在“主题”这里输入了一段脚本代码“<script>alert(1)</script>”。第二个细节是这里选择的“邮件格式”为“HTML格式”。第三个细节在于图  2最底部的地方,我们将“使用  HTML创建您的网页”这里打勾,这意味着我们可以对邮件进行代码级别的编写。这样我们就可以在邮件内容的部分插入脚本代码了,如图 3所示。

我们这里在邮件内容的部分插入了一段脚本代码“<script>alert(2)</script>”。现在发送这封邮件,我们这里将邮件发送给我们自己。

现在,我们来到收件箱,查看一下邮件,如图 4所示。

QQ截图20160909150350.png

图 4中我们看到浏览器弹出了一个对话框,上面有个数字   2,这意味着,我们插入到邮件内容中的脚本代码被顺利执行了!看来,优邮的 Web Mail系统确实存在严重的  XSS漏洞!

在发现了优邮这个严重的 XSS漏洞之后,我继续对该系统的   WebMail进行安全测试,当我点击到该  Web Mail系统中提供的“网络硬盘”功能时,我发现了更加严重的安全漏洞,如图 5所示。

QQ截图20160909150415.png

图 5这里我们注意看浏览器地址栏中的网址,这个网址类似这样:“http://服务器 IP/UMail/NetFoldersList?path=/../”。这是一个非常典型的目录泄露漏洞。优邮的 Web Mail在提供“网络硬盘”功能的时候,它的“网络硬盘”其实是服务器上的一个文件夹,为了查看这个文件夹中的内容,优邮的 Web  Mail利用向“NetFoldersList”这个程序传递“path”参数来查看文件夹中的内容。这里“path”参数代表着文件夹的名字,也就是“网络硬盘”的名字。但是,优邮的  Web  Mail没有很好地过滤“path”参数的内容,导致我们可以利用“../”这种特殊的组合来达到查看服务器上任意目录下文件的目的。不但如此,我们甚至可以利用这个漏洞来下载或者查看,甚至是删除服务器上的任意文件,如图 6所示。


QQ截图20160909150453.png

图 6中我们看到,此刻,浏览器中显示的内容就是优邮用来存放邮件用户信息的文件 mailusers.tab。这个文件位于服务器上优邮的安装目录下。毫无疑问,借助优邮 Web  Mail的这个安全漏洞,我们完全能够利用普通邮件用户的权限来实现远程读取服务器上的任意文件内容,危害之大难以想象。

找到了安全漏洞,我们下一步就应该分析一下优邮的这些安全漏洞是由于什么原因造成的。优邮的 Web Mail是利用  Java语言开发的,它的源代码都打包为 jar,我们这里找到了优邮的 Web Mail所对应的ar文件  Umail.jar。用 Winrar解压该文件之后得到的就是优邮的   WebMail的  Java编译文件,如图  7所示。

QQ截图20160909150525.png

这些 class后缀名的文件就是   Java代码编译后的文件,利用反编译软件我们可以查看到  Java的源代码。我们首先查看一下出现漏洞的 NetFoldersListBean.class文件,其部分源代码如图  8所示。

QQ截图20160909150549.png

这里“path”就是前面图 5中浏览器中的“path”参数,请读者注意“path”参数在代码中没有做任何安全过滤,而是直接传递到了代码中,这就造成 Web  Mail系统直接按照“path”参数指定的文件目录来返回给用户服务器上的文件目录列表信息。

接下来,我们再看一看能够实现查看服务器上任意文件内容的downloadfile.class文件源代码内容,如图  9所示。

QQ截图20160909150629.png

从图 9我们可以看出,在  downloadfile.class文件中代码对“path”和“filename”参数没有做任何安全过滤而是将这两个组合为一个文件路径地址,之后将这个文件路径地址传递给 FileInputStream函数来实现对文件内容的读取,最终将这个文件的内容返回给用户浏览器。

优邮  Web  Mail系统存在的这几个安全漏洞其实从实质上来说可以区分为两个大类,一个是针对邮件系统用户安全漏洞—XSS,因为XSS漏洞主要是跨站攻击,它最终影响到的是邮件系统的使用用户。
恶意攻击者利用在邮件中插入恶意脚本代码来实现窃取用户   Cookie信息,甚至可以利用该漏洞来编写邮件蠕虫,造成对整个邮件系统用户的攻击。第二类的安全漏洞就属于邮件用户对邮件服务器的攻击,这就包含上面利用优邮  Web  Mail“网络硬盘”功能中的安全漏洞来下载、查看、删除服务器上的任意文件。

本文为网络安全技术研究记录,文中技术研究环境为本地搭建或经过目标主体授权测试研究,内容已去除关键敏感信息和代码,以防止被恶意利用。文章内提及的漏洞均已修复,在挖掘、提交相关漏洞的过程中,应严格遵守相关法律法规。

相关推荐