基于模糊测试的漏洞发现 跨站脚本模糊测试毕业设计论文 精品文档格式.docx
- 文档编号:22541945
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:59
- 大小:1.01MB
基于模糊测试的漏洞发现 跨站脚本模糊测试毕业设计论文 精品文档格式.docx
《基于模糊测试的漏洞发现 跨站脚本模糊测试毕业设计论文 精品文档格式.docx》由会员分享,可在线阅读,更多相关《基于模糊测试的漏洞发现 跨站脚本模糊测试毕业设计论文 精品文档格式.docx(59页珍藏版)》请在冰豆网上搜索。
触发跨站脚本的原因分为以下两种:
通过闭合标签触发跨站脚本,通过标签属性传递值触发跨站脚本。
跨站脚本分为两种类型:
反射型跨站脚本和持久型跨站脚本。
然后,使用源代码分析方法发掘跨站脚本。
在分析跨站脚本成因时,提出了利用源代码挖掘跨站脚本的方法。
用这种方法挖掘跨站脚本是最基础的一种挖掘方法,用分析源代码的方法寻找到若干跨站脚本漏洞。
再者,重点分析了模糊测试原理,提出了模糊测试功能需求分析和框架设计,研究了实现模糊测试技术的核心算法。
研究了模糊测试技术挖掘跨站脚本漏洞的方法技巧,总结了关键步骤,使用模糊器挖掘若干未知漏洞。
最后应用模糊测试技术,发掘未知跨站脚本漏洞,并做收集记录添加在附录C中。
本文研究意义为:
能迅速挖掘跨站脚本漏洞,能有效测试Web应用程序中的跨站脚本。
这为继续研究模糊测试Web应用程序提供了基础,为构建Web应用程序模糊测试系统探索了思路。
关键词:
Web应用程序;
跨站脚本;
模糊测试技术;
模糊器;
WebFuzz
Abstract
Cross-sitescriptingvulnerabilityisthemostcommonwebapplicationsandserversvulnerability,whichwidelyexistsintheinternet.Manycomputervirusesandwormsarebasedoncross-sitescripts.Andthecross-sitescripts’harmisveryserious.Sohowtoexplorecross-sitescriptingvulnerabilitieshasbeenthewebapplicationdevelopers’importantconcern.ThemainworkwhatIhavedoneinthispaperisthefollowingresearch:
First,whatIhavedoneisanalyzingthecausesofcross-sitescriptingvulnerability.Forthis,ImainlyfocusontheHTML,JavaScriptknowledge.Andasaresult,Idividethereasonsintothefollowingtwosituations:
triggeredbyclosingtags,ortriggeredbypassingtags’propertyvalue.AndalsoIfindthatcross-sitescriptingvulnerabilitycanbedividedintotwotypes:
ReflectedXSSandStoredXSS.Second,whatIhavedoneisusingthesourcecodeanalysismethodtoexplorecross-sitescriptingvulnerabilities.WhenIanalyzethecausesofcross-sitescriptingvulnerability,Iproposehowtousesourcecodemethodtoexplorecross-sitescripting.ItisthemostbasicmethodtoexploreXSSbythisway.Ihavefoundanumberofcross-sitescriptingvulnerabilitieswithanalyzingthesourcecodemethod.Third,whatIhavedoneisstudyingwebfuzztestingtechnique.Iintroducedthefuzztestingtechnology,whichisthefocusofthispaper.Ialsoanalyzedthetheoryofthefuzztesting,thenIsuggestedtherequirementanalysisandtheframeworkofdesigning.Istudiedthecorealgorithmsagain.AtlastIsummarizedthestepofexploringcross-sitescriptingwithfuzztestingtechnology.Fourth,Iusethefuzztestingtechnologytoexploretheunknowncross-sitescripting,anddocollectintheappendixC.AttheendofthispaperIhavefoundsomeunknownXSSwiththefuzzer.
Thesignificanceofthisresearchisthatwecanexplorecross-sitescriptingandtestwebapplicationfastandefficiently.Itprovidesafoundationforbuildingwebapplications,forconstantlyresearchingfuzztestingtechnology.
Keywords:
webapplication;
cross-sitescriptingvulnerability;
Fuzzingtestingtechnology;
Fuzzer;
第1章前言
随着计算机通信技术的飞速发展,Web应用程序得到了越来越多的应用。
Web应用程序的安全性成为了一个复杂性的课题。
怎么进行Web应用程序安全测试,怎么进行Web应用程序漏洞挖掘,已经成为Web应用程序开发者和Web应用程序安全维护者关心的重要议题。
本篇论文将用最新的Web应用程序漏洞发掘技术——模糊测试技术,对Web应用程序中跨站脚本漏洞进行挖掘。
1.1研究背景
2010年8月中国互联网络中心CNNIC发布中国互联网发展现状报告。
报告显示,中国网民规模持续增长,互联网应用深度不断提升,商务类应用成为新的增长点。
其中网上支付、网络购物、网上银行增长最为强劲。
企业借助互联网进行商务活动的价值日益凸显,企业利用互联网的积极性不断提高,企业在互联网上的投入也不断提高,包括建站、交易平台入驻、网络营销等。
由此可见,网络已经成为发布信息,获得信息,资源下载,网络应用,电子消费,电子政务等等的重要平台,而建立在庞大、集成的网络基础上的多平台、网络化、充分集成的Web应用程序已成为上述业务最流行的处理模式。
但与此同时,承载着重要而丰富功能与用途的Web应用和服务器也成为恶意用户与黑客等攻击者的主要目标。
因此,如何确保Web应用程序的安全已成为企业,政府,特别是金融系统、电子政务和电子购物系统所面临的主要挑战。
为了防止政府系统、企业用户、广大个人用户成为Web应用程序安全性问题的受害者,应该关注Web应用程序和服务器的安全性问题。
作为普通用户不应该利用Web应用程序和服务器的安全性问题危害公众利益,作为技术人员应该维护Web应用程序和服务器的安全性,作为开发人员应该将Web应用程序和服务器的安全性放到重要位置。
这对计算机通信技术的发展来说是很重要的。
对Web应用程序和服务器的安全性的关注,其中最重要的一个方面是对其进行安全性测试,发掘其中存在的安全漏洞。
可以采取很多不同的方法进行安全性测试,从大的方面来说可以分为白盒测试和黑盒测试两个方面,Web应用程序模糊测试技术是黑盒测试的一种,是自动化的黑盒测试技术。
它是通过提供非预期的输入并监视异常结果来发现Web应用程序故障的方法。
1.2研究内容
本小节将讲述Web应用程序和Web应用程序漏洞的有关知识,然后介绍什么是Web应用程序和服务器模糊测试技术,并介绍Web应用程序和服务器模糊测试技术的研究现状、存在的问题和应用领域。
1.2.1Web应用程序漏洞
Web应用程序(WebApplication)是指用户界面驻留在Web浏览器中的任何应用程序,包括内容管理系统(CMS)、wiki百科、门户网站、电子公告板、论坛等。
它基于Web运行,是浏览器-服务器架构的典型产物。
Web应用程序漏洞特指由于开发者编码不慎、没有对用户的输入进行充分验证和过滤而引入的漏洞,它主要包括跨站脚本(XSS)、SQL注入、远程文件包含(RFI)、跨站请求伪造(CSRF)、目录遍历等。
致力于提高Web应用程序安全性的开放社群OWASP(OpenWebApplicationSecurityProject,开放Web应用程序安全项目)在2010年4月19日公布的OWASP十大互联网应用程序风险(OWASPTop10for2010)依次是:
A1:
Injection注入攻击
A2:
Cross-SiteScripting(XSS)跨站脚本
A3:
BrokenAuthenticationandSessionManagement失效的身份认证和会话管理
A4:
InsecureDirectObjectReferences不安全的直接对象引用
A5:
Cross-SiteRequestForgery(CSRF)跨站请求伪造
A6:
SecurityMisconfiguration安全配置错误
A7:
InsecureCryptographicStorage不安全的加密存储
A8:
FailuretoRestrictURLAccess没有限制URL访问
A9:
InsufficientTransportLayerProtection传输层保护不足
A10:
UnvalidatedRedirectsandForwards未验证的重定向和转发
十大风险的名称有的来自于攻击的类型,有的来自于漏洞,而有的来自于所造成的影响。
攻击者可以通过应用程序中许多不同的路径方法去危害你的业务或者企业组织。
每种路径方法都代表了一种风险。
不同的路径方法,所利用的Web应用程序安全漏洞就有可能不同。
如下图1-1就是利用不同Web应用程序安全漏洞产生风险的过程图:
图1-1利用不同Web应用程序安全漏洞产生风险过程图
1.2.2模糊测试技术
模糊测试技术,又被称为Fuzzing,它是通过提供非预期的输入并监视异常结果来发现Web应用程序故障的方法。
是一种广为使用的自动化的漏洞挖掘技术,它是一种特殊的动态测试方法。
模糊测试技术可以被定义为通过提供非预期的输入并监视异常结果来发现软件故障的方法。
模糊测试技术是近几年兴起的漏洞挖掘技术。
最初用来测试操作系统及其上应用软件的健壮性,后来被应用于漏洞挖掘中。
Fuzzing技术是一种高度自动化的,高效的漏洞挖掘技术。
Web应用程序自动化的模糊测试是模糊测试技术的延伸,是一种特殊形式的网络协议模糊测试,特别关注于遵循HTTP规范的包。
是一种黑盒测试,在很大程度上是一种强制性的技术,把能够想到的所有的东西都抛给被测目标,然后监视结果。
结合Web应用程序安全性测试的特点以及自动化的模糊测试的特点,会看到自动化的模糊测试技术在发掘Web应用程序上的方便性和有效性。
事实证明自动化的模糊测试技术能够发掘Web应用程序中隐藏的用其他方法难以发掘的漏洞。
1.2.3研究现状、存在问题及应用领域
研究现状:
到目前为止,Web应用程序的模糊测试技术取得了一定的进展,但是这项技术仍然在初级阶段,大部分工具仍然是相对较小的项目,由几个人组成的小组甚至一名程序员来维护,未来的模糊测试将会有许多革新和发展,模糊测试还会发展到新的阶段。
这些年,模糊测试已经开始从学术研究向商业应用方向发展,有越来越多的开发人员开始接受模糊测试技术。
使用模糊测试技术,研究人员已经开发了不少的应用于Web应用程序漏洞的挖掘的模糊器,例如有SPIKE代理,WebScarab,SPI模糊器,CodenomiconHTTP测试工具,beSTORMOLU等等,这些都是优秀的基于模糊测试技术的具有发掘Web应用程序和服务器漏洞功能的模糊器。
存在的问题:
但是这些工具大多是商业应用的测试工具,而本课文题在研究使用模糊测试技术发掘Web应用程序和服务器漏洞时,所涉及的模糊器WebFuzz是一款免费开源的专门针对Web应用程序和服务器漏洞挖掘的工具。
这款工具具有良好的可扩展性,它提供了一个可以而且应当被进一步创建的架构。
其相关资料和源代码可以在网站www.fuzzing.org中获得。
应用领域:
Web应用程序和服务器的模糊测试器WebFuzz可应用于网站开发的安全测试和Web应用程序和服务器开发的安全测试。
它用于发掘Web应用程序和服务器中的目录遍历漏洞,缓冲区溢出漏洞,SQL注入漏洞,XSS脚本漏洞等。
1.3研究任务
本文的研究任务主要包括:
Web应用程序跨站脚本分析、Web应用程序漏洞挖掘模糊测试技术研究、跨站脚本重现研究、跨站脚本探索挖掘研究四个部分。
研究任务表如下表1-1所示:
表1-1研究任务表
脚本漏洞分析
WebFuzz技术研究
脚本漏洞重现
脚本漏洞探索
脚本漏洞介绍
WebFuzz介绍
熟悉WebFuzz
探索未知漏洞
脚本漏洞触发原理
WebFuzz原理
重现漏洞
对比不同的技术
研究的技术路线如下图1-2:
图1-2拟采用的研究技术路线
跨站脚本分析:
首先学习跨站脚本定义,明确跨站脚本分类,分析跨站脚本触发原理。
进而研究跨站脚本攻击向量的构造方法,以及变换形式。
并在此基础上进一步理解和总结跨站脚本成因。
Web模糊测试技术分析:
首先学习模糊测试技术的基本原理知识,在此基础上研究本文提出的Web应用程序模糊器——WebFuzzer。
分析本模糊器的工作原理,掌握本模糊器的使用方法。
跨站脚本重现研究:
不断总结发掘跨站脚本的方法,更深理解其触发原理。
不断掌握模糊器WebFuzzer的使用,构建发掘Web应用程序跨站脚本的发掘环境,并会利用WebFuzzer重现已知的漏洞。
跨站脚本探索研究:
不断总结Web应用程序跨站脚本的形成原理,掌握Web应用程序模糊器WebFuzzer发掘跨站脚洞的工作原理,总结和其他发掘工具相比时的优势。
利用WebFuzzer探索发掘未知的跨站脚本。
总结探索发现跨站脚本的过程,用合理的方法收集已发现的跨站脚本。
1.4论文结构
本次论文的文章架构如下:
第1章,前言部分,总体上介绍研究任务,说明项目内容,介绍相关背景等;
第2章,跨站脚本分析部分,本章深入分析跨站脚本成因及其他与跨站脚本有关的知识;
第3章,Web模糊测试技术,本章深入探讨Web模糊测试技术的原理,提出功能需求分析、和框架设计,深入分析模糊器设计的核心函数算法;
第4章,利用学到的知识对跨站脚本挖掘,这里用了源代码分析的方法和模糊测试的方法;
第5章对全文进行总结。
第2章跨站脚本分析
来自OWASP的2010年Web应用程序面临的十大安全风险报告显示:
跨站脚排名第二。
而在以往的报告中,跨站脚本则一直稳居第一。
由此可见跨站脚本在Web应用程序中是很常见而且是危害很大的一类漏洞,本章重点介绍这一类Web应用程序漏洞。
从跨站脚本概述到成因,全面介绍跨站脚本。
2.1跨站脚本概述
XSS的全称是CrossSiteScripting,意思是跨站脚本.这第一个单词是Cross,但因为CSS是层叠样式表的缩写(CascadingStyleSheets)的缩写,同时Cross发音和X相似,所以为了避免混淆用X来代替缩写成XSS。
跨站点脚本(XSS)是一个典型的Web应用程序计算机安全漏洞。
允许攻击者绕过客户端的安全机制,可以使恶意攻击者将客户端脚本注入到其他用户浏览的网页里。
截止到2007年,赛门铁克公司所记录的安全记录中有80%为跨站脚本,它的影响范围可以从一个小小的滋扰到一个重大的安全风险。
OWASP公布的2004年和2007年十大网络安全漏洞中,跨站脚本都高居首位,最新公布的2010年十大安全风险也为第二位,跨站脚本一直以来都是最常见的安全漏洞。
2.2跨站脚本成因
2.2.1超文本标记语言
a.超文本标记语言概述
要了解XSS的触发原理就先得从HTML(超文本标记语言)开始。
HTML(超文本标记语言)是描述网页的一种语言。
不是一种编程语言,而是一种标记语言,是由一套标记标签组成的,HTML使用标记标签来描述网页。
HTML文档包含HTML标签和纯文本,是网页的文字形式。
HTML文档由HTML元素定义,HTML元素是指从开始标签到结束标签的所有代码。
HTML元素以开始标签开始以结束标签终止,元素内容是开始标签和结束标签之间的内容。
b.超文本标记语言标签
HTML标签标记HTML文档和HTML元素,浏览器通过这些标签来识别文档和元素的显示格式。
由开始标签和结束标签组成,开始标签是被尖括号包围的元素名,结束标签是被尖括号包围的斜杠和元素名。
某写HTML元素没有结束标签。
下面简单介绍一下常用的HTML标签。
HTML文档标签:
HTML文档是从<
html>
标签开始的,结束标签为<
/html>
。
<
与<
之间的文本描述网页。
HTML文档头标签:
HTML文档头标签<
head>
用于定义文档的头部。
文档的头部描述了文档的各种属性和信息,包括文档的标题、在Web中的位置以及和其他文档的关系等。
绝大多数文档头部包含的数据都不会真正作为内容显示给读者。
HTML标题标签:
HTML标题标签<
title>
元素可定义文档的标题。
浏览器会以特殊的方式来使用标题,并且通常把它放置在浏览器窗口的标题栏或状态栏上。
同样,当把文档加入用户的链接列表或者收藏夹或书签列表时,标题将成为该文档链接的默认名称。
HTML的主体标签:
HTML文档的主体是由<
body>
标签进行定义的,和结束标签分别为<
/body>
之间的文本是可见的页面内容。
网页中文章标题标签:
网页中文章的标题是用标签<
h1>
-<
h6>
定义的。
定义最大的标题。
定义最小的标题。
c.超文本标记语言属性
同时,HTML标签可以拥有属性。
属性提供了有关HTML元素的更多的信息。
属性总是以名称/值对的形式出现。
比如name="
value"
属性总是在HTML元素的开始标签中定义。
下面三个是标签属性举例。
链接标签的属性href指定链接地址:
ahref="
"
>
Thisisalink<
/a>
标题标签中的属性align指定标题的对齐方式。
主体标签中的属性bgcolor指定文档的背景颜色。
定义属性时要注意:
始终为属性值加引号,属性值应该始终被包括在引号内。
双引号是最常用的,不过使用单引号也没有问题。
在某些个别的情况下,比如属性值本身就含有双引号,那么您必须使用单引号。
d.超文本标记语言事件
HTML事件可以触发浏览器中的行为,比方说当用户点击某个HTML元素时启动一段JavaScript。
在现代浏览器中都内置有大量的事件处理器。
这些处理器会监视特定的条件或用户行为,例如鼠标单击或浏览器窗口中完成加载某个图像。
通过使用客户端的JavaScript,可以将某些特定的事件处理器作为属性添加给特定的标签,并可以在事件发生时执行一个或多个JavaScript命令或函数。
事件处理器的值是一个或一系列以分号隔开的Javascript表达式、方法和函数调用,并用引号引起来。
当事件发生时,浏览器会执行这些代码。
例如,当您把鼠标移动到一个超链接时,会启动一个JavaScript函数。
支持JavaScript的浏览器支持<
a>
标签中的一个特殊的"
mouseover"
事件处理器-被称为onmouseover来完成这项工作:
/index.html"
onmouseover="
alert('
Welcome'
);
returnfalse"
2.2.2JavaScript
a.JavaScript概述
JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。
同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。
JavaScript由数行可执行计算机代码组成。
JavaScript通常被直接嵌入HTML页面。
JavaScript是一种解释性语言,这就是说,代码执行不进行预编译。
b.JavaScript功能
JavaScript为HTML设计师提供了一种编程工具。
JavaScript是一种只拥有极其简单的语法的脚本语言,可以将短小的代码片断放入HTML页面当中。
JavaScript可以将动态的文本放入HTML页面,可以将JavaScript设置为当某事件发生时才会被执行,例如页面载入完成或者当用户点击某个HTML元素时。
JavaScript可以读写HTML元素。
JavaScript可以读取及改变HTML元素的内容。
JavaScript可被用来验证数据,在数据被提交到服务器之前,JavaScript可被用来验证这些数据。
JavaScript可被用来检测访问者的浏览器,JavaScript可被用来检测访问者的浏览器,并根据所检测到的浏览器,为这个浏览器载入相应的页面。
JavaScript可被用来创建cookies,JavaScript可被用来存储和取回位于访问者的计算机中的信息。
c.JavaScript标签
HTML的<
scri
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于模糊测试的漏洞发现 跨站脚本模糊测试毕业设计论文 精品 基于 模糊 测试 漏洞 发现 脚本 毕业设计 论文
![提示](https://static.bdocx.com/images/bang_tan.gif)