CN114338240A - 漏洞扫描方法以及装置 - Google Patents
漏洞扫描方法以及装置 Download PDFInfo
- Publication number
- CN114338240A CN114338240A CN202210214626.7A CN202210214626A CN114338240A CN 114338240 A CN114338240 A CN 114338240A CN 202210214626 A CN202210214626 A CN 202210214626A CN 114338240 A CN114338240 A CN 114338240A
- Authority
- CN
- China
- Prior art keywords
- data table
- target
- data
- code
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本说明书实施例提供漏洞扫描方法以及装置,其中所述漏洞扫描方法包括:获取目标网页的页面数据,根据页面数据构建第一数据表,并从目标代码库中获取代码数据,根据代码数据构建第二数据表,根据目标网页和目标代码库的对应关系,基于第一数据表和第二数据表,生成目标数据表,对目标数据表进行漏洞扫描,获得漏洞扫描结果。通过根据目标网页的页面数据构建第一数据表,根据目标代码库中的代码数据构建第二数据表,基于第一数据表和第二数据表,生成目标数据表,覆盖了页面数据和代码数据的所有参数,增大了漏洞扫描范围、进一步提高了漏洞扫描结果的准确性。
Description
技术领域
本说明书实施例涉及计算机技术领域,特别涉及一种漏洞扫描方法。本说明书一个或者多个实施例同时涉及一种漏洞扫描装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序。
背景技术
随着计算机技术的不断发展,越来越多的计算机技术应用在网络安全领域中,网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统实现连续可靠正常地运行,网络服务不中断。为了维护网络安全,需要对网络系统中存在的漏洞进行扫描。
漏洞扫描是指基于漏洞数据库,通过扫描等手段对指定的远程或者本地计算机系统的安全脆弱性进行检测,发现可利用漏洞的一种安全检测行为,是保证信息安全,工作顺利开展的奠基石。因此,亟需一种准确的漏洞扫描方案。
发明内容
有鉴于此,本说明书实施例提供了一种漏洞扫描方法。本说明书一个或者多个实施例同时涉及一种漏洞扫描装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种漏洞扫描方法,包括:
获取目标网页的页面数据,根据页面数据构建第一数据表,并从目标代码库中获取代码数据,根据代码数据构建第二数据表;
根据目标网页和目标代码库的对应关系,基于第一数据表和第二数据表,生成目标数据表;
对目标数据表进行漏洞扫描,获得漏洞扫描结果。
可选地,获取目标网页的页面数据,根据页面数据构建第一数据表的步骤,包括:
获取目标网页的域名信息;
根据域名信息,利用预设工具获取目标网页的页面数据,并对页面数据进行分析,获得页面数据的第一接口信息和第一参数信息;
将域名信息、第一接口信息和第一参数信息存储至第一数据表中。
可选地,从目标代码库中获取代码数据,根据代码数据构建第二数据表的步骤,包括:
获取目标代码库的代码库地址信息;
根据代码库地址信息,提取目标代码库中的代码数据,对代码数据进行解析,获得代码数据中的指定代码段;
提取指定代码段对应的第二接口信息和第二参数信息;
将代码库地址信息、第二接口信息和第二参数信息存储至第二数据表中。
可选地,第一数据表中记录有第一接口信息,第二数据表中记录有第二接口信息;
根据目标网页和目标代码库的对应关系,基于第一数据表和第二数据表,生成目标数据表的步骤,包括:
对比第一接口信息和第二接口信息,在第一接口信息和第二接口信息相同的情况下,合并第一数据表和所第二数据表,生成目标数据表。
可选地,合并第一数据表和第二数据表,生成目标数据表的步骤,包括:
对第一数据表和第二数据表取并集,生成目标数据表。
可选地,对目标数据表进行漏洞扫描,获得漏洞扫描结果的步骤,包括:
根据目标数据表中记录的各信息,生成扫描请求;
将扫描请求发送至模拟运行端,以使模拟运行端基于扫描请求进行模拟运行;
接收模拟运行端反馈的运行结果,根据运行结果确定漏洞扫描结果。
根据本说明书实施例的第二方面,提供了一种漏洞扫描装置,包括:
构建模块,被配置为获取目标网页的页面数据,根据页面数据构建第一数据表,并从目标代码库中获取代码数据,根据代码数据构建第二数据表;
生成模块,被配置为根据目标网页和目标代码库的对应关系,基于第一数据表和第二数据表,生成目标数据表;
获得模块,被配置为对目标数据表进行漏洞扫描,获得漏洞扫描结果。
可选地,构建模块,进一步被配置为获取目标网页的域名信息;根据域名信息,利用预设工具获取目标网页的页面数据,并对页面数据进行分析,获得页面数据的第一接口信息和第一参数信息;将域名信息、第一接口信息和第一参数信息存储至第一数据表中。
可选地,构建模块,进一步被配置为获取目标代码库的代码库地址信息;
根据代码库地址信息,提取目标代码库中的代码数据,对代码数据进行解析,获得代码数据中的指定代码段;提取指定代码段对应的第二接口信息和第二参数信息;
将代码库地址信息、第二接口信息和第二参数信息存储至第二数据表中。
可选地,第一数据表中记录有第一接口信息,第二数据表中记录有第二接口信息;
生成模块,进一步被配置为对比第一接口信息和第二接口信息,在第一接口信息和第二接口信息相同的情况下,合并第一数据表和所第二数据表,生成目标数据表。
可选地,生成模块,进一步被配置为对第一数据表和第二数据表取并集,生成目标数据表。
可选地,获得模块,进一步被配置为根据目标数据表中记录的各信息,生成扫描请求;将扫描请求发送至模拟运行端,以使模拟运行端基于扫描请求进行模拟运行;接收模拟运行端反馈的运行结果,根据运行结果确定漏洞扫描结果。
根据本说明书实施例的第三方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,以实现下述方法:
获取目标网页的页面数据,根据页面数据构建第一数据表,并从目标代码库中获取代码数据,根据代码数据构建第二数据表;
根据目标网页和目标代码库的对应关系,基于第一数据表和第二数据表,生成目标数据表;
对目标数据表进行漏洞扫描,获得漏洞扫描结果。
根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现任意一项所述漏洞扫描方法的步骤。
根据本说明书实施例的第五方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述漏洞扫描方法的步骤。
本说明书一个实施例通过获取目标网页的页面数据,根据页面数据构建第一数据表,并从目标代码库中获取代码数据,根据代码数据构建第二数据表,根据目标网页和目标代码库的对应关系,基于第一数据表和第二数据表,生成目标数据表,对目标数据表进行漏洞扫描,获得漏洞扫描结果。通过根据目标网页的页面数据构建第一数据表,根据目标代码库中的代码数据构建第二数据表,基于第一数据表和第二数据表,生成目标数据表,覆盖了页面数据和代码数据的所有参数,增大了漏洞扫描范围、进一步提高了漏洞扫描结果的准确性。
附图说明
图1是本说明书一个实施例提供的一种一种漏洞扫描方法的流程图;
图2是本说明书一个实施例提供的另一种漏洞扫描方法的处理过程流程图;
图3是本说明书一个实施例提供的一种漏洞扫描装置的结构示意图;
图4是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
漏洞扫描:漏洞扫描是指基于漏洞数据库,通过扫描等手段对指定的远程或者本地计算机系统的安全脆弱性进行检测,发现可利用漏洞的一种安全检测(渗透攻击)行为。
扫描器:扫描器是一类自动检测本地或远程主机安全弱点的程序,它能够快速的准确的发现扫描目标存在的漏洞并提供给使用者扫描结果。
代码库:代码库提供了一种将代码封装在单个文件中、允许继承和修改这些文件并允许分发离散的功能单元的可移植方法。可以将来自多个不同项目的组件合并到一个代码库中。例如,可以从一个项目中选择一个自定义控件,从另一个项目中选择一个组件,再从其他项目中选择一个窗体,然后将它们放入代码库中。也可以为特殊目的自定义代码库。唯一的限制是单个代码库中的所有文件必须用同一种语言编写。
网页:网页是一个包含超文本标记语言(HTML,Hyper Text Markup Language)标签的纯文本文件,它可以存放在世界某个角落的某一台计算机中,是万维网中的一“页”,是超文本标记语言格式(标准通用标记语言的一个应用,文件扩展名为.html或.htm)。网页通常用图像档来提供图画。网页要通过网页浏览器来阅读。
域名:域名(Domain Name),又称网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。
并集:给定两个集合A,B,把他们所有的元素合并在一起组成的集合,叫做集合A与集合B的并集,记作A∪B。例如,集合{1, 2, 3} 和 {2, 3, 4} 的并集是 {1, 2, 3, 4}。
应用程序编程接口:应用程序编程接口(API,Application ProgrammingInterface)是一些预先定义的接口,或指软件系统不同组成部分衔接的约定。用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,而又无需访问源码,或理解内部工作机制的细节。
在本说明书中,提供了一种漏洞扫描方法,本说明书同时涉及一种漏洞扫描装置,一种计算设备,一种计算机可读存储介质,以及一种计算机程序,在下面的实施例中逐一进行详细说明。
随着计算机技术的不断发展,越来越多的计算机技术应用在网络安全领域中,网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统实现连续可靠正常地运行,网络服务不中断。为了维护网络安全,需要对网络系统中存在的漏洞进行扫描。漏洞扫描是指基于漏洞数据库,通过扫描等手段对指定的远程或者本地计算机系统的安全脆弱性进行检测,发现可利用漏洞的一种安全检测行为,是保证信息安全,工作顺利开展的奠基石。
实际应用中,对目标页面进行漏洞扫描时,可以获取该页面上所有的地址信息和参数信息,逐个替换各参数,进行漏洞扫描。但是这种漏洞扫描方法,扫描范围小,导致漏洞扫描结果不准确,为网络安全工作带来了些许障碍。
为了提高漏洞扫描结果的准确性,本说明书提供了一种漏洞扫描方法,通过获取目标网页的域名信息,根据域名信息,利用预设工具获取目标网页的页面数据,并对页面数据进行分析,获得页面数据的第一接口信息和第一参数信息,将域名信息、第一接口信息和第一参数信息存储至第一数据表中,获取目标代码库的代码库地址信息,根据代码库地址信息,提取目标代码库中的代码数据,对代码数据进行解析,获得代码数据中的指定代码段,提取指定代码段对应的第二接口信息和第二参数信息,将代码库地址信息、第二接口信息和第二参数信息存储至第二数据表中,对比第一接口信息和第二接口信息,在第一接口信息和第二接口信息相同的情况下,合并第一数据表和所第二数据表,生成目标数据表,根据目标数据表中记录的各信息,生成扫描请求,将扫描请求发送至模拟运行端,以使模拟运行端基于扫描请求进行模拟运行,接收模拟运行端反馈的运行结果,根据运行结果确定漏洞扫描结果。实现了覆盖页面数据和代码数据的所有参数,增大了漏洞扫描范围、进一步提高了漏洞扫描结果的准确性。
图1示出了本说明书一个实施例提供的一种漏洞扫描方法的流程图,具体包括以下步骤:
步骤102:获取目标网页的页面数据,根据页面数据构建第一数据表,并从目标代码库中获取代码数据,根据代码数据构建第二数据表。
具体地,目标网页是指需要进行漏洞扫描的网页,目标网页的页面数据包括目标网页的域名信息、文本信息、图片信息等等。第一数据表用来存储目标网页的页面数据,第二数据表用来存储目标代码库的代码数据。目标代码库是指目标网页对应的代码库。
需要说明的是,第一数据表和第二数据表的存储格式可以相同,在存储格式相同的情况下,可以将目标网页的页面数据和目标代码库中获取的代码数据进行合并,以覆盖前端页面数据和后端代码数据。前端是指网站前台部分,运行在PC端,移动端等浏览器上展现给用户浏览的网页,后端控制着前端的内容,主要负责程序设计架构思想,管理数据库等。
实际应用中,目标网页的页面数据的获取方式有很多种,一种可能的实现方式中,可以利用预设工具获取目标网页的页面数据,预设工具是指预先设置的可以获取目标页面的页面数据的工具,预设工具包括但不限于Import.io、Parsehub、 Web Scraper等等,具体根据实际情况进行选择,本说明书实施例对此不做任何限定。另一种可能的实现方式中,可以使用网站应用程序编程接口(API,Application Programming Interface)获取目标网页的页面数据。
在一种可选的实施方式中,可以获取目标网页的域名信息,根据目标网页的域名信息找到对应的目标网页,获取目标网页的页面数据,其中,目标网页的页面数据包括该页面数据的第一接口信息和第一参数信息,也即上述获取目标网页的页面数据,根据页面数据构建第一数据表的步骤,可以包括如下步骤:
获取目标网页的域名信息;
根据域名信息,利用预设工具获取目标网页的页面数据,并对页面数据进行分析,获得页面数据的第一接口信息和第一参数信息;
将域名信息、第一接口信息和第一参数信息存储至第一数据表中。
具体地,目标网页的域名信息是指目标网页的地址信息,一个域名信息对应于一个IP地址,在获取域名信息的情况下,根据域名信息,可以查找到该域名信息对应的目标网页。利用预设工具对该目标网页的页面数据进行获取,获取到目标页面的页面数据后,对页面数据进行分析,从页面数据中可以提取到第一接口信息和第一参数信息。
示例地,获取目标网页的域名信息为“www.test.com”,根据该域名信息,获取到目标网页的页面数据为如下所示的代码:
<form action="/query" enctype="multipart/form-data" method="post">
dataid: <input type="text" name="dataid">
<input type="submit">
</form>
其中,“action”就是表单提交的地址,“action”属性后面的“=”表明当这个表单提交后,需要执行的动态Web程序,表单是客户端和服务端进行数据交互的载体。
“enctype”属性是设置提交数据的格式,指定将数据回发到服务器时浏览器使用的编码类型。
“multipart/form-data”是指将数据编码成多用途互联网邮件扩展(MIME,Multipurpose Internet Mail Extensions)报文,表单中的每个键值对都带有各自的内容类型和内容配置是上传二进制数据,该格式常用于文件上传功能。
“method="post"”是指当前表单中的数据用“post”方法传递。
“input type="text"”是指输入类型为文本类型,“input type="submit"”用在表单里面,表示的是普通的单击提交“submit”按钮,就是提交当前所在的表单。
对上述页面数据进行分析,获得页面数据的第一接口名为“/query”,该接口的请求类型为“post”,页面数据的第一参数信息为“dataid”,将获得的域名信息、第一接口信息和第一参数信息存储至第一数据表中,构建得到第一数据表如下表1所示:
表1
域名(Domain) | 第一接口名(Uri) | 第一参数(Param) | 第一接口的请求类型(Httpmethod) |
www.test.com | /query | dataid | post |
应用本说明书实施例的方案,通过获取目标网页的域名信息,根据域名信息,利用预设工具获取目标网页的页面数据,并对页面数据进行分析,获得页面数据的第一接口信息和第一参数信息,将域名信息、第一接口信息和第一参数信息存储至第一数据表中,准确确定了目标网页,进一步提高了获取到域名信息、第一接口信息和第一参数信息的准确性。
在另一种可选的实施方式中,可以获取目标代码库的代码库地址信息,根据目标代码库的代码库地址信息找到对应的目标代码库,从目标代码库中提取目标代码库中的代码数据,其中,目标代码库中的代码数据包括该代码数据的第二接口信息和第二参数信息,也即上述从目标代码库中获取代码数据,根据代码数据构建第二数据表的步骤,可以包括如下步骤:
获取目标代码库的代码库地址信息;
根据代码库地址信息,提取目标代码库中的代码数据,对代码数据进行解析,获得代码数据中的指定代码段;
提取指定代码段对应的第二接口信息和第二参数信息;
将代码库地址信息、第二接口信息和第二参数信息存储至第二数据表中。
具体地,将获取到的目标网页的代码库地址作为上述目标代码库的代码库地址信息,在获取目标代码库的代码库地址信息的情况下,根据目标代码库的代码库地址信息,可以确定出该代码库地址信息对应的目标代码库,提取目标代码库中的代码数据,该代码数据即为目标网页的后端代码数据,利用解析工具对该目标代码库中的代码数据进行解析,获取代码数据中的指定代码段,在获得代码数据中的指定代码段之后,可以从指定代码段中提取到第二接口信息和第二参数信息。
需要说明的是,解析工具是指可以对目标代码库中的代码数据进行解析的工具,解析工具包括但不限于CheckStyle、PMD、FindBugs等等,第二接口信息包括但不限于指定代码段对应的接口名、接口的请求类型,具体根据实际情况进行选择,本说明书实施例对此不做任何限定。
示例地,获取目标代码库的代码库地址信息为“git@xxx.com/test.git”,根据该目标代码库的代码库地址信息,获取到目标代码库中的代码数据,对代码数据进行解析,获得代码数据中的指定代码段为如下所示的代码:
@Controller
public class Controller {
@RequestMapping(value = "/query", method = RequestMethod.POST)
@ResponseBody
public Object vulsub(@RequestParam("dataid") String dataid, @RequestParam("roleid") String roleid) throws IOException {
if (roleid){
query(roleid,dataid)
}else{
#先从登录态中获取roleid,再查询对应用户的数据
}
}
其中,“@Controller”:表明这个类是一个控制器类。“public class”用于定义类,其类名称必须与文件名称完全一致,上述代码中的文件名即为“Controller”。
“@RequestMapping”:可以为控制器指定处理请求哪些URL请求,提供的映射信息确定请求所对应的处理方法。“@RequestMapping”可以定义在类或方法上。需要说明的是,“@RequestMapping”除了可以使用请求 URL 映射请求外,还可以使用请求方法、请求参数及请求头映射请求。
定义在类上:提供初步的请求映射信息。相对于 WEB 应用的根目录。
定义在方法上:提供进一步的细分映射信息。相对于类定义处的URL。若类定义处未标注“@RequestMapping”,则方法处标记的 URL 相对于WEB 应用的根目录。
“value”:指定请求的实际地址,指定的地址可以是URI Template 模式。需要说明的是,value的uri值可以为以下三类:第一类,可以指定为普通的具体值;第二类:可以指定为含有某变量的一类值;第三类:可以指定为含正则表达式的一类值。
“method”:指定请求的method类型,如 GET、POST、PUT、DELETE等,“RequestMethod.POST”用于将 HTTP post 请求映射到特定处理程序的方法注解。
“@ResponseBody”的作用其实是将java对象转为json格式的数据,“@ResponseBody”注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据。
“@RequestParam”用于将请求参数区数据映射到功能处理方法的参数上。
对上述指定代码段进行分析,获得指定代码段对应的第二接口名为“/query”,该接口的请求类型为“post”,指定代码段对应的第二参数信息为[“dataid,roleid”],将获得的代码库地址信息、第二接口信息和第二参数信息存储至第二数据表中,构建得到第二数据表如下表2所示:
表2
代码库地址(Repo) | 第二接口名(Controler) | 第二参数(Param) | 第二接口的请求类型(Httpmethod) |
git@xxx.com/test.git | /query | [“dataid,roleid”] | post |
应用本说明书实施例的方案,通过获取目标代码库的代码库地址信息,根据代码库地址信息,提取目标代码库中的代码数据,对代码数据进行解析,获得代码数据中的指定代码段,提取指定代码段对应的第二接口信息和第二参数信息,将代码库地址信息、第二接口信息和第二参数信息存储至第二数据表中,准确确定了目标代码库,进一步提高了获取到代码库地址信息、第二接口信息和第二参数信息的准确性。
步骤104:根据目标网页和目标代码库的对应关系,基于第一数据表和第二数据表,生成目标数据表。
具体地,为了增大漏洞扫描范围,提高漏洞扫描结果的准确性,本说明书实施例中,在获取目标网页的页面数据,根据页面数据构建第一数据表,并从目标代码库中获取代码数据,根据代码数据构建第二数据表之后,还可以根据目标网页和目标代码库的对应关系,基于第一数据表和第二数据表,生成目标数据表。
需要说明的是,目标网页和目标代码库的对应关系可以根据第一数据表和第二数据表中各信息进行确定,例如,对应关系可以根据第一数据表的接口信息和第二数据表中的接口信息确定,也可以根据其他有对应关系的参数进行确定,具体根据实际情况进行选择,本说明书实施例中对此不做任何限定。
在一种可选的实施方式中,第一数据表中记录有第一接口信息,第二数据表中记录有第二接口信息,可以判断第一接口信息和第二接口信息是否相同,若第一接口信息和第二接口信息相同,则表示第一数据表对应的目标网页和第二数据表对应的目标数据库之间是对应的,可以基于第一数据表和第二数据表,生成目标数据表。也即,上述根据目标网页和目标代码库的对应关系,基于第一数据表和第二数据表,生成目标数据表的步骤,可以包括如下步骤:
对比第一接口信息和第二接口信息,在第一接口信息和第二接口信息相同的情况下,合并第一数据表和所第二数据表,生成目标数据表。
具体地,第一接口信息包括但不限于目标网页的接口名、接口的请求类型,第二接口信息包括但不限于指定代码段对应的接口名、接口的请求类型,具体根据实际情况进行选择,本说明书实施例对此不做任何限定。
示例地,对页面数据进行分析,获得页面数据的第一接口名为“/query”,该接口的请求类型为“post”,页面数据的第一参数信息为“dataid”,将获得的域名信息、第一接口信息和第一参数信息存储至第一数据表中,构建得到第一数据表如下表3所示:
表3
域名(Domain) | 第一接口名(Uri) | 第一参数(Param) | 第一接口的请求类型(Httpmethod) |
www.test.com | /query | dataid | post |
对上述指定代码段进行分析,获得指定代码段对应的第二接口名为“/query”,该接口的请求类型为“post”,指定代码段对应的第二参数信息为[“dataid,roleid”],将获得的代码库地址信息、第二接口信息和第二参数信息存储至第二数据表中,构建得到第二数据表如下表4所示:
表4
代码库地址(Repo) | 第二接口名(Controler) | 第二参数(Param) | 第二接口的请求类型(Httpmethod) |
git@xxx.com/test.git | /query | [“dataid,roleid”] | post |
由于第一数据表中的第一接口名为“/query”,第二数据表中的第二接口名为“/query”,对比可见,第一数据表中的第一接口名与第二数据表中的第二接口名相同,此时,合并第一数据表和第二数据表,生成目标数据表如下表5所示:
表5
域名(Domain) | 代码库地址(Repo) | 接口名(Uri) | 参数(Param) | 接口的请求类型(Httpmethod) |
www.test.com | git@xxx.com/test.git | /query、/query | Dataid、[“dataid,roleid”] | post、post |
应用本说明书实施例的方案,通过获取目标网页的域名信息,根据域名信息,利用预设工具获取目标网页的页面数据,并对页面数据进行分析,获得页面数据的第一接口信息和第一参数信息,将域名信息、第一接口信息和第一参数信息存储至第一数据表中,获取目标代码库的代码库地址信息,根据代码库地址信息,提取目标代码库中的代码数据,对代码数据进行解析,获得代码数据中的指定代码段,提取指定代码段对应的第二接口信息和第二参数信息,将代码库地址信息、第二接口信息和第二参数信息存储至第二数据表中,对比第一接口信息和第二接口信息,在第一接口信息和第二接口信息相同的情况下,合并第一数据表和第二数据表,生成目标数据表,准确生成目标数据表,覆盖了页面数据和代码数据的所有参数,增大了漏洞扫描范围、进一步提高了漏洞扫描结果的准确性。
实际应用中,存在第一接口信息和第二接口信息并不相同的情况,在这种情况下,可以返回重新获取目标网页的页面数据,根据页面数据构建第一数据表,并从目标代码库中获取代码数据,根据代码数据构建第二数据表,对比第一接口信息和第二接口信息是否相同。
示例地,对获取到的页面数据进行分析,获得页面数据的接口名为“/query”,该接口的请求类型为“post”,页面数据的参数信息为“dataid”,将获得的域名信息、第一接口信息和第一参数信息存储至第一数据表中,构建得到第三数据表如下表6所示:
表6
域名(Domain) | 接口名(Uri) | 参数(Param) | 接口的请求类型(Httpmethod) |
www.test.com | interface_name | dataid | get |
对获取到的指定代码段进行分析,获得指定代码段对应的接口名为“/query”,该接口的请求类型为“post”,指定代码段对应的参数信息为[“dataid,roleid”],将获得的代码库地址信息、接口信息和参数信息存储至第二数据表中,构建得到第四数据表如下表7所示:
表7
代码库地址(Repo) | 接口名(Controler) | 参数(Param) | 接口的请求类型(Httpmethod) |
git@xxx.com/test.git | /query | [“dataid,roleid”] | post |
由于第三数据表中接口名为“interface_name”,第四数据表中的接口名为“/query”,对比可见,第三数据表中的接口名与第四数据表中的接口名并不相同,返回重新获取目标网页的页面数据,根据页面数据构建第三数据表,并从目标代码库中获取代码数据,根据代码数据构建第四数据表。
应用本说明书实施例的方案,在对比第一接口信息和第二接口信息,在第一接口信息和第二接口信息并不相同的情况下,重新获取目标网页的页面数据,根据页面数据构建第一数据表,并从目标代码库中获取代码数据,根据代码数据构建第二数据表,进一步提高了漏洞扫描的准确性。
在另一种可选的实施方式中,合并第一数据表和第二数据表,获得目标数据表中存在重复出现的参数,对目标数据表中的各参数进行处理时,需要对重复出现的参数进行多次处理,浪费资源,极大的影响了漏洞扫描的效率,因此,可以对第一数据表和第二数据表取并集,生成目标数据表,也即上述合并第一数据表和第二数据表,生成目标数据表的步骤,可以包括如下步骤:
对第一数据表和第二数据表取并集,生成目标数据表。
具体地,取并集是指将给定的两个集合A,B,把他们所有的元素合并在一起组成的集合,叫做集合A与集合B的并集,记作A∪B。例如,集合{1, 2, 3} 和 {2, 3, 4} 的并集是{1, 2, 3, 4}。
示例地,引用上述第一数据表和第二数据表,对第一数据表和第二数据表取并集,生成目标数据表可以如下表8所示:
表8
域名(Domain) | 代码库地址(Repo) | Url(统一资源定位地址) | 参数(Param) | 接口的请求类型(Httpmethod) |
www.test.com | git@xxx.com/test.git | http://www.test.com/query | ["dataid","roleid"] | post |
应用本说明书实施例的方案,对第一数据表和第二数据表取并集,生成目标数据表,避免对重复出现的参数进行多次处理,进一步提高了漏洞扫描的效率。
步骤106:对目标数据表进行漏洞扫描,获得漏洞扫描结果。
具体地,在获取目标网页的页面数据,根据页面数据构建第一数据表,并从目标代码库中获取代码数据,根据代码数据构建第二数据表,根据目标网页和目标代码库的对应关系,基于第一数据表和第二数据表,生成目标数据表之后,进一步地,对目标数据表进行漏洞扫描,获得漏洞扫描结果。
需要说明的是,漏洞扫描结果是指目标数据表中是否存在漏洞的结果,获得漏洞扫描结果后,可以根据该漏洞扫描结果,对目标网页的页面数据和目标代码库中的代码数据进行修补,保证信息安全,进一步使工作顺利开展。
应用本说明书实施例的方案,获取目标网页的页面数据,根据页面数据构建第一数据表,并从目标代码库中获取代码数据,根据代码数据构建第二数据表,根据目标网页和目标代码库的对应关系,基于第一数据表和第二数据表,生成目标数据表,对目标数据表进行漏洞扫描,获得漏洞扫描结果。通过根据目标网页的页面数据构建第一数据表,根据目标代码库中的代码数据构建第二数据表,基于第一数据表和第二数据表,生成目标数据表,覆盖了页面数据和代码数据的所有参数,增大了漏洞扫描范围、进一步提高了漏洞扫描结果的准确性。
在一种可选的实施方式中,获得目标数据表之后,可以基于目标数据表,生成扫描请求,将该扫描请求发送至模拟运行端,接收模拟运行端反馈的运行结果,进一步确定漏洞扫描结果,也即,上述对目标数据表进行漏洞扫描,获得漏洞扫描结果的步骤,可以包括以下步骤:
根据目标数据表中记录的各信息,生成扫描请求;
将扫描请求发送至模拟运行端,以使模拟运行端基于扫描请求进行模拟运行;
接收模拟运行端反馈的运行结果,根据运行结果确定漏洞扫描结果。
具体地,模拟运行端是指可以对扫描请求进行模拟运行的终端,也即执行漏洞扫描的设备,服务器获取到进行漏洞扫描所需的各种信息后,可以将该信息发送给模拟运行端,模拟运行端基于服务器获取到的各种信息运行漏洞扫描过程,并将运行结果反馈给服务器,服务器可以接收模拟运行端反馈的运行结果,根据运行结果确定漏洞扫描结果。目标数据表中记录的各信息包括但不限于域名信息、代码库地址信息、统一资源定位地址信息、参数信息等等,具体根据实际情况进行选择,本说明书实施例对此不做任何限定。扫描请求是根据目标数据表中的各信息生成的,该扫描请求中可以包括漏洞检测任务、漏洞类型、漏洞存在的位置等等,具体根据实际情况进行选择,本说明书实施例对此不做任何限定。
示例地,目标数据表如上述表8所示,根据上述表8中的url和参数信息生成扫描请求,将生成的扫描请求发送给模拟运行端,模拟运行端在接收到该扫描请求之后,可以对该扫描请求进行解析,进一步对该模拟请求进行模拟运行,生成并反馈模拟运行结果,基于运行结果确定漏洞扫描的结果。
应用本说明书实施例的方案,通过获取目标网页的域名信息,根据域名信息,利用预设工具获取目标网页的页面数据,并对页面数据进行分析,获得页面数据的第一接口信息和第一参数信息,将域名信息、第一接口信息和第一参数信息存储至第一数据表中,获取目标代码库的代码库地址信息,根据代码库地址信息,提取目标代码库中的代码数据,对代码数据进行解析,获得代码数据中的指定代码段,提取指定代码段对应的第二接口信息和第二参数信息,将代码库地址信息、第二接口信息和第二参数信息存储至第二数据表中,对比第一接口信息和第二接口信息,在第一接口信息和第二接口信息相同的情况下,合并第一数据表和所第二数据表,生成目标数据表,根据目标数据表中记录的各信息,生成扫描请求,将扫描请求发送至模拟运行端,以使模拟运行端基于扫描请求进行模拟运行,接收模拟运行端反馈的运行结果,根据运行结果确定漏洞扫描结果。实现了覆盖页面数据和代码数据的所有参数,增大了漏洞扫描范围、进一步提高了漏洞扫描结果的准确性。
需要说明的是,本说明书提供的漏洞扫描方法,应用于多种场景下的漏洞扫描过程,如监管场景、交易场景,当然还可以应用于其他场景下,本说明书中对漏洞扫描方法的应用场景不进行限定。
需要说明的是,在交易场景中,存在偶然的或者恶意的原因使得交易页面遭受到破坏、更改、泄露,导致交易系统不能连续可靠正常地运行,网络服务中断,影响了交易过程的安全性,进一步降低了用户的信任度。为了维护网络安全,保证交易系统连续可靠正常地运行,因此,需要对交易场景中存在的漏洞进行扫描,获取漏洞扫描结果,支撑漏洞评估、漏洞修补、风险评估相关工作,以降低交易系统安全性的风险。
实际应用中,对交易页面进行漏洞扫描时,可以获取该交易页面上所有的地址信息和参数信息,逐个替换各参数,进行漏洞扫描。但是这种漏洞扫描方法,扫描范围小,导致漏洞扫描结果不准确,为网络安全工作带来了些许障碍。
下述结合附图2,以本说明书提供的漏洞扫描方法在交易场景的应用为例,对所述漏洞扫描方法进行进一步说明。其中,图2示出了本说明书一个实施例提供的另一种漏洞扫描方法的处理过程流程图,具体包括以下步骤:
步骤202:获取交易网页的域名信息。
步骤204:根据域名信息,利用预设工具获取交易网页的页面数据,并对页面数据进行分析,获得页面数据的第一接口信息和第一参数信息。
步骤206:将域名信息、第一接口信息和第一参数信息存储至第一数据表中。
具体地,交易网页的域名信息是指交易网页的地址信息,一个域名信息对应于一个IP地址,在获取域名信息的情况下,根据域名信息,可以查找到该域名信息对应的交易网页。利用预设工具对该交易网页的页面数据进行获取,获取到交易页面的页面数据后,对页面数据进行分析,从页面数据中可以提取到第一接口信息和第一参数信息。
需要说明的是,预设工具包括但不限于Import.io、Parsehub、 Web Scraper等等,第一接口信息包括但不限于交易网页的接口名、接口的请求类型,具体根据实际情况进行选择,本说明书实施例对此不做任何限定。
本说明书实施例中,可以准确确定交易网页,进一步提高了获取到域名信息、第一接口信息和第一参数信息的准确性。
步骤208:获取交易代码库的代码库地址信息。
步骤210:根据代码库地址信息,提取交易代码库中的代码数据,对代码数据进行解析,获得代码数据中的指定代码段。
步骤212:提取指定代码段对应的第二接口信息和第二参数信息。
步骤214:将代码库地址信息、第二接口信息和第二参数信息存储至第二数据表中。
具体地,代码库地址信息是指交易代码库的地址信息,在获取交易代码库的代码库地址信息的情况下,根据交易代码库的代码库地址信息,可以确定出该代码库地址信息对应的交易代码库,提取交易代码库中的代码数据,利用预设解析工具对该交易代码库中的代码数据进行解析,获取代码数据中的指定代码段,在获得代码数据中的指定代码段之后,可以从指定代码段中提取到第二接口信息和第二参数信息。
需要说明的是,预设解析工具包括但不限于CheckStyle、PMD、FindBugs等等,第二接口信息包括但不限于指定代码段对应的接口名、接口的请求类型,具体根据实际情况进行选择,本说明书实施例对此不做任何限定。
本说明书实施例中,可以准确确定交易代码库,进一步提高了获取到代码库地址信息、第二接口信息和第二参数信息的准确性。
步骤216:对比第一接口信息和第二接口信息,在第一接口信息和第二接口信息相同的情况下,合并第一数据表和所第二数据表,生成目标数据表。
具体地,第一数据表中记录有第一接口信息,第二数据表中记录有第二接口信息,第一接口信息包括但不限于交易网页的接口名、接口的请求类型,第二接口信息包括但不限于指定代码段对应的接口名、接口的请求类型,具体根据实际情况进行选择,本说明书实施例对此不做任何限定。
本说明书实施例中,在第一接口信息和第二接口信息相同的情况下,合并第一数据表和所第二数据表,生成目标数据表,实现了覆盖交易页面数据和交易代码数据的所有参数,增大了漏洞扫描范围、进一步提高了交易场景中漏洞扫描结果的准确性。
值得说明的是,合并第一数据表和第二数据表,获得目标数据表中可能会存在重复出现的参数,对目标数据表中的各参数进行处理时,需要对重复出现的参数进行多次处理,浪费资源,极大的影响了漏洞扫描的效率,因此,可以对第一数据表和第二数据表取并集,生成目标数据表,进一步提高漏洞扫描的效率。
步骤218:根据目标数据表中记录的各信息,生成扫描请求。
步骤220:将扫描请求发送至模拟运行端,以使模拟运行端基于扫描请求进行模拟运行。
步骤222:接收模拟运行端反馈的运行结果,根据运行结果确定漏洞扫描结果。
具体地,目标数据表中记录的各信息包括但不限于域名信息、代码库地址信息、统一资源定位地址信息、参数信息等等,具体根据实际情况进行选择,本说明书实施例对此不做任何限定。扫描请求是根据目标数据表中的各信息生成的,该扫描请求中可以包括漏洞检测任务、漏洞类型、漏洞存在的位置等等,具体根据实际情况进行选择,本说明书实施例对此不做任何限定。
本说明书提供了一种漏洞扫描方法,应用于交易机构,通过获取交易网页的域名信息,根据域名信息,利用预设工具获取交易网页的页面数据,并对页面数据进行分析,获得页面数据的第一接口信息和第一参数信息,将域名信息、第一接口信息和第一参数信息存储至第一数据表中,获取交易代码库的代码库地址信息,根据代码库地址信息,提取交易代码库中的代码数据,对代码数据进行解析,获得代码数据中的指定代码段,提取指定代码段对应的第二接口信息和第二参数信息,将代码库地址信息、第二接口信息和第二参数信息存储至第二数据表中,对比第一接口信息和第二接口信息,在第一接口信息和第二接口信息相同的情况下,合并第一数据表和所第二数据表,生成目标数据表,根据目标数据表中记录的各信息,生成扫描请求,将扫描请求发送至模拟运行端,以使模拟运行端基于扫描请求进行模拟运行,接收模拟运行端反馈的运行结果,根据运行结果确定漏洞扫描结果。实现了覆盖交易页面数据和交易代码数据的所有参数,增大了漏洞扫描范围、进一步提高了交易场景中漏洞扫描结果的准确性,保证交易系统连续可靠正常地运行,降低交易系统安全性的风险。
与上述方法实施例相对应,本说明书还提供了漏洞扫描装置实施例,图3示出了本说明书一个实施例提供的一种漏洞扫描装置的结构示意图。如图3所示,该装置包括:
构建模块302,被配置为获取目标网页的页面数据,根据页面数据构建第一数据表,并从目标代码库中获取代码数据,根据代码数据构建第二数据表;
生成模块304,被配置为根据目标网页和目标代码库的对应关系,基于第一数据表和第二数据表,生成目标数据表;
获得模块306,被配置为对目标数据表进行漏洞扫描,获得漏洞扫描结果。
可选地,构建模块302,进一步被配置为获取目标网页的域名信息;根据域名信息,利用预设工具获取目标网页的页面数据,并对页面数据进行分析,获得页面数据的第一接口信息和第一参数信息;将域名信息、第一接口信息和第一参数信息存储至第一数据表中。
可选地,构建模块302,进一步被配置为获取目标代码库的代码库地址信息;
根据代码库地址信息,提取目标代码库中的代码数据,对代码数据进行解析,获得代码数据中的指定代码段;提取指定代码段对应的第二接口信息和第二参数信息;
将代码库地址信息、第二接口信息和第二参数信息存储至第二数据表中。
可选地,第一数据表中记录有第一接口信息,第二数据表中记录有第二接口信息;
生成模块304,进一步被配置为对比第一接口信息和第二接口信息,在第一接口信息和第二接口信息相同的情况下,合并第一数据表和所第二数据表,生成目标数据表。
可选地,生成模块304,进一步被配置为对第一数据表和第二数据表取并集,生成目标数据表。
可选地,获得模块306,进一步被配置为根据目标数据表中记录的各信息,生成扫描请求;将扫描请求发送至模拟运行端,以使模拟运行端基于扫描请求进行模拟运行;接收模拟运行端反馈的运行结果,根据运行结果确定漏洞扫描结果。
应用本说明书实施例的方案,通过获取目标网页的域名信息,根据域名信息,利用预设工具获取目标网页的页面数据,并对页面数据进行分析,获得页面数据的第一接口信息和第一参数信息,将域名信息、第一接口信息和第一参数信息存储至第一数据表中,获取目标代码库的代码库地址信息,根据代码库地址信息,提取目标代码库中的代码数据,对代码数据进行解析,获得代码数据中的指定代码段,提取指定代码段对应的第二接口信息和第二参数信息,将代码库地址信息、第二接口信息和第二参数信息存储至第二数据表中,对比第一接口信息和第二接口信息,在第一接口信息和第二接口信息相同的情况下,合并第一数据表和所第二数据表,生成目标数据表,根据目标数据表中记录的各信息,生成扫描请求,将扫描请求发送至模拟运行端,以使模拟运行端基于扫描请求进行模拟运行,接收模拟运行端反馈的运行结果,根据运行结果确定漏洞扫描结果。实现了覆盖页面数据和代码数据的所有参数,增大了漏洞扫描范围、进一步提高了漏洞扫描结果的准确性。
上述为本实施例的一种漏洞扫描装置的示意性方案。需要说明的是,该漏洞扫描装置的技术方案与上述的漏洞扫描方法的技术方案属于同一构思,漏洞扫描装置的技术方案未详细描述的细节内容,均可以参见上述漏洞扫描方法的技术方案的描述。
图4示出了本说明书一个实施例提供的一种计算设备400的结构框图。该计算设备400的部件包括但不限于存储器410和处理器420。处理器420与存储器410通过总线430相连接,数据库450用于保存数据。
计算设备400还包括接入设备440,接入设备440使得计算设备400能够经由一个或多个网络460通信。这些网络的示例包括公用交换电话网(PSTN,Public SwitchedTelephone Network)、局域网(LAN,Local Area Network)、广域网(WAN,Wide AreaNetwork)、个域网(PAN,Personal Area Network)或诸如因特网的通信网络的组合。接入设备440可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC,NetworkInterface Card))中的一个或多个,诸如IEEE802.11无线局域网(WLAN,Wireless LocalArea Networks)无线接口、全球微波互联接入(Wi-MAX,World Interoperability forMicrowave Access)接口、以太网接口、通用串行总线(USB,Universal Serial Bus)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC,Near Field Communication)接口,等等。
在本说明书的一个实施例中,计算设备400的上述部件以及图4中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图4所示的计算设备结构框图仅仅是出于示例地目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备400可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备400还可以是移动式或静止式的服务器。
其中,处理器420用于执行如下计算机可执行指令:
获取目标网页的页面数据,根据页面数据构建第一数据表,并从目标代码库中获取代码数据,根据代码数据构建第二数据表;
根据目标网页和目标代码库的对应关系,基于第一数据表和第二数据表,生成目标数据表;
对目标数据表进行漏洞扫描,获得漏洞扫描结果。
应用本说明书实施例的方案,通过获取目标网页的页面数据,根据页面数据构建第一数据表,并从目标代码库中获取代码数据,根据代码数据构建第二数据表,根据目标网页和目标代码库的对应关系,基于第一数据表和第二数据表,生成目标数据表,对目标数据表进行漏洞扫描,获得漏洞扫描结果。通过根据目标网页的页面数据构建第一数据表,根据目标代码库中的代码数据构建第二数据表,基于第一数据表和第二数据表,生成目标数据表,覆盖了页面数据和代码数据的所有参数,增大了漏洞扫描范围、进一步提高了漏洞扫描结果的准确性。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的漏洞扫描方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述漏洞扫描方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现:
获取目标网页的页面数据,根据页面数据构建第一数据表,并从目标代码库中获取代码数据,根据代码数据构建第二数据表;
根据目标网页和目标代码库的对应关系,基于第一数据表和第二数据表,生成目标数据表;
对目标数据表进行漏洞扫描,获得漏洞扫描结果。
应用本说明书实施例的方案,通过获取目标网页的页面数据,根据页面数据构建第一数据表,并从目标代码库中获取代码数据,根据代码数据构建第二数据表,根据目标网页和目标代码库的对应关系,基于第一数据表和第二数据表,生成目标数据表,对目标数据表进行漏洞扫描,获得漏洞扫描结果。通过根据目标网页的页面数据构建第一数据表,根据目标代码库中的代码数据构建第二数据表,基于第一数据表和第二数据表,生成目标数据表,覆盖了页面数据和代码数据的所有参数,增大了漏洞扫描范围、进一步提高了漏洞扫描结果的准确性。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的漏洞扫描方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述漏洞扫描方法的技术方案的描述。
本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行以下步骤:
获取目标网页的页面数据,根据页面数据构建第一数据表,并从目标代码库中获取代码数据,根据代码数据构建第二数据表;
根据目标网页和目标代码库的对应关系,基于第一数据表和第二数据表,生成目标数据表;
对目标数据表进行漏洞扫描,获得漏洞扫描结果。
应用本说明书实施例的方案,通过获取目标网页的页面数据,根据页面数据构建第一数据表,并从目标代码库中获取代码数据,根据代码数据构建第二数据表,根据目标网页和目标代码库的对应关系,基于第一数据表和第二数据表,生成目标数据表,对目标数据表进行漏洞扫描,获得漏洞扫描结果。通过根据目标网页的页面数据构建第一数据表,根据目标代码库中的代码数据构建第二数据表,基于第一数据表和第二数据表,生成目标数据表,覆盖了页面数据和代码数据的所有参数,增大了漏洞扫描范围、进一步提高了漏洞扫描结果的准确性。
上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的漏洞扫描方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述漏洞扫描方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
Claims (10)
1.一种漏洞扫描方法,包括:
获取目标网页的页面数据,根据所述页面数据构建第一数据表,并从目标代码库中获取代码数据,根据所述代码数据构建第二数据表;
根据所述目标网页和所述目标代码库的对应关系,基于所述第一数据表和所述第二数据表,生成目标数据表;
对所述目标数据表进行漏洞扫描,获得漏洞扫描结果。
2.根据权利要求1所述的方法,所述获取目标网页的页面数据,根据所述页面数据构建第一数据表的步骤,包括:
获取目标网页的域名信息;
根据所述域名信息,利用预设工具获取所述目标网页的页面数据,并对所述页面数据进行分析,获得所述页面数据的第一接口信息和第一参数信息;
将所述域名信息、所述第一接口信息和所述第一参数信息存储至第一数据表中。
3.根据权利要求1所述的方法,所述从目标代码库中获取代码数据,根据所述代码数据构建第二数据表的步骤,包括:
获取目标代码库的代码库地址信息;
根据所述代码库地址信息,提取所述目标代码库中的代码数据,对所述代码数据进行解析,获得所述代码数据中的指定代码段;
提取所述指定代码段对应的第二接口信息和第二参数信息;
将所述代码库地址信息、所述第二接口信息和所述第二参数信息存储至第二数据表中。
4.根据权利要求1-3任一项所述的方法,所述第一数据表中记录有第一接口信息,所述第二数据表中记录有第二接口信息;
所述根据所述目标网页和所述目标代码库的对应关系,基于所述第一数据表和所述第二数据表,生成目标数据表的步骤,包括:
对比所述第一接口信息和所述第二接口信息,在所述第一接口信息和所述第二接口信息相同的情况下,合并所述第一数据表和所述第二数据表,生成目标数据表。
5.根据权利要求4所述的方法,所述合并所述第一数据表和所述第二数据表,生成目标数据表的步骤,包括:
对所述第一数据表和所述第二数据表取并集,生成目标数据表。
6.根据权利要求1所述的方法,所述对所述目标数据表进行漏洞扫描,获得漏洞扫描结果的步骤,包括:
根据所述目标数据表中记录的各信息,生成扫描请求;
将所述扫描请求发送至模拟运行端,以使所述模拟运行端基于所述扫描请求进行模拟运行;
接收所述模拟运行端反馈的运行结果,根据所述运行结果确定漏洞扫描结果。
7.一种漏洞扫描装置,包括:
构建模块,被配置为获取目标网页的页面数据,根据所述页面数据构建第一数据表,并从目标代码库中获取代码数据,根据所述代码数据构建第二数据表;
生成模块,被配置为根据所述目标网页和所述目标代码库的对应关系,基于所述第一数据表和所述第二数据表,生成目标数据表;
获得模块,被配置为对所述目标数据表进行漏洞扫描,获得漏洞扫描结果。
8.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至6任意一项所述漏洞扫描方法的步骤。
9.一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至6任意一项所述漏洞扫描方法的步骤。
10.一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行权利要求1至6任意一项所述漏洞扫描方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210214626.7A CN114338240B (zh) | 2022-03-07 | 2022-03-07 | 漏洞扫描方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210214626.7A CN114338240B (zh) | 2022-03-07 | 2022-03-07 | 漏洞扫描方法以及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114338240A true CN114338240A (zh) | 2022-04-12 |
CN114338240B CN114338240B (zh) | 2022-08-26 |
Family
ID=81031192
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210214626.7A Active CN114338240B (zh) | 2022-03-07 | 2022-03-07 | 漏洞扫描方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114338240B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104363236A (zh) * | 2014-11-21 | 2015-02-18 | 西安邮电大学 | 一种自动化漏洞验证的方法 |
CN104951700A (zh) * | 2014-10-11 | 2015-09-30 | 腾讯科技(深圳)有限公司 | 网页漏洞检测方法和装置 |
US20160065613A1 (en) * | 2014-09-02 | 2016-03-03 | Sk Infosec Co., Ltd. | System and method for detecting malicious code based on web |
CN107332804A (zh) * | 2016-04-29 | 2017-11-07 | 阿里巴巴集团控股有限公司 | 网页漏洞的检测方法及装置 |
CN107832622A (zh) * | 2017-12-08 | 2018-03-23 | 平安科技(深圳)有限公司 | 漏洞检测方法、装置、计算机设备及存储介质 |
CN107896219A (zh) * | 2017-11-29 | 2018-04-10 | 深信服科技股份有限公司 | 一种网站脆弱性的检测方法、系统及相关装置 |
CN108664793A (zh) * | 2017-03-30 | 2018-10-16 | 腾讯科技(深圳)有限公司 | 一种检测漏洞的方法和装置 |
CN110765464A (zh) * | 2019-10-30 | 2020-02-07 | 深圳前海微众银行股份有限公司 | 漏洞检测方法、装置、设备及计算机存储介质 |
US20210099483A1 (en) * | 2019-07-17 | 2021-04-01 | Jayant Shukla | Runtime detection of injection attacks on web applications via static and dynamic analysis |
CN113392404A (zh) * | 2021-06-15 | 2021-09-14 | 浙江网商银行股份有限公司 | 漏洞检测方法、装置及电子设备 |
CN113434217A (zh) * | 2021-06-30 | 2021-09-24 | 平安科技(深圳)有限公司 | 漏洞扫描方法、装置、计算机设备及介质 |
CN114143074A (zh) * | 2021-11-29 | 2022-03-04 | 杭州迪普科技股份有限公司 | webshell攻击识别装置及方法 |
-
2022
- 2022-03-07 CN CN202210214626.7A patent/CN114338240B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160065613A1 (en) * | 2014-09-02 | 2016-03-03 | Sk Infosec Co., Ltd. | System and method for detecting malicious code based on web |
CN104951700A (zh) * | 2014-10-11 | 2015-09-30 | 腾讯科技(深圳)有限公司 | 网页漏洞检测方法和装置 |
CN104363236A (zh) * | 2014-11-21 | 2015-02-18 | 西安邮电大学 | 一种自动化漏洞验证的方法 |
CN107332804A (zh) * | 2016-04-29 | 2017-11-07 | 阿里巴巴集团控股有限公司 | 网页漏洞的检测方法及装置 |
CN108664793A (zh) * | 2017-03-30 | 2018-10-16 | 腾讯科技(深圳)有限公司 | 一种检测漏洞的方法和装置 |
CN107896219A (zh) * | 2017-11-29 | 2018-04-10 | 深信服科技股份有限公司 | 一种网站脆弱性的检测方法、系统及相关装置 |
CN107832622A (zh) * | 2017-12-08 | 2018-03-23 | 平安科技(深圳)有限公司 | 漏洞检测方法、装置、计算机设备及存储介质 |
US20210099483A1 (en) * | 2019-07-17 | 2021-04-01 | Jayant Shukla | Runtime detection of injection attacks on web applications via static and dynamic analysis |
CN110765464A (zh) * | 2019-10-30 | 2020-02-07 | 深圳前海微众银行股份有限公司 | 漏洞检测方法、装置、设备及计算机存储介质 |
CN113392404A (zh) * | 2021-06-15 | 2021-09-14 | 浙江网商银行股份有限公司 | 漏洞检测方法、装置及电子设备 |
CN113434217A (zh) * | 2021-06-30 | 2021-09-24 | 平安科技(深圳)有限公司 | 漏洞扫描方法、装置、计算机设备及介质 |
CN114143074A (zh) * | 2021-11-29 | 2022-03-04 | 杭州迪普科技股份有限公司 | webshell攻击识别装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114338240B (zh) | 2022-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107622135B (zh) | 用于显示信息的方法和装置 | |
CN112202598B (zh) | 一种日志记录方法及装置 | |
US20220035661A1 (en) | Task generation | |
WO2021093673A1 (zh) | 邮件发送方法、装置、设备及计算机可读存储介质 | |
CN107368407B (zh) | 信息处理方法和装置 | |
CN111818175A (zh) | 企业服务总线配置文件生成方法、装置、设备和存储介质 | |
CN110716743A (zh) | 一种适合多方协作开发的聚合api开发方法及系统 | |
CN111783415A (zh) | 模板配置方法以及装置 | |
CN104954363A (zh) | 用于生成接口文档的方法和装置 | |
CN114443905A (zh) | 接口文档更新方法、装置、电子设备及可读存储介质 | |
CN114048169A (zh) | 文档访问方法、装置、服务器及存储介质 | |
CN112988589A (zh) | 一种接口测试方法、装置和系统 | |
CN114338240B (zh) | 漏洞扫描方法以及装置 | |
CN111324832A (zh) | 一种通过短网址访问网站的方法、系统、装置及介质 | |
CN110738024A (zh) | 将WebAPP转换为API服务接口的方法 | |
CN108737350B (zh) | 一种信息处理方法及客户端 | |
US20220035638A1 (en) | Task execution | |
CN114817794A (zh) | 网页内容控制方法、装置、设备及介质 | |
CN112632945A (zh) | 一种报表构建方法及装置 | |
CN113297306B (zh) | 数据处理方法及装置 | |
KR101366178B1 (ko) | 웹 페이지 출력을 제어하는 방법, 단말기 및 기록매체 | |
US20220035653A1 (en) | Task integration | |
CN116974653B (zh) | 类加载方法及系统 | |
CN118157910B (zh) | 用于测试的钓鱼邮件的生成方法和装置、设备及介质 | |
CN113138912B (zh) | 一种接口测试方法和系统、客户端和服务端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |