疑似SQL注入类型的检测方法及装置与流程

文档序号:14156921阅读:306来源:国知局

本发明涉及网络安全技术领域,具体而言,涉及一种疑似sql注入类型的检测方法及装置。



背景技术:

漏洞扫描是指在一方授权的情况下,另一方对其指定范围进行扫描,尝试检测其网站/服务器是否存在漏洞,用以检测其网站或产品的安全性;漏洞扫描人员使用专业的漏洞扫描器进行漏洞扫描,并对扫描结果进行验证,以期发现和挖掘系统中存在的漏洞,然后输出漏洞扫描报告,并提交给网络所有者。网络所有者根据漏洞扫描人员提供的报告,可以清晰知晓系统中存在的安全隐患和问题。

sql注入作为常见且危害较大的web应用漏洞,一直是各类web漏洞扫描器重点关注的漏洞类型。如今各个web漏洞扫描器,其扫描sql注入的方法大多为使用常见的payload进行探测,根据返回结果判断是否存在注入,但是由于sql语句不同位置的注入方法不尽相同,所以这种判断方式在准确性上有所欠缺。



技术实现要素:

有鉴于此,本发明实施例的目的在于提供一种疑似sql注入类型的检测方法及装置,以改善上述问题。

第一方面,本发明实施例提供了一种疑似sql注入类型的检测方法,用于对http请求的疑似sql注入类型进行检测,所述方法包括:

获得未知类型的疑似注入点;

将所述未知类型的疑似注入点对应的http请求量化得到输入向量;

将所述输入向量作为预先建立的训练模型的输入进行运算,并依据输出结果得到所述未知类型的疑似注入点的疑似sql注入类型。

优选地,所述方法还包括:

获得多个已知类型的疑似注入点的集合;

将所述集合中每个已知类型的疑似注入点对应的http请求量化作为训练输入集,所述集合中每个已知类型的疑似注入点对应的sql注入类型量化作为训练输出集;

依据所述训练输入集和所述训练输出集进行训练,得到所述训练模型。

优选地,所述将所述集合中每个已知类型的疑似注入点对应的http请求量化作为训练输入集的步骤包括:

依据所述集合中每个已知类型的疑似注入点对应的http请求中的关键参数确定每一http请求中的关键参数的权重;

依据每一http请求中的关键参数的权重对对应的http请求进行量化,得到多个训练输入;

将所述多个训练输入作为所述训练输入集。

优选地,所述获得未知类型的疑似注入点的步骤包括:

获得目标网站的所有链接对应的http请求集合;

对所述http请求集合进行筛选,得到所述未知类型的疑似注入点。

优选地,所述获得目标网站的所有链接对应的http请求集合的步骤包括:

通过网络爬虫对所述目标网站进行页面爬取,得到所述目标网站的第一链接;

再次通过网络爬虫对所述目标网站进行页面爬取,得到所述目标网站的第二链接;

对所述第一链接和所述第二链接去重,得到所述目标网站的所有链接对应的http请求集合。

第二方面,本发明实施例提供了一种疑似sql注入类型的检测装置,用于对http请求的疑似sql注入类型进行检测,所述疑似sql注入类型的检测装置包括:

获取模块,用于获得未知类型的疑似注入点;

量化模块,将所述未知类型的疑似注入点对应的http请求量化得到输入向量;

运算模块,用于将所述输入向量作为预先建立的训练模型的输入进行运算,并依据输出结果得到所述未知类型的疑似注入点的疑似sql注入类型。

优选地,疑似sql注入类型的检测装置还包括训练模块;

所述获取模块还用于获得多个已知类型的疑似注入点的集合;

所述量化模块还用于将所述集合中每个已知类型的疑似注入点对应的http请求量化作为训练输入集、所述集合中每个已知类型的疑似注入点对应的sql注入类型量化作为训练输出集;

所述训练模块用于依据所述训练输入集和所述训练输出集进行训练,得到所述训练模型。

优选地,所述量化模块包括:

权重子模块,用于依据所述集合中每个已知类型的疑似注入点对应的http请求中的关键参数确定每一http请求中的关键参数的权重;

量化子模块,用于依据每一http请求中的关键参数的权重对对应的http请求进行量化,得到多个训练输入;以及

将所述多个训练输入作为所述训练输入集。

优选地,所述获取模块包括:

获取子模块,用于获得目标网站的所有链接对应的http请求集合;

筛选子模块,用于对所述http请求集合进行筛选,得到所述未知类型的疑似注入点。

优选地,所述获取子模块用于通过网络爬虫对所述目标网站进行页面爬取,得到所述目标网站的第一链接;以及

再次通过网络爬虫对所述目标网站进行页面爬取,得到所述目标网站的第二链接;

