一种检测SQL注入的方法及装置与流程

文档序号:27008642发布日期:2021-10-19 23:10阅读:201来源:国知局
一种检测SQL注入的方法及装置与流程
一种检测sql注入的方法及装置
技术领域
1.本发明涉及sql注入测试领域,尤其涉及一种检测sql注入的方法及装置。


背景技术:

2.现有技术中,sql注入的检测方式主要有两类,分别是动态监测和静态检测。动态监测即在系统运行时,使用动态监测攻击对其系统进行扫描,依据扫描结果判断是否存在sql注入漏洞;静态检测指对代码做深层次分析。
3.目前实现sql注入检测的方案一般是手工或者借助检测工具实现,因此存在手动检测效率低,工作量大以及现有检测方案无法实现sql注入任务的创建、检测、判断等请求封装成一套自动运行的系统的缺点。


技术实现要素:

4.本发明提供了一种检测sql注入的方法及装置,用于解决现有技术中手动检测效率低,工作量大以及现有检测方案无法实现sql注入任务的创建、检测、判断等请求封装成一套自动运行的系统的问题。
5.为了解决上述问题,本发明是这样实现的:
6.第一方面,本发明提供一种检测sql注入的方法,包括:
7.接收用户在测试用例展示页面触发的sql注入测试用例的执行指令;
8.响应于所述执行指令,执行所述sql注入测试用例,其中执行所述sql注入测试用例包括:
9.根据所述sql注入测试用例中的信息创建sql注入任务;
10.对所述sql注入任务进行扫描,检测是否存在sql注入点,并生成检测结果;
11.输出所述检测结果,并在结果展示页面进行展示。
12.可选的,接收用户在测试用例展示页面触发的sql注入测试用例的执行指令,之前还包括:
13.接收用户在测试用例创建页面输入的sql注入测试用例信息;
14.所述sql注入测试用例信息包括以下至少一项:测试用例名称、测试用例描述、待检测的sql注入的目标url、待检测的sql注入的请求方式、待检测的sql注入的cookie、待检测的sql注入的请求参数和待检测的sql注入检测等级;
15.接收用户在测试用例创建页面触发的创建指令;
16.响应于所述创建指令,根据所述sql注入测试用例信息创建sql注入测试用例。
17.可选的,接收用户在测试用例展示页面触发的sql注入测试用例的执行指令之前还包括:
18.若所述用户在测试用例展示页面选择的sql注入测试用例为两个或两个以上时,接收用户点击所述测试用例展示页面的关联用例按钮触发的关联指令,将所述选择的sql注入测试关联至同一集合;
19.响应于所述执行指令,执行sql注入测试用例还包括:
20.响应于所述执行指令,并行执行所述集合内所有sql注入测试用例。
21.可选的,接收用户在测试用例创建页面输入的sql注入测试用例信息,包括:
22.接收用户对所述sql注入测试用例的sql注入检测等级的设置;
23.对所述sql注入任务进行扫描,检测是否存在sql注入点,包括:
24.根据所述sql注入测试用例的sql注入检测等级,对所述sql注入任务进行扫描,检测是否存在sql注入点;
25.所述sql注入检测等级的设置包括:对sql注入的请求的深度及数量进行设置。
26.本发明中,通过将sql注入任务的创建、检测、判断等请求封装成一套自动运行的系统,将sql注入漏洞检测自动化运行,并将结果可视化展示,能够简便、有效检测出存在的sql注入漏洞。
27.第二方面,本发明提供一种检测sql注入的装置,包括:
28.第一接收模块,用于接收用户在测试用例展示页面触发的sql注入测试用例的执行指令;
29.执行模块,用于响应于所述执行指令,执行所述sql注入测试用例,其中所述执行模块包括:
30.任务创建子模块,用于根据所述sql注入测试用例中的信息创建sql注入任务;
31.扫描子模块,用于对所述sql注入任务进行扫描,检测是否存在sql注入点,并生成检测结果;
32.输出子模块,用于输出所述检测结果,并在结果展示页面进行展示。
33.可选的,用例创建模块,用于接收用户在测试用例创建页面输入的sql注入测试用例信息;
34.所述sql注入测试用例信息包括以下至少一项:测试用例名称、测试用例描述、待检测的sql注入的目标url、待检测的sql注入的请求方式、待检测的sql注入的cookie、待检测的sql注入的请求参数和待检测的sql注入检测等级;
35.第二接收模块,用于接收用户在测试用例创建页面触发的创建指令;
36.创建执行模块,用于响应于所述创建指令,根据所述sql注入测试用例信息创建sql注入测试用例。
37.可选的,用例关联模块,用于若所述用户在测试用例展示页面选择的sql注入测试用例为两个或两个以上时,接收用户点击所述测试用例展示页面的关联用例按钮触发的关联指令,将所述选择的sql注入测试关联至同一集合;
38.所述执行模块还包括:
39.并行子执行模块,用于响应于所述执行指令,并行执行所述集合内所有sql注入测试用例。
40.可选的,所述用例创建模块,包括:
41.注入检测等级设置子模块,用于接收用户对所述sql注入测试用例的sql注入检测等级的设置;
42.所述扫描模块,包括:
43.注入检测等级扫描子模块,用于根据所述sql注入测试用例的sql注入检测等级,
对所述sql注入任务进行扫描,检测是否存在sql注入点;
44.所述sql注入检测等级的设置包括:对sql注入的请求的深度及数量进行设置。
45.第三方面,本发明提供一种服务器,其特征在于,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面中任一项所述的检测sql注入的方法的步骤。
46.第四方面,本发明提供一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面中任一项所述的检测sql注入的方法的步骤。
47.本发明中,通过将sql注入任务的创建、检测、判断等请求封装成一套自动运行的系统,将sql注入漏洞检测自动化运行,并将结果可视化展示,能够简便、有效检测出存在的sql注入漏洞。
附图说明
48.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
49.图1为本发明实施例提供的一种检测sql注入的方法流程示意图;
50.图2为本发明实施例提供的一种检测sql注入的方法界面示意图;
51.图3为本发明实施例提供的一种检测sql注入的方法的执行流程示意图;
52.图4为本发明实施例提供的另一种检测sql注入的方法的执行流程示意图;
53.图5为本发明实施例提供的一种检测sql注入的方法的创建用例的界面示意图;
54.图6为本发明实施例提供的一种检测sql注入的方法关联用例的界面示意图;
55.图7为本发明实施例提供的一种检测sql注入的装置的结构示意图;
56.图8为本发明实施例提供的一种服务器的结构示意图。
具体实施方式
57.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
58.请参考图1,本发明实施例提供了一种检测sql注入的方法,包括:
59.步骤11:接收用户在测试用例展示页面触发的sql注入测试用例的执行指令;
60.步骤12:响应于所述执行指令,执行所述sql注入测试用例,其中执行所述sql注入测试用例包括:
61.步骤121:根据所述sql注入测试用例中的信息创建sql注入任务;
62.步骤122:对所述sql注入任务进行扫描,检测是否存在sql注入点,并生成检测结果;
63.步骤123:输出所述检测结果,并在结果展示页面进行展示。
64.本发明实施例中,请参考图2,在步骤11中,用户点击对应测试用例的“执行”按钮,
触发sql注入测试用例的执行指令,也可以点击其他按钮,对所选中的测试用例进行编写、复制、删除和废弃等操作。
65.请参考图3和图4,在步骤12中,根据sql注入测试用例中的配置参数执行所述sql注入测试用例,通过调用sqlmapapi,自动检测sql注入,并输出sql注入检测结果;其中,实现sql自动化注入检测的步骤,请参考图4,首先,启动sqlmap server服务,如步骤121中,根据所述sql注入测试用例中的信息创建sql注入任务,并指定任务参数,如步骤122中,sqlmap server服务开始对sql注入任务进行扫描;检测过程中会不断对任务结果进行探测,等待执行结束后,对最终检测结果进行探测,获取是否存在注入点,并如步骤123中,输出所述检测结果,并通过点击界面的“执行结果”按钮在结果展示页面进行展示。
66.本发明中,通过将sql注入任务的创建、检测、判断等请求封装成一套自动运行的系统,将sql注入漏洞检测自动化运行,并将结果可视化展示,能够简便、有效检测出存在的sql注入漏洞。
67.本发明实施例中,可选的,接收用户在测试用例展示页面触发的sql注入测试用例的执行指令,之前还包括:
68.接收用户在测试用例创建页面输入的sql注入测试用例信息;
69.所述sql注入测试用例信息包括以下至少一项:测试用例名称、测试用例描述、待检测的sql注入的目标url、待检测的sql注入的请求方式、待检测的sql注入的cookie、待检测的sql注入的请求参数和待检测的sql注入检测等级;
70.接收用户在测试用例创建页面触发的创建指令;
71.响应于所述创建指令,根据所述sql注入测试用例信息创建sql注入测试用例。
72.请参考图5,本发明实施例中,用户在测试用例展示页面选择的测试用例通过“新增用例”指示进行操作,用户在测试用例创建页面输入创建sql注入测试用例需要的信息,所述sql注入测试用例信息包括以下至少一项:测试用例名称、测试用例描述、待检测的sql注入的目标url、待检测的sql注入的请求方式、待检测的sql注入的cookie、待检测的sql注入的请求参数和待检测的sql注入检测等级。
73.本发明实施例中,可选的,接收用户在测试用例创建页面输入的sql注入测试用例信息,包括:
74.接收用户对所述sql注入测试用例的sql注入检测等级的设置;
75.对所述sql注入任务进行扫描,检测是否存在sql注入点,包括:
76.根据所述sql注入测试用例的sql注入检测等级,对所述sql注入任务进行扫描,检测是否存在sql注入点;
77.所述sql注入检测等级的设置包括:对sql注入的请求的深度及数量进行设置。
78.本发明实施例中,对所述sql注入测试用例的sql注入检测等级的设置可在图5中“options”一栏中进行输入,所述sql注入检测等级的设置包括:对sql注入的请求的深度及数量进行设置;可以设置sql注入检测等级的level参数,所述level参数可以设置为1

