本章主要从以下几部分对该软件工具设计进行介绍:
(1)工具软件开发的需求分析;
(2)工具软件各模块的概要设计;
(3)工具软件各模块的详细设计。
4.1 系统设计的需求分析
该系统是以实现一个对SQL注入漏洞进行扫描分析的工具为设计目标。主要目的是发现潜在的SQL注入安全问题,达到提高应用程序的安全性能的目的,并且也方便管理人员和开发人员对Web应用进行文护。
在设计本软件的过程中,鉴于其主要的用途是发现SQL注入漏洞,所以忽略其它注入攻击系统的繁琐功能,重点介绍扫描和分析这两个模块。针对这两个部分,分别对扫描和分析进行深入研究并提出了改进,提高整体性能。
(1)对发现注入点的SQL注入语句进行改进
针对当前SQL注入语句对SQL注入点检测不全面以及效率低等问题,增加判断SQL注入构造语句的种类,进而能够更好的提高发现SQL注入点的效率。
(2)采用多线程技术
在扫描漏洞时,既要考虑对网站的扫描提高扫描的覆盖率,又要保证扫描的速度。采用多线程技术可以很好的解决这些方面的问题。
(3)字典猜解和暴力破解
在对数据库名、表名、字段类型等信息进行破解时,本软件在传统特殊SQL注入语句探测的基础上,还采用字典猜解和暴力破解对其信息进行研究。这样不仅避免了构造畸形注入语句失败时没法对其进行猜解的尴尬局面,同时也提高了SQL注入测试成功的效率。
4.2 系统模块概要设计
在对软件模块进行设计时,优先考虑各个模块的功能独立性,遵循“高内聚、低耦合”的设计原则,从而保证软件的各个功能模块具有相对独立性,并能够根据需要进行扩展。
根据上述模块的基本原则,结合软件工具自身功能,可将本软件系统划分为两大基本模块,分别为:扫描模块和注入点分析模块。SQL注入漏洞扫描分析工具系统框架如图2所示。
图2 SQL注入漏洞扫描分析工具系统框架图
从图2中不难看出,SQL注入漏洞扫描分析系统主要包括两个大模块和八个小模块,下面简单介绍各个模块:
网站扫描模块是根据输入的URL地址,从而获得必要的数据;注入点判断模块是对页面进行注入分析,从而判断是否存在SQL注入点;注入方式猜解模块是对SQL注入进行判断;数据库类型猜解模块主要负责对返回的错误信息进行处理;获取数据库基本信息是对数据库信息进行判断猜解;获取数据库基本表是对数据库基本表的猜解;列信息猜解模块是对表列信息的猜解;记录信息猜解是对数据库记录的猜解。
4.3 系统流程设计
根据系统的模块划分,本章给出系统的主要流程图,包括总体流程图和子模块的流程图。
4.3.1 系统总体流程图
根据SQL注入攻击的流程图及系统主要功能模块的相互关系,给出系统总体业务的流程图,如图3所示。
图3 总体业务流程图
从图3可知,SQL注入攻击漏洞扫描分析一般流程为:
输入时判断SQL注入漏洞网站地址是否合法,如果合法则进入注入点扫描模块;对输入的URL地址,调用相应的扫描模块获取网站数据信息,并且利用注入点判断模块判断其是否存在可能的SQL注入点信息,假如存在就进入SQL注入点模块,反之退出程序;接受SQL注入点的URL地址,通过调用分析SQL注入点模块达到对SQL注入点进行详细分析的目的,如果获得了详细信息,输出结果信息,否则退出程序;最后注入点扫描分析结束。 SQL注入攻击防范策略研究+文献综述(4):http://www.751com.cn/jisuanji/lunwen_3925.html