论文部分内容阅读
随着互联网技术的成熟,以及浏览器客户端Web应用程序的普及,Web安全漏洞已经成为互联网最严重的安全隐患之一,其中跨站脚本(XSS)漏洞是近年来较为流行的一种漏洞。由于JavaScript的动态特性Ajax技术的广泛应用,Web应用存在大量隐含页面,XSS的漏洞注入点越来越隐蔽,漏洞检测越来越困难,其危害性及快速的传播能力因而也越来越强。现有的漏洞检测技术没有充分对XSS漏洞的漏洞注入点的查找进行研究尤其是隐含页面,使用的漏洞检测技术也没有充分考虑测试请求后相关的页面,导致漏洞检测率相对较低。针对现有漏洞检测技术的不足之处,加强了对隐含页面的DOM结构分析,提出了基于DOM状态改变的方式查找漏洞注入点的方法,在此基础上提出了基于页面交互点相关的漏洞检测方法,设计并实现了XSS漏洞检测原型系统。实验证明该原型系统能够找到更多的漏洞注入点,能有效地提高漏洞检测率。本文主要贡献如下:(1)分析并介绍了主流浏览器的访问控制策略,其次对JavaScript脚本以及Ajax技术进行了安全性分析,然后介绍了XSS漏洞攻击的攻击原理以及攻击类型,同时对现有的漏洞检测方法进行了分析研究。(2)提出了基于DOM状态改变的方式进行XSS漏洞注入查找的方法,特别是针对隐含页面的漏洞注入点的查找。由于JavaScript语言的动态特性,以及Ajax技术在Web应用开发中的广泛应用,导致隐含页面大量存在,而隐含页面是存在漏洞注入点的,本文针对这个问题加强了对隐含页面DOM结构的分析,并在隐含页面查找漏洞注入点。(3)提出了基于页面交互点相关的方法进行漏洞的检测,该方法主要是针对存储型跨站脚本漏洞,能够减少漏洞漏报率。本文在现有的漏洞检测技术的基础上做了改进,充分考虑了测试请求后相关的页面,扩大了分析页面范围。此外,本文还使用了改进的探子请求技术,通过探子请求字符串判断页面输出位置类型,然后使用针对性的测试用例进行漏洞检测,可以减少后续漏洞检测不必要的测试请求。(4)基于上述技术理论设计并实现了XSS漏洞检测工具的原型系统。为了验证本文所提出的漏洞注入点查找方法和漏洞检测方法的有效性,对原型系统做了真实的实验评估,效果良好。