5的整数值,不设置时默认为1;所述level参数数值越大,代表sql注入的注入程度越深;执行sql注入测试用例时,sql注入检测等级参数被传给sqlmapapi工具,sqlmap server服务内部对sql注入检测等级的不同等级进行处理,当level参数设定为1、2时,sqlmap会尝试注入参数信息;当level参数设定3、4时,sqlmap会尝试对http referer进行注入;当level参数
设定大于5时,sqlmap会尝试对host目标服务器域名或ip进行注入。
79.本发明实施例中,可选的,接收用户在测试用例展示页面触发的sql注入测试用例的执行指令之前还包括:
80.若所述用户在测试用例展示页面选择的sql注入测试用例为两个或两个以上时,接收用户点击所述测试用例展示页面的关联用例按钮触发的关联指令,将所述选择的sql注入测试关联至同一集合;
81.响应于所述执行指令,执行sql注入测试用例还包括:
82.响应于所述执行指令,并行执行所述集合内所有sql注入测试用例。
83.请参考图6,本发明实施例中,若所述用户在测试用例展示页面选择的sql注入测试用例为两个或两个以上,想同时执行多条用例,可以将测试用例关联到同一集合中,多个测试用例可以组成一个测试集合,通过测试用例关联模块针对测试用例集合进行管理,提供了针对测试集合的查询、新增、编辑、复制、删除、关联用例、执行以及执行结果查看等操作,执行集合时能够将集合关联的多条用例批量执行,所述集合执行完毕,点击执行集合的执行结果能够查看集合内所有关联用例的执行详情。
84.本发明实施例中,通过将sql注入任务的创建、检测、判断等请求封装成一套自动运行的系统,将sql注入漏洞检测自动化运行,并将结果可视化展示,能够简便、有效检测出存在的sql注入漏洞。
85.请参考图7,本发明实施例提供一种检测sql注入的装置,包括:
86.第一接收模块71,用于接收用户在测试用例展示页面触发的sql注入测试用例的执行指令;
87.执行模块72,用于响应于所述执行指令,执行所述sql注入测试用例,其中所述执行模块72包括:
88.任务创建子模块721,用于根据所述sql注入测试用例中的信息创建sql注入任务;
89.扫描子模块722,用于对所述sql注入任务进行扫描,检测是否存在sql注入点,并生成检测结果;
90.输出子模块723,用于输出所述检测结果,并在结果展示页面进行展示。
91.本发明实施例中,可选的,用例创建模块,用于接收用户在测试用例创建页面输入的sql注入测试用例信息;
92.所述sql注入测试用例信息包括以下至少一项:测试用例名称、测试用例描述、待检测的sql注入的目标url、待检测的sql注入的请求方式、待检测的sql注入的cookie、待检测的sql注入的请求参数和待检测的sql注入检测等级;
93.第二接收模块,用于接收用户在测试用例创建页面触发的创建指令;
94.创建执行模块,用于响应于所述创建指令,根据所述sql注入测试用例信息创建sql注入测试用例。
95.本发明实施例中,可选的,用例关联模块,用于若所述用户在测试用例展示页面选择的sql注入测试用例为两个或两个以上时,接收用户点击所述测试用例展示页面的关联用例按钮触发的关联指令,将所述选择的sql注入测试关联至同一集合;
96.所述执行模块还包括:
97.并行子执行模块,用于响应于所述执行指令,并行执行所述集合内所有sql注入测
试用例。
98.本发明实施例中,可选的,所述用例创建模块,包括:
99.注入检测等级设置子模块,用于接收用户对所述sql注入测试用例的sql注入检测等级的设置;
100.所述扫描模块,包括:
101.注入检测等级扫描子模块,用于根据所述sql注入测试用例的sql注入检测等级,对所述sql注入任务进行扫描,检测是否存在sql注入点;
102.所述sql注入检测等级的设置包括:对sql注入的请求的深度及数量进行设置。
103.本发明实施例提供的检测sql注入的装置能够实现图1的方法实施例中检测sql注入的方法实现的各个过程,为避免重复,这里不再赘述。
104.请参考图8,本发明实施例还提供一种服务器80,包括处理器81,存储器82,存储在存储器82上并可在所述处理器81上运行的计算机程序,该计算机程序被处理器81执行时实现上述检测sql注入的方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
105.本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述检测sql注入的方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等。
106.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
107.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者终端等)执行本发明各个实施例所述的方法。
108.上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1