一种多进程自动化SQL注入批量扫描工具及方法与流程

文档序号:12493102阅读:2401来源:国知局

本发明涉及计算机应用技术领域,具体地说是一种实用性强、多进程自动化SQL注入批量扫描工具及方法。



背景技术:

目前现有针对于sql注入漏洞的扫描工具仅仅是针对于单个请求或单个url中参数来进行扫描,对一个web系统的每一个操作都需要人工分析每个http请求,并对其中存在参数的请求执行SQL注入扫描。如果面对大型web系统进行批量渗透检测的话,针对数万条请求,需要执行几万次的重复冗余操作,耗费大量时间、人力成本。

鉴于此,现提供一种基于多进程自动化SQL注入批量扫描工具及方法,解决如何对一个完整web或C/S系统所有http的请求进行统一高效率批量自动化SQL注入的扫描的问题。



技术实现要素:

本发明的技术任务是针对以上不足之处,提供一种实用性强、多进程自动化SQL注入批量扫描工具及方法。

一种多进程自动化SQL注入批量扫描工具,包括请求模块、分发模块和汇总模块,其中,

请求模块用于请求文件批量参数处理;

分发模块用于任务进程智能分发扫描,即根据用户设置进程数自动分发扫描任务并开启相应进程进行渗透扫描;

汇总模块用于扫描结果智能汇总分析,即自动保存并检测扫描结果,提取存在sql注入漏洞的请求及详细结果。

所述请求模块通过用户指定全部请求文件保存的根目录路径地址,对路径下全部文件进行分析筛选,选出可进行扫描的请求文件,然后根据用户配置的有效会话信息、数据库服务器和进程数,自动对请求执行批量文本处理以保证请求能够正常得到服务器响应。

所述分发模块用于开启指定数目的进程,实现多进程同时批量进行sql注入扫描,扫描过程中该分发模块识别全部参数,并对所有参数发送测试语句,分析响应来判断sql注入。

所述汇总模块在全部扫描完毕后,智能检测全部扫描结果,检索存在sql注入漏洞的请求并将漏洞请求扫描结果汇总到指定目录,方便使用者进行结果统计以及具体查看。

一种多进程自动化SQL注入批量扫描方法,其实现过程为:

首先获取web系统中所有请求;

通过上述扫描工具提取该请求文件,并对请求文件进行预处理;

将进程任务分发,判断SQL注入,即同时开启指定数目的进程,实现多进程同时批量进行sql注入扫描,扫描过程中识别全部参数,并对所有参数发送测试语句,分析响应来判断sql注入;

扫描结束后,对全部扫描结果进行快速检索,查找存在sql注入的扫描结果,并统一汇总到固定文件夹,方便使用者查看运行结果。

获取web系统中所有请求的过程为:通过抓包软件工具,使用手工或自动化点击的方式,将web系统中所有请求全部抓取下来,并保存为若干个txt文件。

获取请求文件并进行预处理的过程为:首先接收使用者输入的请求文件所在路径目录,该目录路径下为web系统中全部请求所保存的文本文件,然后扫描工具自动扫描路径目录文件结构并记录,提取此路径下全部后缀为txt的请求文件,最后对全部请求文件进行预处理:cookie值批量正则替换,确保替换后请求文件中cookie信息为当前web系统中有效cookie值,保证渗透扫描过程中发送的渗透攻击请求能够被程序正常响应。

将进程任务分发的过程为:首先在当前路径下自动创建result文件夹用于存放扫描结果,如果已经存在result文件夹则对进行覆盖操作,在result文件夹中创建跟使用者输入路径下相同的文件夹结构,以实现不同目录下同名文件扫描结果的区分;然后接收使用者输入的进程开启数目x,通过程序智能分发,创建x个批处理文件,已存在的批处理文件则删除,将对每个请求文件执行sql注入的扫描命令依次写入到x个批处理文件中,此时开启x个进程,为每个进程分发一个批处理命令,执行sql注入工具扫描命令,开始对全部文件同时进行多进程批量sql注入扫描。

多进程批量扫描结束后运行结果保存检测的过程为:

当sql注入批量扫描完毕后,按照请求目录存放层级关系,自动保存每个请求的sql注入扫描结果文件,结果文件名与所在路径与源请求一一对应;

保存后自动对全部result结果进行分析,自动识别存在sql注入的扫描结果文件,并将该文件自动汇总到指定目录下;

扫描工具运行完成后,在指定目录路径下记录全部处在sql注入漏洞的请求扫描结果。

记录的扫描结果包括存在注入点的参数、发送的注入语句、通过渗透得到的被测服务器操作系统、中间件信息。

本发明的一种多进程自动化SQL注入批量扫描工具及方法,具有以下优点:

本发明的一种多进程自动化SQL注入批量扫描工具及方法可以在无人值守的情况下自动对数万级别及以上的数量级请求进行批量sql注入自动化扫描,大大提高了产品安全检测渗透效率,大大节省了安全问题修复后回归测试的人力物力,相比以前人工进行sql注入批量检测,时间和工作量减少了90%,实用性强,适用范围广泛,易于推广。

