论文部分内容阅读
随着Internet技术的飞速发展与广泛普及,随之而来的各种Web安全问题也日益突出,其中,跨站脚本漏洞具有易利用、广泛存在和强破坏性的特点,已成为目前Web应用中最普遍的Web漏洞之一,如何有效检测出Web应用中潜在的跨站脚本漏洞具有重要研究和实用价值。在XSS检测方法中,相比于白盒检测技术,黑盒检测技术由于无需源码,检测效率高而被广泛运用于XSS检测中。本文采用黑盒检测技术实现XSS漏洞检测,针对XSS攻击向量种类单一、检测覆盖面不全、针对性不强,以及应用方法研究不足等问题,本文研究了XSS攻击向量的生成、优化和应用,构建了一个变异优化后的XSS攻击向量库。基于此XSS攻击向量库,本文提出一种输出点位置识别方法,能够自动选取符合输出点语境的XSS攻击向量。基于构建的XSS攻击向量库和XSS攻击向量选取方法,本文设计并实现了一个XSS检测系统XSS Scanner。首先,本文分析了XSS漏洞检测中运用到的关键技术,研究了构造XSS攻击向量所需的HTML知识,同时,分析和比较了XSS黑盒检测中的网络爬虫技术及爬虫策略,阐述了本文使用的模拟浏览器技术Selenium Webdriver的特点和优势,最后,阐述了页面信息查找语言XPath的基本语法和功能。其次,研究了XSS攻击向量的生成方法,构建了初始XSS攻击向量库。本文采用基于输出点语境的XSS攻击向量建模方法,根据输出点位置分类探讨XSS攻击向量的组成,设计XSS攻击向量组成因子及算子表达式,形式化描述不同输出点语境下的XSS攻击向量组成。基于算子表达式,提出了一种XSS攻击向量实例化方法。通过建立组成因子库,设计组成因子约束关系二维表,实现XSS攻击向量组成模型的实例化,生成实际的XSS攻击向量,构建初始XSS攻击向量库,并实验证明了使用本文方法生成XSS攻击向量的有效性。接着,研究了XSS攻击向量的变异和应用。总结归纳了现有变异规则,基于浏览器解析原理,设计了各变异规则在XSS攻击向量中的可变异位置,设计了限定变异算子变异初始XSS攻击向量,进而构建了变异优化后的XSS攻击向量库。基于构建的XSS攻击向量库,提出了一种基于XPath输出点位置的自动识别方法,自动选取符合输出点语境的XSS攻击向量,克服了现有XSS检测中XSS攻击向量随机选取方式的不足,避免了无效XSS攻击向量的检测。然后,设计与实现了XSS漏洞检测系统XSS Scanner。分别设计与实现了网络爬虫模块、XSS攻击向量库模块和XSS检测模块。最后,测试分析了本文设计的XSS漏洞检测系统XSS Scanner。设计了测试用例,分别测试了XSS Scanner的基本功能和漏洞检测能力,测试结果表明,本文设计的XSS漏洞检测系统能够有效检测出Web应用中的XSS漏洞。