基于模糊测试的漏洞发现-跨站脚本模糊测试-学位论文.doc
《基于模糊测试的漏洞发现-跨站脚本模糊测试-学位论文.doc》由会员分享,可在线阅读,更多相关《基于模糊测试的漏洞发现-跨站脚本模糊测试-学位论文.doc(58页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 毕业设计(论文)题目名称:基于模糊测试的漏洞发现跨站脚本模糊测试院系名称:计算机学院班 级:网络072班学 号:200700824214学生姓名:李宗辉指导教师:李向东 2011年 06月 III 论文编号:(200700824214) 基于模糊测试的漏洞发现跨站脚本模糊测试Vulnerability Discovery based on fuzz testingXSS fuzz testing院系名称:计算机学院班 级:网络072班学 号:200700824214学生姓名:李宗辉指导教师:李向东 2011年 06月中文摘要跨站脚本漏洞是Web应用程序中最常见的一种漏洞,广泛存在于Web应用
2、程序和服务器中,很多计算机病毒、蠕虫等都是利用了跨站脚本,其危害性甚大。怎样发掘Web应用程序中跨站脚本漏洞,成了Web应用程序开发人员关注的重要问题。本文以Web应用程序跨站脚本为研究对象,研究Web应用程序跨站脚本漏洞模糊测试技术。论文包括以下研究工作。 首先,分析跨站脚本漏洞成因,重点研究了HTML,JavaScript。触发跨站脚本的原因分为以下两种:通过闭合标签触发跨站脚本,通过标签属性传递值触发跨站脚本。跨站脚本分为两种类型:反射型跨站脚本和持久型跨站脚本。然后,使用源代码分析方法发掘跨站脚本。在分析跨站脚本成因时,提出了利用源代码挖掘跨站脚本的方法。用这种方法挖掘跨站脚本是最基础
3、的一种挖掘方法,用分析源代码的方法寻找到若干跨站脚本漏洞。再者,重点分析了模糊测试原理,提出了模糊测试功能需求分析和框架设计,研究了实现模糊测试技术的核心算法。研究了模糊测试技术挖掘跨站脚本漏洞的方法技巧,总结了关键步骤,使用模糊器挖掘若干未知漏洞。最后应用模糊测试技术,发掘未知跨站脚本漏洞,并做收集记录添加在附录C中。本文研究意义为:能迅速挖掘跨站脚本漏洞,能有效测试Web应用程序中的跨站脚本。这为继续研究模糊测试Web应用程序提供了基础,为构建Web应用程序模糊测试系统探索了思路。关键词: Web应用程序; 跨站脚本; 模糊测试技术; 模糊器; WebFuzzAbstractCross-s
4、ite scripting vulnerability is the most common web applications and servers vulnerability, which widely exists in the internet. Many computer viruses and worms are based on cross-site scripts. And the cross-site scripts harm is very serious. So how to explore cross-site scripting vulnerabilities has
5、 been the web application developers important concern. The main work what I have done in this paper is the following research:First, what I have done is analyzing the causes of cross-site scripting vulnerability. For this, I mainly focus on the HTML, JavaScript knowledge. And as a result, I divide
6、the reasons into the following two situations: triggered by closing tags, or triggered by passing tags property value. And also I find that cross-site scripting vulnerability can be divided into two types: Reflected XSS and Stored XSS. Second, what I have done is using the source code analysis metho
7、d to explore cross-site scripting vulnerabilities. When I analyze the causes of cross-site scripting vulnerability, I propose how to use source code method to explore cross-site scripting. It is the most basic method to explore XSS by this way. I have found a number of cross-site scripting vulnerabi
8、lities with analyzing the source code method. Third, what I have done is studying web fuzz testing technique. I introduced the fuzz testing technology, which is the focus of this paper. I also analyzed the theory of the fuzz testing, then I suggested the requirement analysis and the framework of des
9、igning. I studied the core algorithms again. At last I summarized the step of exploring cross-site scripting with fuzz testing technology. Fourth, I use the fuzz testing technology to explore the unknown cross-site scripting, and do collect in the appendix C. At the end of this paper I have found so
10、me unknown XSS with the fuzzer.The significance of this research is that we can explore cross-site scripting and test web application fast and efficiently. It provides a foundation for building web applications, for constantly researching fuzz testing technology. Key words: web application; cross-si
11、te scripting vulnerability; Fuzzing testing technology; Fuzzer; WebFuzz 目 录中文摘要IAbstractII目 录III第1章 前言11.1 研究背景11.2 研究内容21.2.1 Web应用程序漏洞21.2.2 模糊测试技术31.2.3 研究现状、存在问题及应用领域31.3 研究任务41.4 论文结构5第2章 跨站脚本分析62.1 跨站脚本概述62.2 跨站脚本成因62.2.1 超文本标记语言62.2.2 JavaScript82.2.3 跨站脚本产生的原因92.3跨站脚本的分类122.3.1 Non-persisten
12、t(非持久型)122.3.2 Persistent(持久型)122.4跨站攻击与跨站脚本的危害132.4.1 跨站攻击132.4.2 跨站脚本的利用模式132.5本章小结14第3章 Web模糊测试技术153.1 HTTP状态码和信息头153.2 模糊测试原理153.3 模糊器功能需求分析163.3.1 请求173.3.2 模糊变量183.3.3 响应183.4 模糊器框架设计183.5 模糊器设计核心函数193.5.1 生成请求193.5.2 sendRequest类203.5.3 接收响应213.6 本章总结22第4章 跨站脚本漏洞挖掘234.1 源代码分析方法挖掘XSS234.1.1 正常
13、状态记录234.1.2 返回信息源代码分析244.2 模糊测试方法挖掘XSS254.2.1 正常状态记录264.2.2 使用Fiddler工具264.2.3 Ping目标主机IP地址284.2.4 在模糊器中输入信息294.2.5 开始测试314.2.6 验证准确性324.3 两种测试方法的比较334.4 本章总结33第5章 结 论345.1 模糊测试技术总结345.2 模糊测试发展前景35参考文献36致 谢37附 录38附录A 图目录38附录B 主要源程序39附录C 跨站脚本记录50 49中原工学院计算机学院毕业(设计)论文第1章 前言随着计算机通信技术的飞速发展,Web应用程序得到了越来越
14、多的应用。Web应用程序的安全性成为了一个复杂性的课题。怎么进行Web应用程序安全测试,怎么进行Web应用程序漏洞挖掘,已经成为Web应用程序开发者和Web应用程序安全维护者关心的重要议题。本篇论文将用最新的Web应用程序漏洞发掘技术模糊测试技术,对Web应用程序中跨站脚本漏洞进行挖掘。1.1 研究背景2010年8月中国互联网络中心CNNIC发布中国互联网发展现状报告。报告显示,中国网民规模持续增长,互联网应用深度不断提升,商务类应用成为新的增长点。其中网上支付、网络购物、网上银行增长最为强劲。企业借助互联网进行商务活动的价值日益凸显,企业利用互联网的积极性不断提高,企业在互联网上的投入也不断
15、提高,包括建站、交易平台入驻、网络营销等。由此可见,网络已经成为发布信息,获得信息,资源下载,网络应用,电子消费,电子政务等等的重要平台,而建立在庞大、集成的网络基础上的多平台、网络化、充分集成的Web应用程序已成为上述业务最流行的处理模式。但与此同时,承载着重要而丰富功能与用途的Web应用和服务器也成为恶意用户与黑客等攻击者的主要目标。因此,如何确保Web应用程序的安全已成为企业,政府,特别是金融系统、电子政务和电子购物系统所面临的主要挑战。为了防止政府系统、企业用户、广大个人用户成为Web应用程序安全性问题的受害者,应该关注Web应用程序和服务器的安全性问题。作为普通用户不应该利用Web应
16、用程序和服务器的安全性问题危害公众利益,作为技术人员应该维护Web应用程序和服务器的安全性,作为开发人员应该将Web应用程序和服务器的安全性放到重要位置。这对计算机通信技术的发展来说是很重要的。对Web应用程序和服务器的安全性的关注,其中最重要的一个方面是对其进行安全性测试,发掘其中存在的安全漏洞。可以采取很多不同的方法进行安全性测试,从大的方面来说可以分为白盒测试和黑盒测试两个方面,Web应用程序模糊测试技术是黑盒测试的一种,是自动化的黑盒测试技术。它是通过提供非预期的输入并监视异常结果来发现Web应用程序故障的方法。1.2 研究内容本小节将讲述Web应用程序和Web应用程序漏洞的有关知识,
17、然后介绍什么是Web应用程序和服务器模糊测试技术,并介绍Web应用程序和服务器模糊测试技术的研究现状、存在的问题和应用领域。1.2.1 Web应用程序漏洞Web应用程序(Web Application)是指用户界面驻留在Web浏览器中的任何应用程序,包括内容管理系统(CMS)、wiki百科、门户网站、电子公告板、论坛等。它基于Web运行,是浏览器-服务器架构的典型产物。Web应用程序漏洞特指由于开发者编码不慎、没有对用户的输入进行充分验证和过滤而引入的漏洞,它主要包括跨站脚本(XSS)、SQL 注入、远程文件包含(RFI)、跨站请求伪造(CSRF)、目录遍历等。 致力于提高Web应用程序安全性
18、的开放社群OWASP(Open Web Application Security Project,开放Web应用程序安全项目)在2010年4月19日公布的OWASP十大互联网应用程序风险(OWASP Top 10 for 2010)依次是:A1: Injection注入攻击A2: Cross-Site Scripting (XSS)跨站脚本A3: Broken Authentication and Session Management失效的身份认证和会话管理A4: Insecure Direct Object References不安全的直接对象引用A5: Cross-Site Request
19、 Forgery (CSRF)跨站请求伪造A6: Security Misconfiguration安全配置错误A7: Insecure Cryptographic Storage不安全的加密存储A8: Failure to Restrict URL Access没有限制URL访问A9: Insufficient Transport Layer Protection传输层保护不足A10: Unvalidated Redirects and Forwards未验证的重定向和转发十大风险的名称有的来自于攻击的类型,有的来自于漏洞,而有的来自于所造成的影响。攻击者可以通过应用程序中许多不同的路径方法
20、去危害你的业务或者企业组织。每种路径方法都代表了一种风险。不同的路径方法,所利用的Web应用程序安全漏洞就有可能不同。如下图1-1就是利用不同Web应用程序安全漏洞产生风险的过程图: 图1- 1 利用不同Web应用程序安全漏洞产生风险过程图1.2.2 模糊测试技术模糊测试技术,又被称为Fuzzing,它是通过提供非预期的输入并监视异常结果来发现Web应用程序故障的方法。是一种广为使用的自动化的漏洞挖掘技术,它是一种特殊的动态测试方法。模糊测试技术可以被定义为通过提供非预期的输入并监视异常结果来发现软件故障的方法。模糊测试技术是近几年兴起的漏洞挖掘技术。最初用来测试操作系统及其上应用软件的健壮性
21、,后来被应用于漏洞挖掘中。Fuzzing技术是一种高度自动化的,高效的漏洞挖掘技术。Web应用程序自动化的模糊测试是模糊测试技术的延伸,是一种特殊形式的网络协议模糊测试,特别关注于遵循HTTP规范的包。是一种黑盒测试,在很大程度上是一种强制性的技术,把能够想到的所有的东西都抛给被测目标,然后监视结果。结合Web应用程序安全性测试的特点以及自动化的模糊测试的特点,会看到自动化的模糊测试技术在发掘Web应用程序上的方便性和有效性。事实证明自动化的模糊测试技术能够发掘Web应用程序中隐藏的用其他方法难以发掘的漏洞。1.2.3 研究现状、存在问题及应用领域研究现状:到目前为止,Web应用程序的模糊测试
22、技术取得了一定的进展,但是这项技术仍然在初级阶段,大部分工具仍然是相对较小的项目,由几个人组成的小组甚至一名程序员来维护,未来的模糊测试将会有许多革新和发展,模糊测试还会发展到新的阶段。这些年,模糊测试已经开始从学术研究向商业应用方向发展,有越来越多的开发人员开始接受模糊测试技术。使用模糊测试技术,研究人员已经开发了不少的应用于Web应用程序漏洞的挖掘的模糊器,例如有SPIKE代理,WebScarab,SPI模糊器,Codenomicon HTTP测试工具,beSTORMOLU等等,这些都是优秀的基于模糊测试技术的具有发掘Web应用程序和服务器漏洞功能的模糊器。存在的问题:但是这些工具大多是商
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 模糊 测试 漏洞 发现 脚本 学位 论文
限制150内