计算机在线考试系统的安全漏洞及对策.docx
- 文档编号:11272971
- 上传时间:2023-02-26
- 格式:DOCX
- 页数:54
- 大小:55.17KB
计算机在线考试系统的安全漏洞及对策.docx
《计算机在线考试系统的安全漏洞及对策.docx》由会员分享,可在线阅读,更多相关《计算机在线考试系统的安全漏洞及对策.docx(54页珍藏版)》请在冰豆网上搜索。
计算机在线考试系统的安全漏洞及对策
在线考试系统的安全漏洞及对策
总计:
毕业论文51页
插图0幅
表格0表
指导教师:
张长君
评阅人:
完成日期:
2006年5月31日
摘要
随着网络技术的飞速发展,现在很多国外的大学和社会其他部门都已经开设了远程教育,通过计算机网络实现异地教育和培训。
现在,计算机硬件技术的发展已经达到了相当高的水平。
但是,远程教育软件的开发目前还处于起步阶段,随着这项技术的不断深入发展,就要求有更好、更完善的软件系统应用到远程教育当中去,目前面向网络编程、数据库访问的多种技术中,比如JSP、PHP、ASP中,ASP以其开发周期短、存取数据简单、运行速度快而成为众多web程序员的首选开发技术.但由于开发手段的直观、快速和高效,也带来了一定的安全隐患。
数据库是在线考试系统的基础,通常都保存着重要的信息。
大多数教育部门和学校的电子数据都保存在各种数据库中,他们用这些数据库保存一些个人资料,比如学生成绩等。
在线考试系统数据库服务器还掌握着敏感的数据,包括考试的时间和考题。
数据完整性和合法存取会受到很多方面的安全威胁,包括密码策略、系统后门、数据库操作以及本身的安全方案。
但是在线考试系统数据库通常没有象操作系统和网络这样在安全性上受到重视。
安全对于在线考试系统更为重要,本文以目前基于Web的信息系统最常用的ASP+SQLServer2000为例,探讨在线考试系统中可能存在的安全隐患,并给出相应的建议。
关键词:
ASP;SQLServer2000;安全漏洞;对策
ABSTRACT
Flyingtechnicallyalongwiththenetworktodevelopsoon,theuniversityofnowalotofabroadallhavesetupwiththesocialothersectionthelongrangeeducates,passingthecalculatornetworkrealizesforeignlandeducationwithtrain.Now,thetechnicaldevelopmentinhardwareincalculatorhascometoaveryhighhorizontal.But,thelongrangeeducatethedevelopmentofthesoftwaretostillbeplacedinthestageinstartnow,alongwiththistechnicalcontinuouslythoroughdevelopment,willbegthebetterandmoreperfectsoftwaresystemapplytothelongrangetheeducationcentergoto,facetonowthenetworkplaitdistance,databasevisitinvarioustechniques,forexampleintheJSP,PHP,ASP,ASPwithitsdevelopmentcycleshort,accessdatasimple,run-timevelocityquickandbecometheheadofnumerousthememberofwebprocedureschoosestodevelopthetechnique.butbecauseofdevelopmentthemeanskeepstheview,fleetnesswithefficiently,alsobroughtthecertainlysafehiddentrouble.Thedatabaseisthefoundationoftheon-lineexaminationsystem,usuallyallkeepingtheimportantinformation.Educatethesectiontokeepwiththeelectrondataoftheschoolallmostlyineverykindofdatabase,theykeepthesomepersonaldatawiththesedatabases,forexamplestudentscoreetc.Theon-lineexaminationsystemdatabaseserverstillcontrolstheimpressionabledata,includingthetimeoftheexaminationwiththesubjectofexamination.Thedataintegrityaccessandwouldsufferwiththelegalityveryinmanywaysofthesafetythreatens,includingthepasswordstrategy,thebackdoorofsystem,databasetheoperationandoneselfofsafeproject.Butthewireexaminationsystemdatabaseusuallyhasnoelephantoperatesystemtosuffertovalueonthesafetylikethiswiththenetwork.Theon-lineexaminationsystemforsafetyismoreimportant,thistextwithcurrentaccordingtoWebthemostincommonuseASPinsystemininformation+SQLServer2000forasafehiddentroublefor,inquiringintoon-lineexaminationsysteminsidepossibletobeexistence,andgivethehomologoussuggestion.
Keywords:
ASP;SQLServer2000;SecurityHole;Countermeasure
1.绪论
1.1本文研究的目的和意义
随着互联网的高速发展,网络的安全问题日益凸现,尤其是近年来出现的在线考试,也由于与互联网密不可分的关系,经常受到安全威胁。
尤其以基于ASP+SQLServer2000的在线考试系统的安全问题最为突出,因此研究在线考试系统的安全问题是十分必要的。
本文就以基于ASP+SQLServer2000的在线考试系统的安全问题作为研究对象。
通过对ASP和SQLServer2000安全漏洞的对策的分析与研究,找出的在线考试系统的安全问题的解决方法。
1.2文献综述
1.2.1ASP简述
MicrosoftActiveServerPages(ASP)是多数在线考试系统服务器端脚本编写环境,使用它可以创建和运行动态、交互的Web服务器应用程序。
使用ASP可以组合HTML页、脚本命令和ActiveX组件以创建交互的Web页和基于Web的功能强大的应用程序。
现在很多在线考试方面的网站,在前台上大都用ASP来实现。
ActiveServerPage技术为应用开发商提供了基于脚本的直观、快速、高效的应用开发手段,极大地提高了开发的效果。
在讨论ASP的安全性问题之前,让我们来看看ASP是怎么工作的。
ASP脚本是采用明文(plaintext)方式来编写的。
ASP脚本是一系列按特定语法(目前支持vbscript和jscript两种脚本语言)编写的,与标准HTML页面混合在一起的脚本所构成的文本格式的文件。
当客户端的最终用户用WEB浏览器通过INTERNET来访问基于ASP脚本的应用时,WEB浏览器将向WEB服务器发出HTTP请求。
WEB服务器分析、判断出该请求是ASP脚本的应用后,自动通过ISAPI接口调用ASP脚本的解释运行引擎(ASP.DLL)。
ASP.DLL将从文件系统或内部缓冲区获取指定的ASP脚本文件,接着就进行语法分析并解释执行。
最终的处理结果将形成HTML格式的内容,通过WEB服务器"原路"返回给WEB浏览器,由WEB浏览器在客户端形成最终的结果呈现。
这样就完成了一次完整的ASP脚本调用。
若干个有机的ASP脚本调用就组成了一个完整的ASP脚本应用。
让我们来看看运行ASP所需的环境:
MicrosoftInternetInformationServer3.0/4.0/5.0onNTServer/Linux
MicrosoftInternetInformationServer3.0/4.0/5.0onWin2000/Win2003
MicrosoftPersonalWebServeronWindows95/98
WINDOWS网络操作系统所带的MicrosoftIIS提供了强大的功能,但是IIS在网络安全方面却是比较危险的。
1.2.2SQLServer2000简述
微软的SQLServer是一种广泛使用的数据库,很多在线考试系统平台等都是基于SQLServer上的,但是在线考试系统数据库的安全性还没有被人们更系统的安全性等同起来,多数管理员认为只要把网络和操作系统的安全搞好了,那么所有的应用程序也就安全了。
大多数系统管理员对在线考试系统数据库不熟悉而数据库管理员有对安全问题关心太少,而且一些安全公司也忽略在线考试系统数据库安全,这就使数据库的安全问题更加严峻了。
在线考试系统系统中存在的安全漏洞和不当的配置通常会造成严重的后果,而且都难以发现。
数据库应用程序通常同操作系统的最高管理员密切相关。
广泛SQLServer数据库又是属于“端口”型的数据库,这就表示任何人都能够用分析工具试图连接到在线考试系统数据库上,从而绕过操作系统的安全机制,进而闯入系统、破坏和窃取考试资料,甚至破坏整个系统。
2.ASP漏洞分析和解决方法
ASP是开发在线考试系统网站应用的快速工具,但是有些网站管理员只看到ASP的快速开发能力,却忽视了ASP安全问题。
ASP从一开始就一直受到众多漏洞,后门的困扰,包括%81的噩梦,密码验证问题,IIS漏洞等等都一直使ASP网站开发人员心惊胆跳。
本部分试图从开放了ASP服务的操作系统漏洞和ASP程序本身漏洞,阐述ASP安全问题,并给出解决方法。
2.1在ASP程序后加个特殊符号,能看到ASP源程序
受影响的版本:
win95+pws、IIS3.0
98+pws4不存在这个漏洞
IIS4.0以上的版本也不存在这个漏洞
问题描述:
这些特殊符号包括小数点,%81,:
:
$DATA。
比如:
http:
//someurl/somepage.asp.
http:
//someurl/somepage.asp%81
http:
//someurl/somepage.asp:
:
$DATA
http:
//someurl/somepage.asp%2e
http:
//someurl/somepage%2e%41sp
http:
//someurl/somepage%2e%asp
http:
//someurl/somepage.asp%2e
http:
//someurl/msadc/samples/selector/showcode.asp?
source=/msadc/samples/../../../../../../boot.ini(可以看到boot.ini的文件内容)
那么在安装有IIS3.0和win95+PWS的浏览中就很容易看到somepage.asp的源程序。
究竟是什么原因造成了这种可怕的漏洞呢?
究其根源其实是WindowsNT特有的文件系统在做怪。
有一点常识的人都知道在NT提供了一种完全不同于FAT的文件系统:
NTFS,这种被称之为新技术文件系统的技术使得NT具有了较高的安全机制,但也正是因为它而产生了不少令人头痛的隐患。
大家可能不知道,NTFS支持包含在一个文件中的多数据流,而这个包含了所有内容的主数据流被称之为"DATA",因此使得在浏览器里直接访问NTFS系统的这个特性而轻易的捕获在文件中的脚本程序成为了可能。
然而直接导致:
:
$DATA的原因是由于IIS在解析文件名的时候出了问题,它没有很好地规范文件名。
解决方法:
如果是WinodwsNT用户,安装IIS4.0或者IIS5.0,Windows2000不存在这个问题。
如果是win95用户,安装WIN98和PWS4.0。
[1]
2.2ACCESS数据库有可能被下载的漏洞
问题描述:
在用ACCESS做后台数据库时,如果有人通过各种方法知道或者猜到了服务器的ACCESS数据库的路径和数据库名称,那么他能够下载这个ACCESS数据库文件,这是非常危险的。
比如:
如果你的ACCESS数据库book.mdb放在虚拟目录下的database目录下,那么有人在浏览器中打入:
http:
//someurl/database/book.mdb,
如果你的book.mdb数据库没有事先加密的话,那book.mdb中所有重要的数据都掌握在别人的手中。
解决方法:
(1)为你的数据库文件名称起个复杂的非常规的名字,并把他放在几目录下。
所谓"非常规",打个比方:
比如有个数据库要保存的是有关书籍的信息,可不要把他起个"book.mdb"的名字,起个怪怪的名称,比如d34ksfslf.mdb,再把他放在如./kdslf/i44/studi/的几层目录下,这样黑客要想通过猜的方式得到你的ACCESS数据库文件就难上加难了。
(2)不要把数据库名写在程序中
有些人喜欢把DSN写在程序中,比如:
DBPath=Server.MapPath("cmddb.mdb")
conn.Open"driver={MicrosoftAccessDriver(*.mdb)};dbq="&DBPath
假如万一给人拿到了源程序,ACCESS数据库的名字就一览无余。
因此使用ODBC里设置数据源,再在程序中这样写:
conn.open"shujiyuan"
(3)使用ACCESS来为数据库文件编码及加密
首先在选取"工具->安全->加密/解密数据库,选取数据库(如:
employer.mdb),然后接确定,接着会出现"数据库加密后另存为"的窗口,存为:
employer1.mdb。
接着employer.mdb就会被编码,然后存为employer1.mdb.。
要注意的是,以上的动作并不是对数据库设置密码,而只是对数据库文件加以编码,目的是为了防止他人使用别的工具来查看数据库文件的内容。
接下来我们为数据库加密,首先以打开经过编码了的employer1.mdb,在打开时,选择"独占"方式。
然后选取功能表的"工具->安全->设置数据库密码",接着输入密码即可。
为employer1.mdb设置密码之后,接下来如果再使用ACCEES数据库文件时,则ACCESS会先要求输入密码,验证正确后才能够启动数据库。
不过要在ASP程序中的connection对象的open方法中增加PWD的参数即可,例如:
param="driver={MicrosoftAccessDriver(*.mdb)};Pwd=yfdsfs"
param=param&";dbq="&server.mappath("employer1.mdb")
conn.openparam
这样即使他人得到了employer1.mdb文件,没有密码他是无法看到employer1.mdb的。
[2]
2.3code.asp文件会泄漏ASP代码
问题描述:
举个很简单的例子,在微软提供的ASP1.0的例程里有一个.asp文件专门用来查看其它.asp文件的源代码,该文件为ASPSamp/Samples/code.asp。
如果有人把这个程序上传到服务器,而服务器端没有任何防范措施的话,他就可以很容易地查看他人的程序。
例如:
code.asp?
source=/directory/file.asp,不过这是个比较旧的漏洞了,相信现在很少会出现这种漏洞。
下面这命令是比较新的:
http:
//someurl/iissamples/exair/howitworks/code.asp?
/lunwen/soushuo.asp=xxx.asp。
最大的危害莫过于asp文件可以被上述方式读出;数据库密码以明文形式暴露在黑客眼前。
问题解决:
对于IIS自带的showaspcode的asp程序文件,删除该文件或者禁止访问该目录即可。
[3]
2.4filesystemobject组件篡改下载fat分区上的任何文件的漏洞
问题描述:
IIS3、IIS4的ASP的文件操作都可以通过filesystemobject实现,包括文本文件的读写目录操作、文件的拷贝改名删除等,但是这个强大的功能也留下了非常危险的"后门"。
利用filesystemobjet可以篡改下载fat分区上的任何文件。
即使是ntfs分区,如果权限没有设定好的话,同样也能破坏,一不小心你就可能遭受"灭顶之灾"。
遗憾的是很多网络管理人员只知道让web服务器运行起来,很少对ntfs进行权限设置,而NT目录权限的默认设置偏偏安全性又低得可怕。
问题解决:
作为考试系统的管理人员必须密切关注服务器的设置,尽量将web目录建在ntfs分区上,目录不要设定everyonefullcontrol,即使是是管理员组的成员一般也没什么必要fullcontrol,只要有读取、更改权限就足够了。
也可以把filesystemobject的组件删除或者改名。
[4]
2.5输入标准的HTML语句或者javascript语句会改变输出结果
问题描述:
在输入框中打入标准的HTML语句会得到什么相的结果呢?
比如一个留言本,我们留言内容中打入:
如果你的ASP程序中没有屏蔽html语句,那么就会改变"你好"字体的大小。
在留言本中改变字体大小和贴图有时并不是什么坏事,反而可以使留言本生动。
但是如果在输入框中写个javascript的死循环,比如:
//someurl"onMouseover="while (1){window.close('/')}">特大新闻,那么其他查看该留言的客人只要移动鼠标到"特大新闻",上就会使用户的浏览器因死循环而死掉。 解决方法: 编写类似程序时应该做好对此类操作的防范,譬如可以写一段程序判断客户端的输入,并屏蔽掉所有的HTML、javascript语句。 [5] 2.6ASP程序密码验证漏洞 漏洞描述: 很多在线考试系统把密码放到数据库中,在登陆验证中用以下sql,(以asp为例) sql="select*fromuserwhereusername='"&username&"'andpass='"&pass&'"此时,您只要根据sql构造一个特殊的用户名和密码,如: ben'or'1'='1 就可以进入本来你没有特权的页面。 再来看看上面那个语句吧: sql="select*fromuserwhereusername='"&username&"'andpass='"&pass&'"此时,您只要根据sql构造一个特殊的用户名和密码,如: ben'or'1'='1 这样,程序将会变成这样: sql="select*fromusernamewhereusername="&ben'or'1'=1&"andpass="&pass&"or是一个逻辑运算符,作用是在判断两个条件的时候,只要其中一个条件成立,那么等式将会成立.而在语言中,是以1来代表真的(成立).那么在这行语句中,原语句的"and"验证将不再继续,而因为"1=1"和"or"令语句返回为真值.。 另外我们也可以构造以下的用户名: username='aa'orusername<>'aa',pass='aa'orpass<>'aa' 相应的在浏览器端的用户名框内写入: aa'orusername<>'aa 口令框内写入: aa'orpass<>'aa, 注意这两个字符串两头是没有'的。 这样就可以成功的骗过系统而进入。 后一种方法理论虽然如此,但要实践是非常困难的,下面两个条件都必须具备: (1)首先要能够准确的知道系统在表中是用哪两个字段存储用户名和口令的,只有这样才能准确的构造出这个进攻性的字符串。 实际上这是很难猜中的。 (2)系统对输入的字符串不进行有效性检查。 问题解决: 对输入的内容验证和"'"号的处理。 [6] 2.7INDEXSERVER服务会漏洞ASP源程序 问题描述: 在运行IIS4或者IIS5的IndexServer,输入特殊的字符格式可以看到ASP源程序或者其它页面的程序。 甚至以及添打了最近关于参看源代码的补丁程序的系统,或者没有.htw文件的系统,一样存在该问题。 获得asp程序,甚至global.asa文件的源代码,无疑对考试系统是一个非常重大的安全隐患。 往往这些代码中包含了用户密码和ID,以及数据库的源路径和名称等等。 这对于攻击者收集系统信息,进行下一步的入侵都是非常重要的。 通过构建下面的特殊程序可以参看该程序源代码: http: //202.116.26.38/null.htw? CiWebHitsFile=/default.asp&CiRestriction=none&CiHiliteType=Full 这样只是返回一些html格式的文件代码,但是当你添加%20到CiWebHitsFile的参数后面,如下: http: //someurl/null.htw? CiWebHitsFile=/default.asp%20&CiRestriction=none&CiHiliteType=Full 这将获得该程序的源代码。 (注意: /default.asp是以web的根开始计算。 如某站点的 http: //welcome/welcome.asp 那么对应就是: http: //someurl/null.htw? CiWebHitsFile=/welcome/welcome.asp%20&CiRestriction=none&CiHiliteType=Full) 由于'null.htw'文件并非真正的系统映射文件,所以只是一个储存在系统内存中的虚拟文件。 哪怕你已经从你的系统中删除了所有的真实的.htw文件,但是由于对null.htw文件的请求默认是由webhits.dll来处理。 所以,IIS仍然受到该漏洞的威胁。 问题解决: 如果该webhits提供的功能是系统必须的,请到 http: //www.micros
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 在线 考试 系统 安全漏洞 对策