服务器软件漏洞测试程序的设计与实现.docVIP

服务器软件漏洞测试程序的设计与实现.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
服务器软件漏洞测试程序的设计与实现.doc

  服务器软件漏洞测试程序的设计与实现 摘要:服务器软件漏洞是导致 网络 不安全的重要因素,当前还没有什么 方法 能保证服务器软件没有漏洞,因此漏洞测试在网络安全方面占有重要地位。本文给出了一个通用漏洞测试程序的设计与实现,设计方案采用脚本、样本包及动态链接库技术,使得测试程序与协议无关,提高了通用性。 关键词:网络安全; 漏洞测试; 样本包; 动态链接库 网络安全是当前的热门话题,互联网安全性差的重要表现是服务器软件大多存在漏洞,黑客的入侵行为大多是利用服务器漏洞实现的。现在,每天都有新的服务器软件出现,但这些软件基本上都存在着漏洞,按照传统的测试方法,依靠测试人员去 分析 代码来完成测试,显然是满足不了需求的。网络服务器软件的漏洞测试是一个十分重要的 问题 ,设计一个较为自动化、通用的漏洞测试工具是十分必要的。 一般漏洞 研究 方法是先熟悉软件功能,分析服务协议,检查程序代码,然后再推测什么情况下会出现漏洞。这是一个工作量很大的过程,而且开发出来的测试程序也是针对特定软件,不能通用。我们的测试软件要做到通用,就要找出网络服务器软件的共同特性,采用易于配置,易于扩展的结构。 1.网络服务的共性及漏洞产生原因 网络服务基本上都是基于客户机-服务器模型。 请求数据包 响应数据报 图1 客户机发出请求数据包,服务器返回响应数据包,即Request-Response方式。服务的共性就在于客户机与服务器通过数据包进行通信。每个服务都有自己的 应用 层协议。服务器软件的应用层协议决定了服务器对请求数据包里的 内容 怎么解释,所以协议也就体现在数据包中。服务器软件的漏洞一般是因为服务器对异常的请求数据包不能正确响应。对于异常的请求数据包,像数据包里有太长的文件名或文件目录路径包含特殊字符等,如果服务器软件不能正确处理,就可能导致缓冲区溢出、泄露服务器重要信息、拒绝服务等问题,使得入侵者有机可乘。如IIS服务器的UNICODE编码漏洞,对于未打补丁的IIS服务器,如果入侵者输入类似 x.x.x.x/scripts/..%255c../32/cmd.exe/c+dir+c:\ 的请求,IIS服务器会将文件路径中的%255c解释为“/”,绕过系统安全策略,在服务器上执行dir 命令,并将结果返回给客户端。利用这种方法,可在服务器上执行任何系统命令,能轻而易举的控制整个服务器。我们的测试程序就是要能自动生成各种可能导致服务器不正常工作的请求数据包,并分析返回的响应信息,找出漏洞所在。 2.测试程序的设计方案 为了通用,测试程序不能过多涉及到具体协议,而测试数据包的格式又要符合具体协议,这是一个矛盾。我们采用样本包和动态链接库的方法来解决这个矛盾。样本包,即有代表性的数据包,依服务为例,请求数据包“GET /pub/index.htm HTTP/1.1”可以很好的代表一类请求,就可以作为一个样本包。如果只对这个样本包中的某个数据域进行变换,则生成数据包的格式一般也是满足服务通信协议的。对于一个具体服务,它的协议体现在通信所用的数据包中,我们可以收集一个足以体现该服务协议的样本包集,采用一个脚本来描述这些样本包,要测试不同的服务软件,只须编写与之对应的脚本即可。测试程序只对脚本进行处理,不必与具体协议相关,也就实现了通用性。整个测试程序的系统框图如图2所示,测试数据包生成模块处理脚本,生成测试数据包,发送给服务器;响应信息分析模块分析返回信息,并将分析结果保存在记录文件中。 脚本 记录文件 图2 2.1脚本 脚本是对样本包集的描述,服务器软件的协议体现在脚本中。测试数据包就是对样本包的某个域进行变换后得到的数据包。 为了便于程序处理,定义了几个关键字: SAMPS , 样本包开始;ITEM , 数据项; SAMPE ,样本包结束; RESULT ,返回结果特征串; “ ; ”,3.实现中的关键 问题 测试程序用vc++6.0写成,在实现中有几个关键问题: 3.1 样本包的获取 样本包可以通过 分析 网络 服务器软件的协议,手工设置;也可以通过截包程序来获得样本包。要想得到好的测试效果,这两种 方法 要综合 应用 。另一个问题是特殊字符的处理,如“\r”,”\n”等,测试程序利用它们作为分隔符,但样本包中也可能包含这些字符。对于这类字符,在脚本中用“%”后加特殊字符的ASCII码来表示,”\r”即为“%0D”。从脚本中读取特殊字符后的转换函数为 …. if(s= = % ) //字符串s 中s为%,s[i+1],s[i+2]为特殊字符的ASCII码 { str[j]=(isdigit(s[i+1]) ? (s[i+1]-0):(toupper(s[i+1])-A+10))*16 +(isdigit(s[

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档