易用办公软件是软件产品,该产品是针对教学信息化发展和一线教师及学生的实际使用需要开发的教育专用办公软件。我们在针对该软件进行安全测试的时候,发现其存在一个典型的欺骗用户执行任意文件的漏洞,这里与大家一起分享一下。
本文测试的易用办公软件版本是4.0,该软件的时候界面如图1所示。
当用户使用EduOffice易用办公软件进行文档编辑后,该软件会将用户数据保存为“.edu"文件,该文件的格式是“undocumentedfo rmat"即未公开的文档格式,如图2所示。
对于这种未公开的文档,我们要进行安全测试,一般采用的方法是进行模糊测试,即File Fuzz。其原理大致上就是对文档进行逐字节或者多个字节的替换修改,然后,每一次修改后生成一个待测试文档文件,之后调用文档文件对应的软件打开这些待测试文档文件,同时,监视软件在运行过程是否发生运行错误,从而,发现安全漏洞。我们在利用已有的Fuzz程序对EduOffice易用办公软件进行初步测试后,并没有发现值得研究的安全漏洞。产生这种结果的原因一般有两种可能性,第一是软件在处理畸形文档文件时存在比较好的容错机制,没有造成诸如溢出、指针覆盖等类型的安全漏洞发生;第二种原因就是我们本身的Fuzz程序在进行模糊测试时,它所采用的测试算法不够符合本次测试,所以没有能够发现软件潜在的安全漏洞。面对这样的情况,我们可以重新选择新的Fuzz程序或者测试算法进行安全测试,或者干脆自己分析文档格式,从而来手工发现软件的安全漏洞。这里,我们选择了后一种方式,即手工分析文档格式来找出软件的安全漏洞。
重新运行EduOffice易用办公软件,我们选择研究其对文档中超级链接的保存与处理过程。通过软件的菜单,我们发现EduOffice易用办公软件支持用户在文档中插入两种类型的超级链接,如图3所示。
这里选择插入“外部文件’’选项后,软件要求用户选择被插入到文档中的文件,我们这里选择插入本地计算机桌面上的一个可执行文件“here.exe"后的效果,如图4所示。
可以看出,在我们将文件插入到文档中后,文件的路径信息就会显示在文档当中,同时,文档中会以蓝色的立体图案来突出该文件链接。此时,按F7键,此时,EduOffice易用办公软件会播放当前文档文件,就类似PowerPoint的功能,这是EduOffice易用办公软件比较独特的功能,即可以像Word那样编辑文档,还可以像PowerPoint那样播放文档文件。如图5所示。
在播放状态下,我们点击图5中的超级链接,在没有任何安全警告的情况下,“here.exe"文件被顺利执行了。如图6所示。
你可能觉得这个过程似乎没有什么,那我们现在看一看微软的Office对于这种文件链接在用户点击后是怎么处理的,如图7所示。
图7中,微软在发现用户点击文档中的超级链接后,如果该链接是一个链接到可执行文件的链接,那么,它就会立即给出安全警告提示。不仅如此,即使用户点击了图7警告窗口中的“是”按钮,打算执行链接到的可执行文件,Word程序还会再次给出警告窗口,如图8所示。.
由此看来,EduOffice易用办公软件对文件类型的超级链接确实没有设置足够的安全机制,用户在点击文档中的超级链接时,很容易造成用户执行木马病毒程序。可是,你一定会说,文档中会显示文件的路径信息,这样子用户就会注意到。其实,文档中显示的内容是可以改变的,显示的内容和超级链接是分两部分的,为此,我们只要简单的修改显示内容为带有欺骗性质的字眼就可以诱惑用户去点击。但是,问题又来了,EduOffice易用办公软件对超级链接会采用蓝色的立体图案或者其它颜色的图标来显示,从而提示用户该超级链接的存在,如图9所示。
从图9中可以看出,EduOffice易用办公软件对文件中的超级链接是当做一个按钮来处理的,为此,文档中的超级链接都会有一个边框来显示超级链接的存在。这给我们带来了不小的麻烦,虽然,我们发现EduOffice易用办公软件在处理文档中文件超级链接时存在安全隐患,但是,要想让用户在不知不觉中触发文档中的超级链接,从而执行木马病毒程序,就必须消除文档中一切可以提示用户超级链接存在的证明。通过软件自身,我们是无法消除超级链接的按钮效果了,那么,我们只能通过对文档文件格式中数据的修改来实现去除按钮效果。为了简单起见,我们选择了图9中的第一行第二个按钮的形式,该形式是采用一条蓝色的下划线来提示超级链接,如图10所示。
保存该文档,我们用Winhex来打开它。由于是未公开的文件格式,所以我们只能借助十六进制软件来逐步分析。首先,是找到文档保存超级链接信息的位置,如图11所示。
从图11中可以看出,超级链接的信息采用了双字节明文保存,我们推断设置超级链接按钮性质的关键数据应该在图1 1这个数据块中。由于图10中的蓝色在编码形式上其实是“00 FF FF’’,这一点,我们可以借助PhotoShop软件来确定,如图12所示。
这就让我们对图11中的存在“00 FF FF’’数据的地方产生了怀疑,是不是通过修改文档中某处数据就可以控制超级链接中的蓝色,如果将其设置为白色,这样不就可以欺骗用户,让用户看不出超级链接的存在。
在尝试了多次以后,我们发现图11中,处于超级链接后的第一个“00 FF FF"就是控制超级链接颜色属性的关键数据,这样一来,我们将其修改为代表白色的新数据“FF FF FF",保存该文档文件,利用EduOffice易用办公软件再次打开文档文件后,我们发现欺骗效果达到了,如图13所示。
当用户在播放该文档时,他只要不小心在文字上方任意处点击了鼠标,那么,程序就能立即执行,而这一切将不会有任何提示,危害极大。
至此,从对文档格式的一无所知到现在借助数据修改来实现欺骗型超级链接,我们可以发现安全漏洞的挖掘是需要足够的耐心与毅力,未公开文档的数据测试往往伴随着大量反复的修改、测试、再修改、再测试,但是最终我们会收获胜利的果实。
本文为网络安全技术研究记录,文中技术研究环境为本地搭建或经过目标主体授权测试研究,内容已去除关键敏感信息和代码,以防止被恶意利用。文章内提及的漏洞均已修复,在挖掘、提交相关漏洞的过程中,应严格遵守相关法律法规。