论文部分内容阅读
伴随着计算机与Internet技术的快速发展,Web及其相关技术得到日益广泛的普及与应用,因此其安全性也备受关注。Web漏洞检测是面向Web安全和防护的一种重要且常用的主动防御技术,其已在现有的网络环境中得到广泛应用。目前关于Web漏洞检测技术的研究已得取得了长足的发展,但是仍存在着些许多不足和亟待改进之处,如扫描功能不够完备、用户配置复杂、缺少完善的风险分析、并且基于源码的漏洞检测容易泄露网站信息,从而引发隐私泄露等新的安全问题。针对上述问题,为设计一个高效率、低代价的Web漏洞检测系统,本文将黑盒测试思想和模糊测试技术引入到Web漏洞检测之中。首先,对Web漏洞检查系统的功能进行了详细的需求分析,指出其应满足的检测功能。接下来进行系统的总体设计,包括系统架构设计与功能设计。在系统总体功能设计方面,设计了控制模块、SQL注入漏洞检测模块、跨站脚本漏洞检测模块、目录猜测漏洞检测模块、目录遍历漏洞检测模块、端口扫描模块、网络爬虫功能模块、报告生成模块等多个功能模块。这些功能模块对用户来说是透明的,它们由位于图形界面与底层代码之间的检测控制模块进行调度,控制模块根据用户选择的检测内容决定哪些模块将被调用,并将用户提交的检测目标、超时时间等参数传给底层的各个检测模块,同时它还将负责实时的将系统的运行状态以及检测结果传给图形界面。在执行系统检测时,根据用户提交的目标URL和漏洞扫描类型构造带模糊测试扫描参数的特定Http请求;然后,系统将这些请求发送给待扫描的目标网站服务器,通过分析服务器的返回结果或者错误代码来判断是否存在漏洞,并指出漏洞类型以及漏洞相关的链接。基于上述漏洞检测思想,设计并实现整个系统。该系统实现的功能包括网页分析模块、网络爬虫模块、漏洞检测模块、检测控制模块、用户接口模块、基于指数函数的风险分析模块以及风险报告模块。设计完成后的系统可以实现SQL注入漏洞检测、跨站脚本漏洞检测、目录猜测漏洞检测、目录遍历漏洞检测等Web漏洞检测功能,同时通过利用基于指数函数的风险分析算法对系统的Web漏洞风险进行全面分析,从而为用户提供完善的Web漏洞风险分析报告。系统在Linux环境下实现,采用模块化设计思想,利用Py-Qt编写,便于更新升级。该系统采用了黑盒测试理论及模糊测试技术,在执行漏洞扫描时,目标网站的源码对用户是透明的,这样在实现完备的Web漏洞测试功能的同时也保证了Web网站的隐私保护需求。为了验证本系统的可用性和漏洞检测功能,与其他同类Web漏洞检测系统进行了比较,结果表明本系统在执行效率、功能等方面具有一定的优势。