1、 毕业设计(论文)题目名称:基于模糊测试的漏洞发现跨站脚本模糊测试院系名称:计算机学院班 级:网络 072 班学 号:200700824214学生姓名:李宗辉指导教师:李向东 2011 年 06 月基于模糊测试的漏洞发现跨站脚本模糊测试Vulnerability Discovery based on fuzz testingXSS fuzz testing院系名称:计算机学院班 级:网络 072 班学 号:200700824214学生姓名:李宗辉指导教师:李向东 2011 年 06 月论文编号:(200700824214)I中文摘要跨站脚本漏洞是 Web 应用程序中最常见的一种漏洞,广泛存在于
2、 Web 应用程序和服务器中,很多计算机病毒、蠕虫等都是利用了跨站脚本,其危害性甚大。怎样发掘 Web应用程序中跨站脚本漏洞,成了 Web 应用程序开发人员关注的重要问题。本文以 Web 应用程序跨站脚本为研究对象,研究 Web 应用程序跨站脚本漏洞模糊测试技术。论文包括以下研究工作。 首先,分析跨站脚本漏洞成因,重点研究了 HTML,JavaScript。触发跨站脚本的原因分为以下两种:通过闭合标签触发跨站脚本,通过标签属性传递值触发跨站脚本。跨站脚本分为两种类型:反射型跨站脚本和持久型跨站脚本。然后,使用源代码分析方法发掘跨站脚本。在分析跨站脚本成因时,提出了利用源代码挖掘跨站脚本的方法。
3、用这种方法挖掘跨站脚本是最基础的一种挖掘方法,用分析源代码的方法寻找到若干跨站脚本漏洞。再者,重点分析了模糊测试原理,提出了模糊测试功能需求分析和框架设计,研究了实现模糊测试技术的核心算法。研究了模糊测试技术挖掘跨站脚本漏洞的方法技巧,总结了关键步骤,使用模糊器挖掘若干未知漏洞。最后应用模糊测试技术,发掘未知跨站脚本漏洞,并做收集记录添加在附录 C 中。本文研究意义为:能迅速挖掘跨站脚本漏洞,能有效测试 Web 应用程序中的跨站脚本。这为继续研究模糊测试 Web 应用程序提供了基础,为构建 Web 应用程序模糊测试系统探索了思路。关键词: Web 应用程序; 跨站脚本; 模糊测试技术; 模糊器
4、; WebFuzzIIAbstractCross-site 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 scr
5、ipting vulnerabilities has 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.
6、And as a result, I divide 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
7、source code analysis method 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 cros
8、s-site scripting vulnerabilities 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 analysi
9、s and the framework of designing. 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
10、this paper I have found some 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:
11、 web application; cross-site scripting vulnerability; Fuzzing testing technology; Fuzzer; WebFuzzIII目 录中文摘要 .IAbstract .II目 录 .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
12、.2.2 JavaScript.82.2.3 跨站脚本产生的原因 .92.3 跨站脚本的分类 .122.3.1 Non-persistent(非持久型) .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 模糊
13、器设计核心函数 .193.5.1 生成请求 .193.5.2 sendRequest 类 .20IV3.5.3 接收响应 .213.6 本章总结 .22第 4 章 跨站脚本漏洞挖掘 .234.1 源代码分析方法挖掘 XSS .234.1.1 正常状态记录 .234.1.2 返回信息源代码分析 .244.2 模糊测试方法挖掘 XSS .254.2.1 正常状态记录 .264.2.2 使用 Fiddler 工具 .264.2.3 Ping 目标主机 IP 地址 .284.2.4 在模糊器中输入信息 .294.2.5 开始测试 .314.2.6 验证准确性 .324.3 两种测试方法的比较 .334
14、.4 本章总结 .33第 5 章 结 论 .345.1 模糊测试技术总结 .345.2 模糊测试发展前景 .35参考文献 .36致 谢 .37附 录 .38附录 A 图目录 .38附录 B 主要源程序 .39附录 C 跨站脚本记录 .50中原工学院计算机学院毕业(设计)论文1第 1 章 前言随着计算机通信技术的飞速发展,Web 应用程序得到了越来越多的应用。 Web应用程序的安全性成为了一个复杂性的课题。怎么进行 Web 应用程序安全测试,怎么进行 Web 应用程序漏洞挖掘,已经成为 Web 应用程序开发者和 Web 应用程序安全维护者关心的重要议题。本篇论文将用最新的 Web 应用程序漏洞发
15、掘技术模糊测试技术,对 Web 应用程序中跨站脚本漏洞进行挖掘。1.1 研究背景2010 年 8 月中国互联网络中心 CNNIC 发布中国互联网发展现状报告。报告显示,中国网民规模持续增长,互联网应用深度不断提升,商务类应用成为新的增长点。其中网上支付、网络购物、网上银行增长最为强劲。企业借助互联网进行商务活动的价值日益凸显,企业利用互联网的积极性不断提高,企业在互联网上的投入也不断提高,包括建站、交易平台入驻、网络营销等。由此可见,网络已经成为发布信息,获得信息,资源下载,网络应用,电子消费,电子政务等等的重要平台,而建立在庞大、集成的网络基础上的多平台、网络化、充分集成的 Web 应用程序
16、已成为上述业务最流行的处理模式。但与此同时,承载着重要而丰富功能与用途的 Web 应用和服务器也成为恶意用户与黑客等攻击者的主要目标。因此,如何确保 Web 应用程序的安全已成为企业,政府,特别是金融系统、电子政务和电子购物系统所面临的主要挑战。为了防止政府系统、企业用户、广大个人用户成为 Web 应用程序安全性问题的受害者,应该关注 Web 应用程序和服务器的安全性问题。作为普通用户不应该利用 Web 应用程序和服务器的安全性问题危害公众利益,作为技术人员应该维护Web 应用程序和服务器的安全性,作为开发人员应该将 Web 应用程序和服务器的安全性放到重要位置。这对计算机通信技术的发展来说是
17、很重要的。对 Web 应用程序和服务器的安全性的关注,其中最重要的一个方面是对其进行安全性测试,发掘其中存在的安全漏洞。可以采取很多不同的方法进行安全性测试,从大的方面来说可以分为白盒测试和黑盒测试两个方面,Web 应用程序模糊测试技术是黑盒测试的一种,是自动化的黑盒测试技术。它是通过提供非预期的输入并监视异常结果来发现 Web 应用程序故障的方法。李宗辉:基于模糊测试的漏洞发现21.2 研究内容本小节将讲述 Web 应用程序和 Web 应用程序漏洞的有关知识,然后介绍什么是 Web 应用程序和服务器模糊测试技术,并介绍 Web 应用程序和服务器模糊测试技术的研究现状、存在的问题和应用领域。1
18、.2.1 Web 应用程序漏洞Web应用程序(Web Application)是指用户界面驻留在Web 浏览器中的任何应用程序,包括内容管理系统(CMS ) 、wiki百科、门户网站、电子公告板、论坛等。它基于Web运行,是浏览器 -服务器架构的典型产物。 Web应用程序漏洞特指由于开发者编码不慎、没有对用户的输入进行充分验证和过滤而引入的漏洞,它主要包括跨站脚本(XSS) 、SQL 注入、远程文件包含(RFI ) 、跨站请求伪造(CSRF ) 、目录遍历等。致力于提高Web应用程序安全性的开放社群 OWASP(Open Web Application Security Project,开放W
19、eb应用程序安全项目)在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 Forgery (CSRF)跨站请求伪造A6: Security Misconfiguration安
20、全配置错误A7: Insecure Cryptographic Storage不安全的加密存储A8: Failure to Restrict URL Access没有限制URL访问A9: Insufficient Transport Layer Protection传输层保护不足A10: Unvalidated Redirects and Forwards未验证的重定向和转发十大风险的名称有的来自于攻击的类型,有的来自于漏洞,而有的来自于所造成的影响。攻击者可以通过应用程序中许多不同的路径方法去危害你的业务或者企业组织。每种路径方法都代表了一种风险。不同的路径方法,所利用的Web应用程序安全漏洞就有可能不同。如下图1-1 就是利用不同Web 应用程序安全漏洞产生风险的过程图: