论文部分内容阅读
随着Web应用被越来越广泛的应用,对其安全性的关注也逐渐上升到越来越高的层次,如何保障Web应用的安全性已经是一个重要的研究课题。目前存在许多防护系统用于防御Web应用攻击,在一定程度上增强了Web应用的安全性,但是会带来不少的性能损耗和维护代价。因此及早发现漏洞并将其消除以增强Web应用自身的安全性能够防患于未然,极大减少后续软件维护的开销,提升软件产品的信誉。而Web应用漏洞扫描软件作为漏洞检测过程中一类重要的工具,能有效地辅助检测者的工作,减少检测者的工作量,因此很有研究的必要。本文研究了Web应用漏洞产生的原因以及对应的检测方法,对Web应用漏洞扫描的两类关键技术—Web漏洞扫描信息获取和Web应用漏洞检测机制进行了深入研究,针对Web应用的特点设计了一个Web应用漏洞扫描软件框架,并实现了其中的相关核心检测模块。针对Web漏洞扫描信息获取的目标,深入研究了基于正则表达式的网页内容提取技术、交互式表单内容的抓取技术、用于扫描信息的DOM文档技术和HTTP通信协议技术。利用宽度优先搜索策略结合实用的URL传输库解决了对目标WEB应用扫描信息获取的问题。设计并实现了一个具有一定语义识别能力的自动表单填充模块,解决了隐藏在表单后面的扫描信息获取问题,可以达到对网页漏洞扫描相关元素的完整提取。在获取了相关漏洞扫描信息的基础上,进一步对Web应用漏洞检测技术进行了深入研究。针对Web应用漏洞不断更新、检测技术不断变化的特点,利用动态链接库技术,设计实现了一种基于规则扩展和插件扩展的漏洞检测机制,实现了可以自定义新的扫描插件,同时,深入研究了漏洞分析器的工作原理和过程,针对Web安全中主流的SQL注入漏洞、SQL盲注漏洞、XSS攻击漏洞以及备份文件检测等漏洞,设计实现了用于相关的漏洞分析与检测的插件,在此基础上实现了一个自动化的Web安全漏洞分析器。针对Web应用中需要手动探索的部分以及自动化扫描软件的结果的确认,本文研究并设计了编码/解码工具、HTTP请求发送与解析等工具,以提高检测的准确性和效率。针对相关的网站进行了远程的漏洞扫描测试,结果表明本文设计的Web应用漏洞扫描软件可以有效地检测SQL注入漏洞、XSS漏洞以及备份文件检测等漏洞。达到了预期设计的效果。