办公系统网络入侵测试及分析
2015-02-25李耀辉龚良波武志峰
李耀辉,龚良波,武志峰
(天津职业技术师范大学信息技术工程学院,天津 300222)
办公系统网络入侵测试及分析
李耀辉,龚良波,武志峰
(天津职业技术师范大学信息技术工程学院,天津 300222)
通过手工注入方法对天津职业技术师范大学在线办公系统的网络安全性进行了测试,发现该平台存在多个状态错误漏洞,包括登录用户可随意查看他人邮件、任何人不登录系统在浏览器输入特殊URL可直接下载邮件附件等泄露用户私密信息的漏洞;在此基础上,进一步发现了系统存在下载源码和存在拒绝服务攻击等威胁网络服务器的漏洞。针对存在问题,提出了提高网络办公系统安全性的方法。
办公自动化;网络安全;入侵检测;网络漏洞;拒绝服务攻击
随着校园信息化的建设,在线办公系统(OA)成为教职员工之间交流沟通以及学校各部门发布信息的重要平台。整个系统的安全关系到学校及员工信息的安全。然而,各种网络入侵工具比比皆是,造成攻击的门槛越来越低[1]。所有的攻击技术、工具及黑客的不同目的又进一步致使任意一个网站都有可能存在不明的攻击[2],如前一段时间,天津职业技术师范大学OA系统被不明人员攻击,系统宕机达两天之久,甚至到目前个别功能还不能使用。最近,网络攻击的另一趋势是攻击硬件的小型化,攻击者随时随地都可以发起攻击[3]。为了保证该系统能够可靠运行,而且还要保证所有用户的信息安全,本研究利用网络安全工具以及采用手工方法对系统进行了黑盒测试,发现了部分系统漏洞。本文针对这些漏洞提出了改进方法,以提高校园网办公系统的安全性。
1 OA系统测试情况
通过正常运行和工具测试掌握了平台的一些基本情况。该系统是LKOA5.0版本,能够实现各单位的信息发布以及电子邮件的收发功能。在测试过程中,利用漏洞掌握到的部分代码基本决定系统运行的大致过程。整个系统大部分功能采用.aspx实现,个别功能采用.asp代码实现。整个平台在设计和开发过程中注意到了系统安全的问题,如没有将数据库登录用户名和密码直接配置在web.config文件中,而是编写了库文件及其他数据库配置工具。根据网上搜索到的以前版本,猜测该软件通过配置工具将登录数据库所使用的用户名和密码写入服务器的文件注册表。运行时通过库文件访问并构造连接字符串。
平台的运行过程是:主页是oaindex.aspx,用户打开该主页输入用户名和密码并点击“登录”按钮后,系统将调用Loginprogress.aspx显示用户正在登录的提示信息。此时,服务器在后台调用initsession.asp查询存放在数据库中的用户信息,如果用户信息正确,则将用户信息记录到服务器的Session里。另外,后台调用LoginIdentity.aspx.cs对用户身份的有效性进行验证,该程序将结果传递给LoginIdentity.aspx。当确定该用户为合法用户,系统调用oaindex.aspx加载框架及各个板块的信息。加载的板块主要有通知通告、校内公文、近日要情和未读邮件等。在这些板块中,通过点击可以查看相关信息并下载该信息所带的附件。
对系统攻击时,最希望得到数据库的连接信息,如数据库名、登录密码等。考虑到系统功能是采用asp和asp.net实现,猜测系统可能有connect.asp和配置文件web.config。对网站进行攻击测试的过程证实了猜测的正确性,并成功下载了这两个文件,但是没有发现数据库连接字符串。在访问数据库时,首先调用完成数据库连接功能的库函数LkPduOA5 Com_Engine. DBOperateLib创建对象,并通过该对象的GetConnetionString方法获取数据库连接字符串。
系统管理员在平台的管理上也注意了系统安全的问题。本研究利用软件对系统的安全性进行测试。利用端口扫描工具得到该网站的无用端口均已关闭,只有21、80、110等3个端口打开,由此也可以确定管理员的安全意识。接下来,针对平台数据库的安全性进行测试,使用阿D SQL注入工具以及小榕的Wis和Wed等注入工具对代码的查询语言进行测试,没有发现注入点;使用XScan工具软件对系统的IIS漏洞、FTP弱口令等漏洞进行检测,也没有发现这方面的漏洞,看起来该系统应该是非常安全的。
上述测试是基于工具软件,主要用于检测环境错误漏洞。但是,利用软件进行测试非常机械死板,对于如Session值修改、Cookie值修改的状态错误漏洞具有很大的局限性。然而,状态错误漏洞通常可以由测试人员或攻击者直接注入程序,不需要通过其他外部实体传导,实现起来非常灵活[4]。因此,通过软件测试并不能保证系统就是完全安全的。本研究对该平台进行了手工注入测试,发现了系统存在的一些漏洞。
2 系统漏洞
2.1 未清除的Session致使绕过登录界面
为了在用户登录后查看信息不再进行身份验证特别是能够根据用户身份查看自己的邮件,系统使用了Session保存用户的信息。在编写软件过程中利用Session保存了用户5个属性,这5个属性都是用户登录后从数据库读取,其中前4个属性分别是uYGBH、uID、uName和uDeptID,当uID不为空时在Session中保存uDeptName属性。根据代码的跟踪估计后台根据这些信息为用户生成一个唯一的SessionID。然而,Session是有生命周期的,一般是20 min。如果用户登录时间过长,Session失效后会要求用户重新登录。但是,如果用户在办公室的公用计算机上登录,查看自己的信息且时间很短。查看完自己的信息后随手关闭页面,在另外一个用户接着使用的情况下,会存在不用登录直接键入前一个人登录时的URL就可以查看到刚才看到的信息,特别是比较私密的邮件信息,更致命的是还可以用前一个人的身份发送邮件。因此,代码中没有处理用户退出时的Session问题会导致用户信息的泄漏。该漏洞虽不能保证每次测试都能成功,但是确有成功的情况。
2.2 OA系统邮件方面的漏洞
2.2.1 邮件查看漏洞
Session漏洞仅仅导致公用计算机个别用户信息的泄漏。OA系统邮件方面的漏洞可以导致登录用户查看很多人的邮件信息。为了实现用户的群发邮件且保证其中任一个收件人在删除自己的邮件后不会影响其他人查看本邮件,系统在实现时为每一个用户保存一份一定格式的文件并将文件的有关信息在数据库中生成一条记录。根据URL中显示的信息可知,每个用户的邮件是以记录序号为主键保存在数据库中。因用户已经登录,成为系统的合法用户,在打开邮件时直接通过该用户所用邮件的记录号从数据库读取邮件内容,只需要通过该邮件的JLXH就可以访问到。在显示邮件信息时,系统是通过一个弹出窗口实现,其中URL连接是只读方式。对于普通用户,该实现过程没有问题。但是,当用户直接将此链接在浏览器地址栏键入时可以修改URL的任何内容。在测试时,右击任意一条邮件通过“属性”得到邮件的相对地址和JLXH,然后加上网站地址没有能够查看到其他用户的邮件。但是,当加上Entry=ZM之后,修改JLXH能够看到不同人的邮件,如图1所示,这样造成用户信息的泄漏。如果是重要信息(如学生试卷等),则可能造成一定的损失。
图1 不同收件人的邮件
上述漏洞产生的原因在于对登陆用户不再进行身份检查。测试表明,当合法用户登陆后,其登陆信息就会保存在Session中。只要该Session一直存在,用户身份不再验证。此时,用户不通过页面上的各种超链接而是在浏览器地址框中输入URL地址就可以查看到其他用户的信息。如前所述,有关邮件的信息是以编号的方式存储在数据库中,登录用户根据当前邮件的编号非常容易猜测其他邮件的编号。所以,在页面中直接输入其他邮件的超链接就可以直接打开其他用户的邮件。因此,建议在系统升级时增加用户身份及其所能访问的邮件信息,或者该邮件的接受者的用户身份信息,并且当用户打开邮件时对其身份进行验证。这样,只有该邮件的接收者才能打开邮件已保证邮件的安全性。
2.2.2 邮件附件下载漏洞
邮件查看漏洞成功的前提是合法用户通过登录验证后才能查看其他用户的邮件。对于邮件附件下载漏洞则根本不需要登录系统,只需要在浏览器中输入URL链接就可以下载邮件的附件。这主要是因为文件下载的管理本身就是一个难题,就连FTP服务器也不能够做到用户级的管理。对于所有附件的下载,本平台利用一个单独的程序模块实现。为了做到复用更要考虑到一般性,在实现时只考虑到根据文件的ID从数据库中查询得到文件的相对路径,然后通过代码将此路径转换为绝对路径。因此,该漏洞产生的原因估计是系统在实现时将所有附件保存到一个特定的文件夹下,而在数据库中只保留文件的序号及其所对应的邮件。在下载时,只需给特定程序传输文件序号、下载标志以及数据信息,而下载需要的另外2个参数——数据库的表名总是PUB_40及下载标志downloadflag为1是固定不变的。文件附件下载时,不在检查用户是否在服务器上、是否有SessionID等信息。这样,任何用户在地址栏中输入URL时只要改变filexh的值并刷新浏览器,界面虽不会发生改变,但是会提示是否下载某个文件等信息,测试结果如图2所示。
图2 邮件附件漏洞
如果此时点击“打开”或“保存”就可以直接将附件下载。在此情况下,虽然不知道邮件的具体内容、发件人和收件人等信息,但是附件的具体内容一览无遗。因为通常情况下,重要文件或大容量文件都是以附件的形式发送的,不法用户只要改变filexh的值就可以查阅到所有附件并得到自己想要的敏感信息。因此,该漏洞对于用户的信息安全会造成十分严重的影响。
因为用户邮件集中保存在一个文件夹下,而数据库中只保存该文件的路径。如果用户知道该文件的路径就可以直接通过URL访问该文件。目前,文件管理还仅仅是粗粒度的管理,如只读、读写等属性对于所有用户都是统一的。即使稍微再具体一些,也只是为某种角色设定具体的访问权限,还做不到针对具体用户设置特定的访问权限。因此,该漏洞是个十分棘手的问题。
2.3 暴露源码漏洞
一般情况下,程序员不能很好地处理上传或下载功能的权限问题。该系统大部分功能采用ASP.net开发,但是部分功能仍采用ASP实现。因此,本研究对其中ASP代码实现上传和下载的功能进行了测试,该程序所需要传递的参数有2个,即orgfile和savefile。savefile参数表示文件所在的路径、文件名;orgfile是保存到本地时生成的文件名。在参数传递时,savefile的部分特殊字符以unicode编码的形式表示,具体的参数传递形式为 orgfile=lkoa_wdfj_4969.pdf&savefile=%2E%2E%2Fatthfiles%2Foawdfj%2Flkoa%5Fwdfj%5F4969%2Epdf。如果将这些unicode编码转换为字符,即可以看出这些文件所在的相对路径。致命的问题是,系统没有很好处理目录的跳转问题,使用Unicode编码或../可以跳转到上一级目录,从而导致用户可以跳转到上一级目录以及通过猜测得到的其他目录。这样,通过猜测和下载功能可以下载系统的源码,从而产生源码泄漏。由此,非法用户可以通过下载一个周知的文件,如主界面的index.aspx并通过分析代码及其中用到的文件分析整个软件,得到更多的软件漏洞来攻击本办公系统。图3就是从网站上下载的initsession.asp,这段代码的作用是根据通过验证的用户信息访问数据库得到用户的ID以及所在的部门名称和部门ID,并将这些信息保存到服务器的Session中。
通过该漏洞可以下载到connectdb.asp和Web. config等关键文件,并且由这些文件确定了系统的数据库和办公软件在一台主机上。进一步,还确定了保存用户信息所在的表名。通过代码跟踪,可以知道数据库的连接字符串没有保存在connectdb.asp和Web. config两个文件中,而是通过访问LkPduOA5Com_Engine.DBOperateLib的GetConnetionString()函数得到数据库连接字符串。如果进一步跟踪即得到LkP-duOA5Com_Engine.DBOperateLib文件夹的位置并得到该文件,然后反编译则可能有暴露数据库的危险。
图3 源文件下载漏洞示例
该漏洞主要在于没有很好地控制普通用户所能访问文件夹的权限,使得用户能够通过../跳转到上一级文件夹的方式可以访问父目录以及父目录的父目录,然后猜测敏感文件夹的位置跳转并下载敏感文件。因此,系统管理员或者程序开发者应该限制普通用户通过../方式进行路径的跳转并在代码中过滤掉../及其Unicode编码格式,从而保证其他文件夹的安全性。
3 其他漏洞
在测试中除了检测到上述造成信息泄漏的漏洞外,系统还存在拒绝服务攻击以及其他方面的漏洞,如图4所示。
(1)拒绝服务漏洞。因为该系统可以让用户下载附件,但是没有对用户上传的附件类型进行规定。因此,用户可以上传任意类型的文件。但是,当用户下载一类特殊类型的文件时,不管该文件存在与否,系统会首先执行,而该文件不存在时系统就会瘫痪。如果黑客通过编程周期性地访问该文件则会导致管理员疲于应付该拒绝服务攻击。因此,该漏洞也是值得注意的问题。考虑到天津职业技术师范大学网上办公的特点,建议网站升级时安装拦截器。在前台直接用脚本对这类文件进行过滤,禁止用户上传特殊扩展名的文件。同时,考虑到高版本浏览器具有调试功能,在后台服务器程序端再次进行过滤。采用双重过滤技术,一方面可以减轻服务器过滤的负担,另一方面也可以大大提高防拒绝服务攻击的能力。
(2)暴露数据库类型漏洞。在用户文本框中输入单引号报错以及显示DBMS类型的漏洞,该信息显示了后台数据库的类型。并且,系统还弹出了消息对话框,其中还显示了办公软件执行的错误信息,提示执行用户验证时所使用源代码中的类及其方法。
(3)显示网站绝对路径的漏洞。在下载文件的过程中,在有些情况下系统会出现如图4(c)的错误提示,该提示暴露了系统所安装的绝对路径。该漏洞为黑客攻击网站提供了重要信息。
图4 其他漏洞对网络造成的威胁
4 结束语
本研究通过手工测试发现了天津职业技术师范大学网上办公软件的一些漏洞并讨论了这些漏洞的危害性。这些漏洞不仅会造成普通用户信息的泄露,而且还会造成系统本身代码的泄漏。更重要的是,在下载漏洞中当用户下载特殊文件时还会造成网站宕机从而拒绝服务。然而,采用传统的防火墙技术、入侵检测技术和蜜罐技术无法防范上述网络攻击手段,因此,建议在网络管理方面引入安全态势感知的相关理论和方法,监控网络异常行为[5-8]。同时,从网络攻击和防御的角度出发,在信息安全的网络层、主机层和服务层等层面对网络攻击进行防范,以全面提高办公系统的安全性,增强入侵防御的能力。
[1] 石志国,薛为民.网络安全教程[M].北京:清华大学出版社,2011.
[2] GOLDBERG J.Tackling unknown threats network security[J]. Network Security Journal,2014(12):16-17.
[3] 郑瑞娟,张明川.生物启发的网络安全理论与方法[M].北京:科学出版社,2013.
[4] 杜经农.基于Web的应用软件安全漏洞测试方法研究[D].武汉:华中科技大学,2010.
[5] POLSTRA P.Hacking and Penetration Testing with Low Power Devices[M].Netherland:Elesvier Inc,2014.
[6] LIAO N,LI F,SONG Y.Research on real-time network security risk assessment and forecast[C]//Proc Intelligent Computation Technology and Automation,2010.
[7] CHEN G.Research on network security real-time risk assessment model[C]//Proc.Electronics and Information Engineering(ICEIE),2010.
[8] 陈秀真,郑庆华,林晨光.层次化网络安全威胁态势量化评估方法[J].软件学报,2006,17(4):885-897.
Testing and analysis of office automation system intrusion
LI Yao-hui,GONG Liang-bo,WU Zhi-feng
(School of Information Technology and Engineering,Tianjin University of Technology and Education,Tianjin 300222,China)
The process of network security testing to office automation system is discussed and the risk of the found network vulnerability is analyzed in this paper.A part of source code of office automation system is downloaded by using its network vulnerability and track the implementation of user login to this system on the base of these codes.And other vulnerability is found after these source code and the input URL in browser are analyzed.The main vulnerabilities include:the user can read others'email after he logins to the system;any user can download the registered user's email attachment even if he doesn't login to this system;there is the risk that hack download the source code of the system and find the absolute path of the website;there exists the risk of denial of service in the website.In the end the method to improve the security of office automation system in the angle of theory and practice is proposed.
office automation;network security;intrusion detection;network vulnerability;denial of service
TP393.08
A
2095-0926(2015)01-0025-05
2015-02-13
天津市科技支撑计划项目(14ZLZLZF00031);天津市教委高校自然科学基金项目(20071311);天津职业技术师范大学科研发展基金资助项目(KJY12-09).
李耀辉(1968—),男,教授,博士,硕士生导师,研究方向为算法设计及优化、符号计算、计算机辅助几何设计.