所述获取子模块还用于对所述第一链接和所述第二链接去重,得到所述目标网站的所有链接对应的http请求集合。

对于现有技术,本发明提供的疑似sql注入类型的检测方法及装置具有如下的有益效果:

本发明提供的疑似sql注入类型的检测方法及装置可以较准确地识别疑似注入点的疑似sql注入类型,以便后续对sql注入检测时根据识别出的疑似sql注入类型针对性的进行检测,提升sql注入检测的检测质量。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明较佳实施例提供的用户终端与服务端进行交互的示意图。

图2为本发明较佳实施例提供的用户终端的方框示意图。

图3为本发明较佳实施例提供的疑似sql注入类型的检测方法的流程图。

图4为图3中步骤s101所包括的子步骤的流程图。

图5为图3中步骤s102所包括的子步骤的流程图。

图6为本发明较佳实施例提供的疑似sql注入类型的检测装置的功能模块示意图。

图标:100-用户终端;110-疑似sql注入类型的检测装置;111-获取模块;1111-获取子模块;1112-筛选子模块;112-量化模块;1121-权重子模块;1122-量化子模块;113-训练模块;114-运算模块;120-存储器;130-存储控制器;140-处理器;150-外设接口;160-输入输出单元;170-音频单元;180-显示单元;200-服务端;300-网络。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

如图1所示,是本发明较佳实施例提供的用户终端100与服务端200进行交互的示意图。所述用户终端100通过网络300与所述服务端200通信连接,以进行数据通信或交互。所述服务端200可以是,但不限于,web(网站)服务器、数据库服务器、网络服务器等。所述用户终端100可以是,但不限于,智能手机、个人电脑(personalcomputer,pc)、平板电脑、个人数字助理(personaldigitalassistant,pda)、移动上网设备(mobileinternetdevice,mid)等。所述网络300可以是,但不限于,有线网络或无线网络。所述用户终端100的操作系统可以是,但不限于,安卓(android)系统、ios(iphoneoperatingsystem)系统、windowsphone系统、windows系统等。

于本发明实施例中,所述用户终端100安装有应用程序(application,app),用户终端100可访问服务端的目标网站并依据目标网站的链接地址得到相应的http请求。本发明实施例提供的疑似sql注入类型的检测方法可运行于用户终端100的应用程序中。

如图2所示,是所述用户终端100的方框示意图。所述用户终端100包括疑似sql注入类型的检测装置110、存储器120、存储控制器130、处理器140、外设接口150、输入输出单元160、音频单元170以及显示单元180。

所述存储器120、存储控制器130、处理器140、外设接口150、输入输出单元160、音频单元170、显示单元180各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述疑似sql注入类型的检测装置110包括至少一个可以软件或固件(firmware)的形式存储于所述存储器120中或固化在所述用户终端100设备的操作系统(operatingsystem,os)中的软件功能模块。所述处理器140用于执行存储器120中存储的可执行模块,例如所述疑似sql注入类型的检测装置110包括的软件功能模块或计算机程序。

其中,存储器120可以是,但不限于,随机存取存储器(randomaccessmemory,ram),只读存储器(readonlymemory,rom),可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom)等。其中,存储器120用于存储程序,所述处理器140在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的服务器所执行的方法可以应用于处理器140中,或者由处理器140实现。

处理器140可能是一种集成电路芯片,具有信号的处理能力。上述的处理器140可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述外设接口150将各种输入/输入装置耦合至处理器140以及存储器120。在一些实施例中,外设接口150,处理器140以及存储控制器130可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。

输入输出单元160用于提供给用户输入数据实现用户与所述疑似sql注入类型的检测装置的交互。所述输入输出单元160可以是,但不限于,鼠标和键盘等。

音频单元170向用户提供音频接口,其可包括一个或多个麦克风、一个或者多个扬声器以及音频电路。

显示单元180在所述疑似sql注入类型的检测装置110与用户之间提供一个交互界面(例如用户操作界面)或用于显示图像数据给用户参考。在本实施例中,所述显示单元180可以是液晶显示器或触控显示器。若为触控显示器,其可为支持单点和多点触控操作的电容式触控屏或电阻式触控屏等。支持单点和多点触控操作是指触控显示器能感应到来自该触控显示器上一个或多个位置处同时产生的触控操作,并将该感应到的触控操作交由处理器140进行计算和处理。

请参阅图3,是本发明较佳实施例提供的应用于图2所示的疑似sql注入类型的检测装置110的疑似sql注入类型的检测方法的流程图。下面将对图3所示的具体流程进行详细阐述。

步骤s101,建立训练模型。