附图说明

附图1为本发明的实现流程图。

具体实施方式

下面结合附图和具体实施例对本发明作进一步说明。

本发明解决对一个完整web或C/S系统所有http的请求进行统一高效率批量自动化SQL注入的扫描。对大批量请求文件进行有效处理后,自动开启多个进程同时对请求文件进行sql注入扫描与渗透测试,并清晰的保存每个请求扫描结果以及自动检索存在sql注入漏洞的请求和扫描结果文件。实现无人值守自动化对数万或数十万级别的请求进行批量渗透测试。

一种多进程自动化SQL注入批量扫描工具,包括请求模块、分发模块和汇总模块,其中,

请求模块用于请求文件批量参数处理;

分发模块用于任务进程智能分发扫描,即根据用户设置进程数自动分发扫描任务并开启相应进程进行渗透扫描;

汇总模块用于扫描结果智能汇总分析,即自动保存并检测扫描结果,提取存在sql注入漏洞的请求及详细结果。

所述请求模块通过用户指定全部请求文件保存的根目录路径地址,对路径下全部文件进行分析筛选,选出可进行扫描的请求文件,然后根据用户配置的有效会话信息、数据库服务器和进程数,自动对请求执行批量文本处理以保证请求能够正常得到服务器响应,在提高批量注入效率的同时,降低漏报。

所述分发模块用于开启指定数目的进程,实现多进程同时批量进行sql注入扫描,扫描过程中该分发模块识别全部参数,并对所有参数发送测试语句,分析响应来判断sql注入。

所述汇总模块在全部扫描完毕后,智能检测全部扫描结果,检索存在sql注入漏洞的请求并将漏洞请求扫描结果汇总到指定目录,方便使用者进行结果统计以及具体查看。

如附图1所示,一种多进程自动化SQL注入批量扫描方法,本方法可进行基于请求文件和url的sql注入智能扫描,包含扫描过程及结果记录,但本方法实现了在面对大型系统或大数量级别的请求文件时,可以对大数量请求文件进行批量处理和操作,将请求文件智能分发给多个子进程中,实现多进程任务调度,加快请求sql注入扫描速度;同时能够对扫描结果进行快速检索和处理,实现了无人值守全自动化sql注入批量扫描。

其实现过程为:

1)首先获取web系统中所有请求;

使用者首先通过抓包软件如fiddler等工具,利用手工或自动化点击的方式,将web系统中所有请求全部抓取下来,并保存为多个txt文件,然后开启本扫描工具。

2)通过上述扫描工具提取该请求文件,并对请求文件进行预处理;

3)将进程任务分发,判断SQL注入,即同时开启指定数目的进程,实现多进程同时批量进行sql注入扫描,扫描过程中识别全部参数,并对所有参数发送测试语句,分析响应来判断sql注入;

4)扫描结束后,对全部扫描结果进行快速检索,查找存在sql注入的扫描结果,并统一汇总到固定文件夹,方便使用者查看运行结果。

获取请求文件并进行预处理的过程为:首先接收使用者输入的请求文件所在路径目录,该目录路径下为web系统中全部请求所保存的文本文件,然后扫描工具自动扫描路径目录文件结构并记录,提取此路径下全部后缀为txt的请求文件,最后对全部请求文件进行预处理:cookie值批量正则替换,确保替换后请求文件中cookie信息为当前web系统中有效cookie值,保证渗透扫描过程中发送的渗透攻击请求能够被程序正常响应。

将进程任务分发的过程为:首先在当前路径下自动创建result文件夹用于存放扫描结果,如果已经存在result文件夹则对进行覆盖操作,在result文件夹中创建跟使用者输入路径下相同的文件夹结构,以实现不同目录下同名文件扫描结果的区分;然后接收使用者输入的进程开启数目x,通过程序智能分发,创建x个批处理文件,已存在的批处理文件则删除,将对每个请求文件执行sql注入的扫描命令依次写入到x个批处理文件中,此时开启x个进程,为每个进程分发一个批处理命令,执行sql注入工具扫描命令,开始对全部文件同时进行多进程批量sql注入扫描。

多进程批量扫描结束后运行结果保存检测的过程为:

当sql注入批量扫描完毕后,按照请求目录存放层级关系,自动保存每个请求的sql注入扫描结果文件,结果文件名与所在路径与源请求一一对应;

保存后自动对全部result结果进行分析,自动识别存在sql注入的扫描结果文件,并将该文件自动汇总到指定目录”result\sql注入问题汇总\”下。

工具运行完成后,在“result\sql注入问题汇总\”路径下,即为全部处在sql注入漏洞的请求扫描结果记录,包含了存在注入点的参数、发送的注入语句、通过渗透得到的被测服务器操作系统、中间件等信息。

上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的一种多进程自动化SQL注入批量扫描工具及方法的权利要求书的且任何所述技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1