基于模拟攻击的Web应用程序漏洞检测方法

文档序号:6501007阅读:268来源:国知局
基于模拟攻击的Web应用程序漏洞检测方法
【专利摘要】本发明公开了一种基于模拟攻击的Web应用程序漏洞检测方法。该方法主要包括漏洞检测系统,目标系统和后台数据库三部分。其中,漏洞检测系统中主要包括控制模块,设置模块,爬虫模块,模拟攻击检测模块,显示分析模块等,分别完成整体控制,检测设置,Web页面爬虫和结构提取,模拟攻击以及显示分析功能。本发明的优点在于:1)采用模拟攻击的检测模式,更具有实用性;2)将各漏洞检测引擎模块化、插件化,便于不同漏洞检测引擎的整合以及新的漏洞检测引擎的扩充;3)对Web应用程序的漏洞进行了分类,使安全检测更全面准确。
【专利说明】基于模拟攻击的Web应用程序漏洞检测方法 【技术领域】
[〇〇〇1] 本发明属于漏洞检测方法,特别是基于模拟攻击的Web应用程序漏洞检测方法。 【背景技术】
[0002] 随着Internet技术的发展,Web应用程序得到了日益广泛的应用,也融入到人们 的日常生活中。一方面,Internet由早期的静态站点发展到动态站点,近年来的Ajax,D0J0 等技术标志着Web2. 0时代的到来;另一方面程序逐渐覆盖到生活的各个领域,如网上银 行,电子商务,微博客等。Web应用程序的广泛应用使得人们的生活变得更加方便和快捷,但 同时也导致漏洞可能带来更加危险的安全隐患,产生更加危险的后果。
[0003] Web应用程序的出现使得网络安全边界发生了新的变化,新的安全边界要求所有 应用程序设计和开发人员要主动承担起保护用户的责任,研究漏洞攻击、防御和检测技术, 设计出更高水平的具有更高安全性的Web应用程序,使用户免受Web应用程序漏洞攻击的 危害。
[0004] 为了更好的保护Web应用程序,使之免受非法入侵和攻击,Web应用程序漏洞检测 系统的开发者采用模拟攻击的方式,主动地对Web应用程序进行漏洞检测,使得该技术成 为了一项非常重要的网络防护工具开发的技术。在模拟攻击检测技术中,开发者模拟黑客 对待测Web应用程序发起攻击,并根据返回结果判断Web应用程序中是否包含特定的漏洞。 因此,怎样在检测中全面的覆盖Web应用程序中的漏洞以及怎样准确、快速地检测就成了 研究的重要课题。
【发明内容】

[0005] 本发明的目的在于提供一种基于模拟攻击的Web应用程序漏洞检测方法,采用模 拟攻击的检测模式,模拟恶意攻击者向Web应用程序发动攻击,实现通过Web应用程序的返 回信息来判断漏洞是否存在。
[0006] 实现本发明目的的技术解决方案为:基于模拟攻击的Web应用程序漏洞检测方 法,该方法包括漏洞检测系统,目标系统和后台数据库三部分,具体包括步骤如下: 步骤1 :通过爬虫模块遍历整个Web应用程序,分析HTML源代码并从中提取关键信息, 得到传递数据使用的方式,同时根据远程文件包含漏洞、文件上传漏洞和路径遍历漏洞的 特征将可能存在漏洞的页面进行分类并做出标记; 步骤2 :进行模拟攻击,模拟攻击检测模块通过爬虫模块获得URL地址,发送经过参数 替换的URL地址向目标Web应用程序请求数据,并通过Web应用程序返回信息来判断是否 存在漏洞; 步骤3:采取分级漏洞检测方法,在同一个Web应用程序中设置有不同等级漏洞的页 面,针对同一个页面使用不同的包含参数,通过使用不同包含参数改造的URL地址请求得 到的Web应用程序的反应来判断该页面的漏洞级别。
[0007] 本发明与现有技术相比,其显著优点: 1) 采用模拟攻击的检测模式,更具有实用性; 2) 将各漏洞检测引擎模块化、插件化,便于不同漏洞检测引擎的整合以及新的漏洞检 测引擎的扩充; 3) 对Web应用程序的漏洞进行了分类,使安全检测更全面准确; 4) 运行效率较高,能够出具全面、详细、直观的检测报告和分析报告。 【专利附图】