本发明实施例中,疑似sql注入类型的检测装置110可依据多个已知类型的疑似注入点建立用于疑似sql注入类型检测的训练模型。请参阅图4,所述建立训练模型具体包括:

子步骤s1011,获得多个已知类型的疑似注入点的集合。

本发明实施例中,已知类型的疑似注入点为用户在用户终端100预先录入的。所述已知类型的疑似注入点为疑似插入sql语句(即可能存在sql注入)的http请求。所述已知类型的疑似注入点是指该疑似注入点可能插入了某种已知类型的sql语句,当该已知类型的疑似注入点确实存在sql注入时,则sql注入必然且只能是某一种特定类型的sql注入。

在建立训练模型之前,用户可在用户终端100录入多个已知类型的疑似注入点(http请求),得到多个已知类型的疑似注入点的集合。

子步骤s1012,将集合中每个已知类型的疑似注入点对应的http请求量化得到训练输入集,每个已知类型的疑似注入点对应的sql注入类型量化得到训练输出集。

在得到多个已知类型的疑似注入点的集合后,疑似sql注入类型的检测装置110将每个已知类型的疑似注入点对应的http请求量化为多维向量,并将量化得到的多个多维向量作为训练输入集。

本发明实施例中,在对每个已知类型的疑似注入点对应的http请求量化时,疑似sql注入类型的检测装置110可依据所述集合中每个已知类型的疑似注入点对应的http请求中的关键参数中出现词组的频率,确定每一http请求中关键参数的权重。所述关键参数是指http请求中可能被插入sql语句的一些关键性参数,如get参数、post参数或uri参数等。

例如,当集合中包括10个已知类型的疑似注入点对应的http请求,在这10个http请求的uri参数里“uid”这个词组出现的频率越高,在对疑似注入点对应的http请求中的uri参数进行量化时,对应的权重也就越高。

与此同时,疑似sql注入类型的检测装置110还将集合中每个已知类型的疑似注入点对应的(疑似)sql注入类型量化,并将得到的多个量化结果作为训练输出集,每种sql注入类型对应不同的量化值。

本发明实施例中,将集合中每个已知类型的疑似注入点对应的http请求量化,以及将集合中每个已知类型的疑似注入点对应的sql注入类型量化,可以采用,但不限于tf-idf算法、n-gram算法或vsm算法等。

子步骤s1013,依据训练输入集和训练输出集进行训练,得到训练模型。

得到训练输入集和训练输出集后,疑似sql注入类型的检测装置110以所述训练输入集为输入,训练输出集为输出进行训练,得到训练模型。

本发明实施例中,进行训练所采用的算法可以是,但不限于自决策树算法、贝叶斯算法及人工神经网络算法等。

步骤s102,获得未知类型的疑似注入点。

训练模型建立完成后,即可对疑似sql注入类型进行检测。

首先,疑似sql注入类型的检测装置110获取待检测的未知类型的疑似注入点(http请求)。

请参阅图5,所述获得未知类型的疑似注入点具体包括如下子步骤:

子步骤s1021,获得目标网站的所有链接对应的http请求集合。

具体的,疑似sql注入类型的检测装置110首先通过网络爬虫对目标网站进行爬取,获取整个网站的整站目录,即目标网站的第一链接。所述目标网站是指需要进行疑似sql注入类型检测的网站。

然后,疑似sql注入类型的检测装置110再次通过网络爬虫对目标网站进行爬取,调整爬取深度以完善整站目录的完整性,得到目标网站的第二链接。

然后对第一链接和第二链接去重,得到目标网站的所有链接,进而得到目标网站的所有链接对应的http请求集合(链接中包含了http请求,因此得到链接即可得到对应的http请求)。

通过网络爬虫两次爬取,确保能够获取到目标网站的所有链接对应的http请求集合,避免遗漏。

子步骤s1022,对http请求集合进行筛选,得到未知类型的疑似注入点。

得到http请求集合后,疑似sql注入类型的检测装置110对http请求集合中的http请求进行筛选,筛选出包含了关键参数(如get参数、post参数或uri参数等)的http请求,得到未知类型的疑似注入点,所述未知类型的疑似注入点可以是一个或多个。

由于sql注入主要是在http请求的关键参数中插入sql语句,因此依据关键参数进行筛选,能够准确有效地筛选出可能有sql注入的http请求。

步骤s103,将未知类型的疑似注入点对应的http请求量化得到输入向量。

得到未知类型的疑似注入点后,疑似sql注入类型的检测装置110将未知类型的疑似注入点量化得到多维的输入向量。

同样的,将未知类型的疑似注入点量化可以采用,但不限于tf-idf算法、n-gram算法或vsm算法等。

