提起“通达网络办公系统”可能很多人都不熟悉,但是要是说到“OfficeAnywhere”我想大家就有所耳闻了。其实“通达网络办公系统”的英文名称就是“OfficeAnywhere”,这是一个在国内知名度很高的网络办公系统,市面上只要提到网络办公系统一般都会推荐使用通达的产品,从起初的一个单纯的Web系统开始,通达办公系统现在已经集成桌面应用程序、手机客户端于一身,丰富的功能为用户提供了优秀的服务,加上不断变化的Web前端界面效果,让“通达网络办公系统”在业界获得了良好的口碑。这样一套完美的网络办公系统在安全上到底做得如何,受人委托简单地对该系统做了一个测试,竟然发现诸多安全隐患,这里将其中一个安全漏洞曝光出来,希望能够引起通达公司的高度重视。
作为网络办公系统,用户是系统的关键服务对象,不同的用户按照用户身份等级划分,例如职员就不能够看到部门经理的办公内容,要想看,你要么知道部门经理的密码,要么就可以借助本文漏洞来试一试。
我们这里测试的对象是“OfficeAnywhere2013增强版”,初始安装好后我们使用管理员权限建立了两个不同权限的用户,职员名为“test”,部门经理则为“boss”,同时我们为“boss”设置了一个非常复杂的密码,假设“test”根本不知道也猜解不出这个密码。利用“test”登陆系统,如图1所示。
漂亮而清爽的界面让我们感到很舒服,“OfficeAnywhere2013增强版”为用户提供了很多实用的办公功能,这里我们对“电子邮件”这个功能十分感兴趣。试图新建一封邮件,如图2所示。
看到图2我标出来的地方了吗?“源码”这两个字让我一下子明白机会来了!放上那些经典的XSS语句吧,什么“<script>alrt(1)</script>”等等,然后把这封邮件发给自己,看看会有什么效果?如图3所示。
这醒目的对话框告诉我们漏洞出现了!“OfficeAnywhere2013增强版”对用户输入的脚本代码没有进行任何安全过滤,一个典型的XSS漏洞被我们发现了。
现在我们将为系统管理员发送一封带有恶意脚本的电子邮件,为什么这么做?因为系统管理员才具有修改用户密码的权限啊!通达系统的管理员为管理者提供了一个非常人性化的功能,它允许管理员恢复任意用户的登陆密码为空密码,为此,我们将通过上面这个漏洞,请管理员帮助我们重置“boss”用户的登陆密码!那么,我们这封电子邮件应该怎么写呢?
很简单,只需要插入一个框架就可以,具体代码为:<iframeheight="0"src="/general/system/user/no_ss.php?USER_ID=boss,"width="0"></iframe>。将前面这段代码放到图的邮件内容那里,记住要使用“源码”编辑方式,然后选择系统管理员用户,一般是“admin”,发送该邮件给他。剩下的就是耐心等待了,当然你也可以修改前面的代码,一旦管理员访问了你的邮件就给你一个提示,这样你就可以第一时间去登陆部门经理“boss”同志的办公系统了,因为他的密码现在是空密码啦!
其实,这个XSS漏洞出现的位置不单单是在“电子邮件”功能这里,在很多地方都存在,例如通达系统提供的“讨论区”,这是一个类似论坛或者留言板的地方,如图4所示。
在“讨论区”的回复功能中,我们同样发现了“源码”这个标志性的按钮,这里就不截图了。这意味着,利用给管理提问或者回复留言的方式同样可以让管理员触发XSS漏洞,而且通达系统还支持对被回复人员的提醒,这样一来,简直是在帮我们催促管理员赶紧触发漏洞吧!
一个看似毫不起眼的XSS漏洞,对于办公系统这样用户信息敏感型的Web应用程序来说是致命的。因为一个内鬼利用这样的漏洞就可以轻松获取到整个办公系统内部所有用户的数据信息,这种商业机密的泄漏对公司或者单位来说将会造成巨大的经济利益或者其他方面的损失。希望通达公司能够重新审视自己程序的安全性,及时修补该漏洞,提升自己的安全等级,为用户提供更加优秀的办公服务。
最后,本文旨在讨论安全技术,请不要使用本文技术进行任何违法行为。
本文为网络安全技术研究记录,文中技术研究环境为本地搭建或经过目标主体授权测试研究,内容已去除关键敏感信息和代码,以防止被恶意利用。文章内提及的漏洞均已修复,在挖掘、提交相关漏洞的过程中,应严格遵守相关法律法规。