【附图说明】
[0008] 图1是Web应用程序漏洞检测系统结构图。
[〇〇〇9] 图2是漏洞检测系统流程图。
[〇〇1〇] 图3是页面爬虫流程图。
[0011] 图4是分级检测流程图。
[0012] 图5是模拟攻击检测模块交互图。 【具体实施方式】
[0013] 下面结合附图和实施例来进一步描述本发明。
[0014] 图1是Web应用程序漏洞检测系统结构图,该系统中主要包括漏洞检测系统、目标 系统和后台数据库三个部分。所述的漏洞检测系统包括控制模块、设置模块、爬虫模块、模 拟攻击检测模块和显示分析模块,分别用于完成整体控制、检测设置、Web页面爬虫和结构 提取、模拟攻击以及显示分析功能。所述的目标系统包括六种常见Web应用程序漏洞,分别 为SQL注入漏洞、动态执行漏洞、不安全的直接对象引用漏洞、远程文件包含漏洞、文件上 传漏洞和路径遍历漏洞,通过使用Web应用程序漏洞检测系统对该目标系统进行检测得到 实验结果,并将该结果与预期值进行比较,得出系统性能、效率及准确度的相关数据。
[0015] 具体的漏洞检测系统的检测流程如图2所示。其中,爬虫模块通过其网络爬虫程 序遍历整个Web应用程序,分析HTML源代码并从中提取关键信息,如超链接,Title,以及页 面上的表单等,得到传递数据使用的方式,包括GET方式和POST方式。同时根据远程文件 包含漏洞、文件上传漏洞和路径遍历漏洞的特征将可能存在漏洞的页面进行分类,分别做 出标记以便提高模拟攻击模块的执行效率。
[0016] 如图3所示,爬虫模块设置未遍历URL地址和已遍历URL地址两个空集,首先将检 测程序执行过程中用户输入的URL作为起始爬行地址,该地址作为入口地址存在未遍历的 URL地址集合中;向起始爬行地址向待检测Web应用程序发送HTML请求并获取Web应用程 序的响应,若成功响应,则获取该地址对应的HTML文档并对该文档进行分析,提取该页面 中包含的所有超链接URL地址,然后将得到的所有超链接URL地址中未遍历过的链接加入 未遍历URL地址集合中,再将原来页面的URL地址加入到已遍历集合中;将页面解析内容根 据漏洞产生规则分类,将可能存在某类漏洞的页面加入相关漏洞集合中,将所有页面的结 构信息输出至XML文件;接着从未遍历URL地址集合中取下一条URL地址重复进行上操作, 直至未遍历URL地址集合为空。
[0017] 如图4分级检测流程图所示。在同一个Web应用程序中设置有不同等级漏洞的页 面,针对同一个页面使用不同的包含参数,通过使用不同包含参数改造的URL地址请求得 到的Web应用程序的反应来判断该页面的漏洞级别。
[0018] 如图5所示,模拟攻击检测模块(以下简称检测模块)通过从主程序爬虫模块获 得URL地址,发送经过参数替换的URL地址向目标Web应用程序请求数据,并通过Web应用 程序返回信息来判断是否存在某种漏洞。
[0019] 对于远程文件包含漏洞检测模块,1)远程文件包含漏洞检测:远程文件包含漏 洞主要针对通过GET方式传递表单数据的页面,这类页面显式的将参数值显示在URL地址 中,程序通过获取URL地址值,根据检测设置从配置文件中读取包含参数和返回参数,通过 将参数值替换成包含参数值来修改URL地址,重新构造 URL地址并向Web应用程序请求 数据,根据Web应用程序返回信息是否包含特定的值来判断是否存在远程文件包含漏洞; 2)远程文件包含分级漏洞检测:远程文件包含漏洞检测采用分级检测技术,如表1所示是 远程文件包含漏洞各级漏洞检测判定表,包含参数为"http://www. XXX. com/test. php", "http://www. XXX. com/test. txt,',"http://www. xxx. com/test. txt%00,',分别记为 Attl, Att2,Att3,返回参数为"I am Sorry! JackieOIMI! ","include(http://www.xxx.com/ test, txt) ","include (http://www. xxx. comtest. txt) ",分别记为 Rl,R2, R3。
[0020] 表1远程文件包含分级漏洞检测判定表
【权利要求】
1. 基于模拟攻击的Web应用程序漏洞检测方法,该方法包括漏洞检测系统,目标系统 和后台数据库三部分,其特征在于:包括步骤如下: 步骤1 :通过爬虫模块遍历整个Web应用程序,分析HTML源代码并从中提取关键信息, 得到传递数据使用的方式,包括GET方式和POST方式,同时根据远程文件包含漏洞、文件上 传漏洞和路径遍历漏洞的特征将可能存在漏洞的页面进行分类并做出标记; 步骤2 :进行模拟攻击,模拟攻击检测模块通过爬虫模块获得URL地址,发送经过参数 替换的URL地址向目标Web应用程序请求数据,并通过Web应用程序返回信息来判断是否 存在漏洞; 步骤3 :采取分级漏洞检测方法,在同一个Web应用程序中设置有不同等级漏洞的页 面,针对同一个页面使用不同的包含参数,通过使用不同包含参数改造的URL地址请求得 到的Web应用程序的反应来判断该页面的漏洞级别。
2. 根据权利要求1所述的基于模拟攻击的Web应用程序漏洞检测方法,其特征在于: 步骤1中所述的爬虫模块,其设置未遍历URL地址和已遍历URL地址两个空集,具体步骤 为:首先将检测程序执行过程中用户输入的URL地址作为起始爬行地址,该地址作为入口 地址存在未遍历的URL地址集合中,向起始爬行地址向待检测Web应用程序发送HTML请求 并获取Web应用程序的响应,若成功响应,则获取该地址对应的HTML文档并对该文档进行 分析,提取该页面中包含的所有超链接URL地址,然后将得到的所有超链接URL地址中未遍 历过的链接加入未遍历URL地址集合中,再将原来页面的URL地址加入到已遍历集合中;将 页面解析内容根据漏洞产生规则分类,将可能存在某类漏洞的页面加入相关漏洞集合中, 将所有页面的结构信息输出至XML文件;接着从未遍历URL地址集合中取下一条URL地址 重复进行上操作,直至未遍历URL地址集合为空。
3. 根据权利要求1所述的基于模拟攻击的Web应用程序漏洞检测方法,其特征在于: 步骤2中所述的存在漏洞主要包括远程文件包含漏洞、文件上传漏洞和路径遍历漏洞。
4. 根据权利要求1所述的基于模拟攻击的Web应用程序漏洞检测方法,其特征在于: 步骤3中所述的分级漏洞,即在同一个网站中针对所包含的每种漏洞均实现不同的漏洞防 御机制,防护级别由低到高为〇级、1级和2级。
5. 根据权利要求1所述的基于模拟攻击的Web应用程序漏洞检测方法,其特征在于: 所述的漏洞检测系统,包括控制模块、设置模块、爬虫模块、模拟攻击检测模块和显示分析 模块,所述的控制模块用于系统的整体控制,所述的设置模块用于系统的检测设置,所述的 爬虫模块用于Web页面爬虫和结构提取,所述的模拟攻击检测模块用于系统的模拟攻击, 所述的显示分析模块用于实现系统的显示和进行检测分析。
6. 根据权利要求1所述的基于模拟攻击的Web应用程序漏洞检测方法,其特征在于: 所述的目标系统,包括六种Web应用程序漏洞,分别为SQL注入漏洞、动态执行漏洞、不安全 的直接对象引用漏洞、远程文件包含漏洞、文件上传漏洞和路径遍历漏洞。
【文档编号】G06F11/36GK104063309SQ201310094856
【公开日】2014年9月24日 申请日期:2013年3月22日 优先权日:2013年3月22日
【发明者】李千目, 汪欢 申请人:南京理工大学常熟研究院有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1