论文部分内容阅读
随着黑客技术的发展,Web应用程序的安全漏洞类型越来越多样化,问题也越来越复杂,同时随着Internet技术的发展,Web应用程序得到了日益广泛的应用,并存在于生活的方方面面,这就使得Web应用程序安全漏洞可能带来更为危险的安全隐患。近年来Web应用程序的安全问题受到企业和用户的广泛关注,Web应用的安全测试也就孕育而生。SQL注入漏洞作为Web应用安全的关键问题之一,对企业和用户的危害是不可估量的,因而对Web应用的SQL注入漏洞的检测是一个十分有意义并且重要的工作。SQL注入测试主要方法是采用手工模拟攻击者的行为进行的Web安全测试,但是手工测试效率低,而且测试结果与测试人员的安全知识储备和测试工作人员的素质有关,不能确保测试结果的正确性。目前已有的自动化测试工具由于测试用例设计的相对简单存在一些漏报和误报的现象。这些测试工具对SQL注入漏洞的扫描分为主动和被动扫描。主动扫描通过修改正常用户的原始请求,向服务器发送大量新的异常请求,以找到应用的缺陷。被动扫描不会发送新的请求,根据已有的请求和响应来推断应用缺陷。比较而言,主动扫描测试效果更好一些。因而本文采用主动扫描方式对Web应用程序进行SQL注入的自动化测试,首先采用基于广度搜索策略的方法搜集Web应用SQL注入点,然后调用sqlmap工具对获取到的SQL注入点进行SQL注入测试。本文研究了Web应用程序的SQL注入测试方法,主要工作有以下几个方面:1.研究SQL注入原理、攻击方式、检测方法以及防御方法,并介绍了现阶段广泛使用的SQL注入测试工具。2.研究Web系统架构、Web爬虫技术、Web反爬虫策略和Web反反爬虫技术。在此基础上采用基于广度搜索策略的Web网络爬虫方法获取Web应用系统中的URL信息,并使用反反爬虫技术来提高URL采集结果的准确性。3.针对sqlmap工具不能自动收集Web应用SQL注入点的问题,结合Web爬虫技术设计并实现收集Web应用中全部SQL注入点。在此基础上封装sqlmap检测SQL注入漏洞命令并以多线程的形式进行各种类型的SQL注入漏洞检测工作。4.搭建并部署存在各种类型SQL注入漏洞的Web系统,然后分别使用本文实现的SQL注入测试系统和其他SQL注入检测工具对存在漏洞的Web系统进行SQL注入检测,通过对检测结果进行比较和分析,验证本文实现的SQL注入测试系统的功能和性能,并针对系统存在的不足提出下一步的工作计划。