一种基于模拟浏览器行为的XSS漏洞检测系统的研究与设计
发布时间:2017-07-29 09:27
本文关键词:一种基于模拟浏览器行为的XSS漏洞检测系统的研究与设计
【摘要】:近年来,随着Web应用和HTML5的普及,Web安全问题也日益突出。OWASP公布的2013年十大Web应用安全风险中,跨站脚本漏洞XSS(Cross Site Scripting)名列第三,已成为当前各类Web应用需要共同面对的常见安全风险之一。目前针对自动化XSS漏洞检测工具的研究还不是很充足,传统的基于静态爬虫爬取页面的方法对漏洞注入点的检测覆盖率还不是很高,无法很好地应对复杂网页格式下注入点产生的多种途径,例如有些注入点需要通过用户操作,如点击某个按钮,使浏览器解析JavaScript或加载Ajax才能生成;有些注入点则不存在于表单中,需要分析网页结构才能找到其提交方式。同时,在漏洞检测方面,传统方法也不能很好地动态分析目标站点的回应信息,从而不能够准确地判断出XSS漏洞是否存在。针对上述问题,本文对自动化XSS漏洞检测系统的爬取页面、提取注入点、进行攻击测试和分析结果四个步骤进行了深入研究,主要研究内容如下:(1)研究了Web页面漏洞注入点的自动获取方法,以解决传统静态爬虫对XSS漏洞注入点覆盖率小的问题,提出了基于Headless browser的Web页面爬虫框架,该框架含有浏览器的内核,可以模拟浏览器行为来解析JavaScript和加载Ajax以得到页面中隐藏式注入点,同时可以分析页面的DOM结构以得到页面中的非格式化注入点。通过分析总结了各种注入点和交互点的可能的特征,本文设计并实现的动态爬虫模块可以获取大量因网页格式越来越多样化而产生的非格式化注入点,包括那些既不存在于表单中,也不通过传统的submit方式提交,而是在用户点击某个按钮后,通过JavaScript合成请求提交到服务器的注入点。(2)提出了一种高效的通过提交攻击向量判断XSS漏洞是否存在的方法。设计并实现了可动态识别XSS漏洞的自动化检测模块。在提交攻击向量请求后,可以判断返回页面是否有异常的浏览器行为,并且,借助第三方服务器动态判断页面返回后的结果。如果攻击向量中含有对该服务器的请求,则系统会自动分析第三方服务器的状态,判断返回页面是否执行了这一请求从而判断出当前注入点是否存在漏洞。该系统完全采用Python语言开发,具有易于维护和进行二次开发的特点,对XSS漏洞的检测与研究有非常重要的应用价值。(3)设计并实现了功能友好的用户交互界面。该系统的用户交互界面基于PyQt库设计,使得该模块可以跨平台,在各种操作系统上显示统一的用户界面,方便系统的运行。同时,该模块也对爬虫爬取页面的信息、检测注入点时结果汇报的信息进行了整理,并以丰富的格式进行显示。此外,该模块提供了用户自定义攻击向量、以及获取和设置Cookie等功能,用户可以在系统中直接登录目标页面并将登录状态保存下来,之后检测时,该系统可以加载保存的Cookie文件,以爬取含有正确Cookie时才能爬取到的内容。
【关键词】:XSS漏洞 爬虫框架 浏览器 黑盒测试
【学位授予单位】:北京工业大学
【学位级别】:硕士
【学位授予年份】:2016
【分类号】:TP393.08;TP393.092
【目录】:
- 摘要4-6
- Abstract6-10
- 第1章 绪论10-20
- 1.1 选题背景与研究意义10-13
- 1.2 国内外研究现状13-16
- 1.2.1 研究现状概述13-14
- 1.2.2 研究现状问题分析14-16
- 1.3 本文的研究内容16-17
- 1.4 本文组织结构17-20
- 第2章 关键技术20-26
- 2.1 XSS漏洞检测相关技术20-23
- 2.1.1 XSS漏洞的利用20-22
- 2.1.2 白盒测试与黑盒测试22-23
- 2.2 Headless browser相关技术23-24
- 2.2.1 Headless browser概述23-24
- 2.2.2 Headless browser库对比24
- 2.3 网页解析技术24-25
- 2.4 本章小结25-26
- 第3章 模拟浏览器行为的XSS漏洞检测系统的框架设计26-32
- 3.1 相关术语定义26
- 3.2 系统设计目标26-27
- 3.3 系统设计思路27-28
- 3.4 系统功能架构28-29
- 3.5 功能模块设计29-30
- 3.6 本章小结30-32
- 第4章 模拟浏览器行为的XSS漏洞检测系统的实现32-46
- 4.1 相关数据结构设计32-33
- 4.2 爬虫算法设计及执行过程33-36
- 4.3 漏洞检测和页面响应分析36-42
- 4.3.1 Web页面漏洞注入点的提取36-38
- 4.3.2 XSS漏洞攻击向量的设计38-40
- 4.3.3 XSS漏洞攻击向量的生成40-41
- 4.3.4 漏洞的动态判别41-42
- 4.4 用户界面设计42-44
- 4.5 本章小结44-46
- 第5章 模拟浏览器行为的XSS漏洞检测系统的测试46-54
- 5.1 测试环境46-47
- 5.1.1 硬件环境46
- 5.1.2 服务器环境46-47
- 5.1.3 实验环境的部署过程47
- 5.2 测试方案47-53
- 5.2.1 功能测试47-51
- 5.2.2 对比测试51-53
- 5.3 结果分析53
- 5.4 本章小结53-54
- 结论54-56
- 参考文献56-60
- 攻读硕士学位期间获得的科研成果60-62
- 致谢62
本文编号:588488
本文链接:https://www.wllwen.com/guanlilunwen/ydhl/588488.html