步骤s104,将输入向量作为预先建立的训练模型的输入进行运算,并依据输出结果得到未知类型的疑似注入点的疑似sql注入类型。

将未知类型的疑似注入点量化得到输入向量后,疑似sql注入类型的检测装置110将输入向量作为该预先建立的训练模型的输入进行运算,得到一输出结果,该输出结果为一向量。

在建立训练模型阶段,疑似sql注入类型的检测装置110已将集合中每个已知类型的疑似注入点对应的sql注入类型量化,并将得到的多个量化结果作为训练输出集。

因此,将运算得到的输出结果与已知类型的疑似注入点对应的sql注入类型所量化的结果进行比对,即可得到未知类型的疑似注入点的疑似sql注入类型。如此,后续对未知类型的疑似注入点进行sql注入检测时,只需要针对性的对该疑似sql注入类型一种注入类型检测即可,能够提升sql注入的检测效率和准确性。

综上所述,本发明实施例提供的疑似sql注入类型的检测方法,首先依据多个已知类型的疑似注入点量化后建立训练模型,在对http请求的疑似sql注入类型进行检测时,将未知类型的疑似注入点对应的http请求量化得到输入向量,并将输入向量作为训练模型的输入进行运算,从而依据输出结果得到未知类型的疑似注入点的疑似sql注入类型。如此,后续对未知类型的疑似注入点进行sql注入检测时,只需要针对性的对该疑似sql注入类型一种注入类型检测即可,能够提升sql注入的检测效率和准确性。

请参阅图6,是本发明较佳实施例提供的图2所示的疑似sql注入类型的检测装置110的功能模块示意图。所述疑似sql注入类型的检测装置110包括获取模块111、量化模块112、训练模块113和运算模块114。

所述获取模块111用于获得多个已知类型的疑似注入点的集合。

可以理解的,所述获取模块111可以用于执行上述的子步骤s1011。

所述量化模块112用于在得到多个已知类型的疑似注入点的集合后,疑似sql注入类型的检测装置110将每个已知类型的疑似注入点对应的http请求量化为多维向量,并将量化得到的多个多维向量作为训练输入集。

具体的,所述量化模块112包括权重子模块1121和量化子模块1122。所述权重子模块1121用于依据所述集合中每个已知类型的疑似注入点对应的http请求中的关键参数确定每一http请求中的关键参数的权重。所述量化子模块1122用于依据每一http请求中的关键参数的权重对对应的http请求进行量化,得到多个训练输入,以及将所述多个训练输入作为所述训练输入集。

可以理解的,所述量化模块112可以用于执行上述的子步骤s1012。

所述训练模块113用于依据所述训练输入集和所述训练输出集进行训练,得到训练模型。

可以理解的,所述训练模块113可以用于执行上述的子步骤s1013。

所述获取模块111还用于获得未知类型的疑似注入点。

本发明实施例中,所述获取模块111包括获取子模块1111和筛选子模块1112。

所述获取子模块1111用于获得目标网站的所有链接对应的http请求集合。

具体的,所述获取子模块1111用于通过网络爬虫对所述目标网站进行页面爬取,得到所述目标网站的第一链接;以及再次通过网络爬虫对所述目标网站进行页面爬取,得到所述目标网站的第二链接。所述获取子模块1111还用于对所述第一链接和所述第二链接去重,得到所述目标网站的所有链接对应的http请求集合。

所述筛选子模块1112用于对所述http请求集合进行筛选,得到所述未知类型的疑似注入点。

可以理解的,所述获取模块111还可用于执行上述的步骤s102,所述获取子模块1111可以用于执行上述的子步骤s1021,所述筛选子模块1112可以用于执行上述的子步骤s1022。

所述量化模块112还用于将未知类型的疑似注入点对应的http请求量化得到输入向量。

可以理解的,所述量化模块112还可以用于执行上述的步骤s103。

所述运算模块114用于将所述输入向量作为预先建立的训练模型的输入进行运算,并依据输出结果得到所述未知类型的疑似注入点的疑似sql注入类型。

可以理解的,所述运算模块114可以用于执行上述的步骤s104。

综上所述,本发明实施例提供的疑似sql注入类型的检测装置110,可首先依据多个已知类型的疑似注入点量化后建立训练模型,在对http请求的疑似sql注入类型进行检测时,将未知类型的疑似注入点对应的http请求量化得到输入向量,并将输入向量作为训练模型的输入进行运算,从而依据输出结果得到未知类型的疑似注入点的疑似sql注入类型。如此,后续对未知类型的疑似注入点进行sql注入检测时,只需要针对性的对该疑似sql注入类型一种注入类型检测即可,能够提升sql注入的检测效率和准确性。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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