基于网络爬虫XSS漏洞挖掘技术.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于网络爬虫XSS漏洞挖掘技术

基于网络爬虫XSS漏洞挖掘技术   摘 要:随着社会的发展和科技的进步,互联网已成为人类获取信息的重要工具。在Internet给信息社会带来的极大便利的同时,也带来了许多安全隐患,跨站脚本攻击(XSS)在众多的Web漏洞中位居榜首。为此,提出了一种基于网络爬虫的XSS漏洞挖掘技术,包括网络爬虫模块、代码自动注入模块和漏洞检测模块。通过实验证明,本文对XXS漏洞检测效果较好。 关键词:XSS;网络爬虫;漏洞挖掘 1 引言 Web技术是Internet上最具活力和发展潜力的技术,它广泛应用于商业、教育、娱乐等领域,但是它存在许多的漏洞。由于Internet的不安全性,许多恶意攻击者意图进行Web攻击。而在众多的Web攻击中,跨站脚本攻击(XSS)所占的比例非常大。XSS指的是恶意攻击者利用Web服务器中的漏洞将恶意代码插入远程Web页面,当用户访问此页面时,嵌入其中的代码便会执行,从而盗取用户的信息。跨站脚本攻击代码的种类非常多,对所有的用户输入进行检测是一件十分困难的事情。因而,本文提出了一种基于网络爬虫的XSS漏洞挖掘技术。 2 基于网络爬虫的XSS漏洞挖掘技术 基于网络爬虫的XSS 漏洞挖掘技术可以分为3个模块:网络爬虫模块、代码自动注入模块和漏洞检测模块。 2.1 网络爬虫模块 网络爬虫是搜索引擎的重要构件之一,它是一个自动下载程序。网络爬虫模块的具体过程是:网络爬虫从一个初始的URL出发,从该网页中不断地提取新的URL,然后将该URL按照FIFO顺序放入爬虫队列,从该爬虫队列中顺序取出新的URL,下载对应的页面,并从该新的页面中提取新的URL,不断地重复该过程,直到爬虫队列中不含有URL或达到页面最大深度。在网络爬虫过程中,需要不断向服务器发送Web请求,那么在数据传输过程中通过将编码进行压缩可以有效减少网络中传送的数据。Gzip是一种压缩效果十分好的压缩算法,通过该算法压缩的数据可以使压缩后的文件是原先文件的30%,在客户端对数据进行压缩后,该功能在服务器端也必须设置,这样服务器才能接受此请求,服务器端可以使用过滤器对其进行解压。网络爬虫在爬取链接时,需要管理很多的套接字,使用完成端口模型方式可以使系统达到最佳的性能。在Windows系统下,利用它不但可以接受套接字句柄,而且还可以接受其它服务。提供服务完成端口模型要求创建一个Windows完成端口对象,用它管理多个I/O请求。在对页面进行解析时采用正则表达式进行匹配,从而提取出所需的数据。利用正则表达式提取出URL后,还需要将它转换成绝对路径。Uri url=new Uri(src_uri,new_uri);//转绝对路径方式的URL。在爬虫的过程中可能存在许多重复的URL,如果将每个URL进行匹配来判断是否重复需要消耗大量的时间。前面我们已经阐述过在提取URL时需要将其压缩编码传输,我们可以对其压缩后的编码建立Hash表,这样便可以判定URL是否重复。我们访问的URL大多数是以http://或https://开始而以.html、.asp、.com、.cn等常见的字符终止的,因此,当我们对字符进行hash时,应当去除开始和结尾的常见字符,这样可以减少碰撞发生的概率。本文提出了一种新的算法----M-Interval-Hash,可以计算URL的hash值:令M=去掉常见字符后的字符长度/N,代表在URL中选取字符时间隔的字符数。N是一个按照经验来设置的参数,例如,N=3,字符长度为36,则M=12,表示选取字符的间隔是12个字符。 2.2 代码自动注入模块 在对XSS漏洞进行挖掘时,需要注入代码来测试漏洞是否存在,而在XSS中,恶意代码的注入可以是在GET请求中,也可以是POST请求。所以,在代码自动注入时,应该考虑上述两种情形。在代码注入时,测试每一个注入点,测试时按照数据库中测试代码顺序依次从数据库中取出一条记录,直到数据库中的记录为空。 2.3 漏洞检测模块 代码注入完成之后,还需要对注入的结果进行检测,以确定是否存在该漏洞。本文通过匹配漏洞特征库来判断XSS漏洞是否执行成功。从漏洞特征库读取XSS注入漏洞的测试脚本,对每个GET变量和POST变量依次进行XSS攻击。然后分析从Web服务器端返回的响应消息,看其是否满足漏洞库中该漏洞的特征。若满足,则说明存在XSS漏洞,否则不存在。 XSS的测试效果很大程度上由测试脚本的质量决定,本方案选择的脚本为OWASP所推荐的测试脚本。 3 实验结果及比较 3.1 网络爬虫模块中URL去重算法测试 为了验证本文技术方案的可行性,首先对URL去重算法进行了验证,将M-Interval-Hash算法与MD5算法进行比较。实验环境采用一台计算

文档评论(0)

linsspace + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档