CN115378655A - 漏洞检测方法及装置 - Google Patents
漏洞检测方法及装置 Download PDFInfo
- Publication number
- CN115378655A CN115378655A CN202210883907.1A CN202210883907A CN115378655A CN 115378655 A CN115378655 A CN 115378655A CN 202210883907 A CN202210883907 A CN 202210883907A CN 115378655 A CN115378655 A CN 115378655A
- Authority
- CN
- China
- Prior art keywords
- target
- request
- response
- target test
- vulnerability
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例提供了一种漏洞检测方法及装置,所述方法包括:获取数据处理平台的流量;从所述流量中确定目标原始请求;根据所述目标原始请求生成多个待漏洞测试的目标测试请求;获取所述目标测试请求分别对应的响应内容;当所述目标测试请求对应的响应内容相同时,确定所述数据处理平台存在漏洞。在本发明实施例中,基于应用程序的流量的原始请求自动生成对应的多个待漏洞检测的目标测试请求,进而可以基于多个目标测试请求的响应包来进行确定是否存在漏洞,由于无需通过人工检测的方式进行漏洞检测,因此提高漏洞检测的检测效率,降低漏洞检测的检测成本。
Description
技术领域
本发明实施例涉及信息安全技术领域,特别是涉及一种漏洞检测方法、一种漏洞检测装置、一种电子设备以及一种计算机可读存储介质。
背景技术
信息安全,ISO(国际标准化组织)的定义为:为数据处理平台建立和采用的技术、管理上的安全保护,为的是保护计算机硬件、软件、数据不因偶然和恶意的原因而遭到破坏、更改和泄露。其中漏洞检测是信息安全的重要部分。
目前漏洞检测可以通过人工检测的方式实现,然而,人工检测虽然能够检测出大部分的漏洞,但是人工检测的方式相对耗时,不仅检测效率低,并且需要耗费的检测成本也相对较高。
发明内容
本发明实施例的目的在于提供一种漏洞检测方法、一种漏洞检测装置、一种电子设备以及一种计算机可读存储介质,以提高漏洞检测的检测效率,降低漏洞检测的检测成本。具体技术方案如下:
在本发明实施的第一方面,首先提供了一种漏洞检测方法,包括:
获取数据处理平台的流量;
从所述流量中确定目标原始请求;
根据所述目标原始请求生成多个待漏洞测试的目标测试请求;
获取所述目标测试请求分别对应的响应内容;
当所述目标测试请求对应的响应内容相同时,确定所述数据处理平台存在漏洞。
可选地,所述从所述流量中确定目标原始请求,包括:
对所述流量进行解析得到原始请求;
将满足预设条件的原始请求,确定为目标原始请求;
其中,所述预设条件包括所述原始请求是动态请求。
可选地,所述根据所述目标原始请求生成多个待漏洞测试的目标测试请求,包括:
将所述目标原始请求中的指定字段对应的字段参数替换为预设目标替换参数,得到测试请求;所述指定字段的字段参数和所述预设目标替换参数与不同漏洞类型的漏洞相对应;
将所述原始请求和所述测试请求作为目标测试请求。
可选地,所述指定字段包括认证字段,将所述目标原始请求中的指定字段对应的参数替换为指定参数,得到测试请求,包括:
将所述目标原始请求中的认证字段对应的参数替换为目标认证参数,和/或将所述标原始请求中的认证字段对应的参数替换为空值,得到测试请求。
可选地,所述方法还包括:
当所述目标测试请求对应的响应内容不相同时,确定所述数据处理平台不存在漏洞。
可选地,通过如下方式判定所述目标测试请求对应的响应内容是否相同:
当所述目标测试请求对应的响应内容为空值,所述目标测试请求对应的响应内容中的响应状态码不相同,或者,所述目标测试请求对应的响应内容中的响应内容长度不相同时,确定所述目标测试请求对应的响应内容不相同;
当所述目标测试请求对应的响应内容不为空值,所述目标测试请求对应的响应内容中的响应状态码相同,且,所述目标测试请求对应的响应内容中的响应内容长度相同时,若所述响应内容中的字段对应的字段参数相同,则确定所述目标测试请求对应的响应内容相同。
可选地,在所述若所述响应内容中的字段对应的字段参数相同,则确定所述目标测试请求对应的响应内容相同之前,所述方法还包括:
移除所述响应内容中的指定无意义字段和对应的字段参数。
在本发明实施的第二方面,还提供了一种漏洞检测装置,包括:
流量获取模块,用于获取数据处理平台的流量;
目标原始请求确定模块,用于从所述流量中确定目标原始请求;
目标测试请求生成模块,用于根据所述目标原始请求生成多个待漏洞测试的目标测试请求;
响应内容获取模块,用于获取所述目标测试请求分别对应的响应内容;
漏洞检测模块,用于当所述目标测试请求对应的响应内容相同时,确定所述数据处理平台存在漏洞。
可选地,所述目标原始请求确定模块,用于对所述流量进行解析得到原始请求;将满足预设条件的原始请求,确定为目标原始请求;其中,所述预设条件包括所述原始请求是动态请求。
可选地,所述目标测试请求生成模块,用于将所述目标原始请求中的指定字段对应的字段参数替换为预设目标替换参数,得到测试请求;所述指定字段的字段参数和所述预设目标替换参数与不同漏洞类型的漏洞相对应;将所述原始请求和所述测试请求作为目标测试请求。
可选地,所述指定字段包括认证字段,将所述目标测试请求生成模块,用于将所述目标原始请求中的认证字段对应的参数替换为目标认证参数,和/或将所述标原始请求中的认证字段对应的参数替换为空值,得到测试请求。
可选地,所述漏洞检测模块,用于当所述目标测试请求对应的响应内容不相同时,确定所述数据处理平台不存在漏洞。
可选地,漏洞检测模块,用于当所述目标测试请求对应的响应内容为空值,所述目标测试请求对应的响应内容中的响应状态码不相同,或者,所述目标测试请求对应的响应内容中的响应内容长度不相同时,确定所述目标测试请求对应的响应内容不相同;当所述目标测试请求对应的响应内容不为空值,所述目标测试请求对应的响应内容中的响应状态码相同,且,所述目标测试请求对应的响应内容中的响应内容长度相同时,若所述响应内容中的字段对应的字段参数相同,则确定所述目标测试请求对应的响应内容相同。
可选地,所述漏洞检测模块,用于移除所述响应内容中的指定无意义字段和对应的字段参数。
在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的漏洞检测方法。
在本发明实施的又一方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的漏洞检测方法。
本发明实施例提供的一种漏洞检测方法,通过获取数据处理平台的流量,从流量中确定目标原始请求,以根据目标原始请求生成多个待漏洞测试的目标测试请求,然后,获取目标测试请求分别对应的响应内容,将目标测试请求对应的响应内容进行对比,从而可以根据对比结果确定是否存在漏洞。在本发明实施例中,基于应用程序的流量的原始请求自动生成对应的多个待漏洞检测的目标测试请求,进而可以基于多个目标测试请求的响应包来进行确定是否存在漏洞,由于无需通过人工检测的方式进行漏洞检测,因此提高漏洞检测的检测效率,降低漏洞检测的检测成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例中提供的一种漏洞检测方法的步骤流程图;
图2为本发明实施例中提供的一种越权漏洞检测的流程图;
图3为本发明实施例中提供的一种越权漏洞检测的步骤流程图;
图4为本发明实施例中提供的一种漏洞检测装置的结构框图;
图5为本发明实施例中提供的一种电子设备的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
参照图1,为本发明实施例中提供的一种漏洞检测方法的步骤流程图,如图1所示,该方法具体可以包括如下步骤:
步骤101,获取数据处理平台的流量。
其中,数据处理平台是待进行漏洞检测的检测对象。示例性地,数据处理平台可以是在线的视频网站。
在具体实现中,用户可以通过手机、计算机、平板电脑等终端设备中安装的客户端应用程序来访问数据处理平台,以从数据处理平台中获取到视频、图片、文本、链接等各类型的数据,具体地,可以是在数据处理平台设置拦截器获取,也可以是从数据处理平台的日志记录中获取,本发明实施例对此无需加以限制。其中,在用户访问数据处理平台的过程中,数据处理平台中产生流量,这些流量可以从数据处理平台中,或者从代理软件(例如BurpSuite)的日志中获取,然后采用镜像文件的方式保存。其中,Burp Suite是用于攻击web应用程序的集成平台,包含了许多工具。Burp Suite为这些工具设计了许多接口,以加快攻击应用程序的过程。所有工具都共享一个请求,并能处理对应的HTTP消息、持久性、认证、代理、日志、警报。
作为一个可选示例,流量可以是针对业务的流量,例如,用户登录的业务对应的流量、用户搜索视频的业务对应的流量等等,本发明实施例对此无需加以限制。
步骤102,从所述流量中确定目标原始请求。
步骤103,根据所述目标原始请求生成多个待漏洞测试的目标测试请求。
其中,流量中可以包括用户通过终端设备中安装的客户端发送的原始请求,本发明实施例可以从这些原始请求中获取一些原始请求(请求包)作为目标原始请求,然后,可以根据目标原始请求生成多个待漏洞测试的目标测试请求。
举例来说,假设基于流量确定的目标原始请求为request1,则基于request1可以生成三个对应的目标测试请求request11、request12和request13。
步骤104,获取所述目标测试请求分别对应的响应内容。
在具体实现中,在将原始请求发送至数据处理平台后,数据处理平台可以根据该原始请求反馈对应的响应内容(响应包),其中,响应内容可以包括响应状态码、响应内容长度、字段和字段对应的字段参数等等。
在本发明实施例中,在将目标原始请求对应的目标测试请求分别发送至数据处理平台后,可以接收到针对这些目标测试请求分别对应的响应内容。
举例来说,假设目标原始请求request1具有三个对应的目标测试请求request11、request12和request13,则可以获取到request11、request12和request13这三个目标测试请求分别对应的响应内容response11、response12和responset13。
步骤105当所述目标测试请求对应的响应内容相同时,确定所述数据处理平台存在漏洞。
其中,漏洞是应用程序中的一个弱点,它允许恶意方对应用程序的利益相关者(包括所有者、用户等)造成伤害。在本发明实施例中,在得到目标原始请求的多个目标测试请求对应响应内容后,可以将同一个目标原始请求的多个目标测试请求对应的响应内容进行对比,从而可以根据对比结果确定是否存在漏洞。
举例来说,假设有目标原始请求request1和request2,并且,request1具有对应的目标测试请求request11、request12和request13,request2具有对应的目标测试请求request21、request22和request23,则如果request1对应的目标测试请求request11、request12和request13的响应内容都相同,可以确定request1对应的数据处理平台存在漏洞,如果request2对应的目标测试请求request21、request22和request23的响应内容都相同,可以确定request2对应的数据处理平台存在漏洞。
在上述的漏洞检测方法中,通过获取数据处理平台的流量,从流量中确定目标原始请求,以根据目标原始请求生成多个待漏洞测试的目标测试请求,然后,获取目标测试请求分别对应的响应内容,将目标测试请求对应的响应内容进行对比,从而可以根据对比结果确定是否存在漏洞。在本发明实施例中,基于应用程序的流量的原始请求自动生成对应的多个待漏洞检测的目标测试请求,进而可以基于多个目标测试请求的响应包来进行确定是否存在漏洞,由于无需通过人工检测的方式进行漏洞检测,因此提高漏洞检测的检测效率,降低漏洞检测的检测成本。
在上述实施例的基础上,提出了上述实施例的变型实施例,在此需要说明的是,为了使描述简要,在变型实施例中仅描述与上述实施例的不同之处。
在一示例性实施例中,所述步骤102,从所述流量中确定目标原始请求,可以包括如下步骤:
对所述流量进行解析得到原始请求;
将满足预设条件的原始请求,确定为目标原始请求。
在本发明实施例中,可以对数据处理平台或者代理软件的流量进行解析,使其成为一个统一的格式,其中,统一的格式可以为XML(Extensible Markup Language,可扩展标记语言)格式,并不做具体限定。
具体地,在获取到流量后,可以确定该流量的格式是否是XML格式,若是XML格式,则可以直接解析该流量,以解析出对应的解析数据,其中解析数据可以包括原始请求(Raw_request),URL(Uniform Resource Locator,统一资源定位符)和method(方法),其中,原始请求中包括URI,URL是以key1=value1&key2=value2这样的键值对的形式组合而成的,URL中可以包括协议、域名、路径、字段(key)和字段对应的字段参数(value)。当然,若流量不是XML格式,则可以将该流量转换为XML格式后,再对该流量进行解析,以解析出对应的解析数据。
在本发明实施例中,在从流量中解析出原始请求后,由于有些原始请求并不需要用于漏洞检测,或者无法基于该原始请求实现漏洞检测,因此可以根据漏洞检测的需求设定预设条件,从这些原始请求中确定的目标原始请求,用于后续进行漏洞检测。
其中,原始请求可以包括动态请求和静态请求,具体地,动态请求所请求的内容是随机的,即可以根据不同用户发出的不同请求,其提供个性化的网页内容,而静态请求所请求的内容是固定的不变的,即不同用户发出的不同请求,会提供相同的网页内容,例如提供css/js/图片等等。
作为本发明的一种示例,所述预设条件可以包括所述原始请求是动态请求,不是仅包含指定参数或者不包含参数,包含的参数的统一资源定位符中的域名不在域名黑名单中。
在本发明实施例中,若原始请求不是动态请求(即是静态请求);或者原始请求包含参数但不是全是指定参数,例如指定参数可以是page页面参数,原始请求中除了有page页面参数,还可以有其他参数,例如认证参数等等;或者原始请求不包含参数,即没有参数;或者原始请求的统一资源定位符中的域名在域名黑名单中,即该原始请求的所请求的URL已经在域名黑名单中,数据处理平台将不会处理该请求,则可以将该原始请求确定为目标原始请求,以根据目标原始请求,生成对应的目标测试请求以进行漏洞检测。
在上述示例性实施例中,可以从流量中确定原始请求,然后在基于预设条件从原始请求中筛选出目标原始请求,通过选用合适的原始请求进行漏洞检测,可以减少不必要的漏洞检测过程,进一步提高漏洞检测效率。
在一示例性实施例中,所述步骤103,根据所述目标原始请求生成多个待漏洞测试的目标测试请求,可以包括如下步骤:
将所述目标原始请求中的指定字段对应的字段参数替换为预设目标替换参数,得到测试请求;所述指定字段的字段参数和所述预设目标替换参数与不同漏洞类型的漏洞相对应;
将所述原始请求和所述测试请求作为目标测试请求。
在本发明实施例中,可以将目标原始请求中的指定字段对应的字段参数替换为预设目标替换参数,得到多个测试请求,然后,就可以将原始请求和测试请求作为用于进行漏洞检测的目标测试请求。需要说明的是,在本发明实施例中,需要替换的指定指定的字段参数和预设目标替换参数是与不同的漏洞类型的漏洞类型相对应的,举例来说,针对越权漏洞、文件下载漏洞这两种不同的漏洞类型,分别有其对应的需要替换的指定指定的字段参数和预设目标替换参数。
在上述示例性实施例中,通过将目标原始请求中的指定字段对应的字段参数替换为目标替换参数,得到测试请求,通过对原始请求中的字段参数替换即可快速生成测试请求,可以提高整体漏洞检测的效率。
在一示例性实施例中,所述指定字段包括认证字段,将所述目标原始请求中的指定字段对应的参数替换为指定参数,得到测试请求,可以包括如下步骤:
将所述目标原始请求中的认证字段对应的参数替换为目标认证参数,和/或将所述标原始请求中的认证字段对应的参数替换为空值,得到测试请求。
在具体实现中,漏洞可以包括越权漏洞。目前随着黑盒测试的完善,漏洞经黑盒测试后,大部分的漏洞都可被检测出来,例如注入类漏洞、跨站脚本漏洞等都可以检测出来。但是越权相关的越权漏洞,这是因为越权漏洞其本身并不是代码质量问题,而是业务逻辑问题,例如,如果发送包含不同认证参数的请求A至数据处理平台,数据处理平台应该返回不同的认证结果,但是实际返回的认证结果都相同,例如均通过认证,这是不符合实际的业务逻辑,此时可以视为存在越权漏洞。一直以来都需要对业务逻辑进行理解之后,由专业的渗透测试人员进行测试后发现。可见,目前无法通过黑盒的扫描工具进行主动的探测和发现,只能通过人工检测的方式发现。因此,目前亟需解决针对业务逻辑相关的漏洞没有很好的检测方法的问题,即发现业务逻辑中的权限错误而导致的信息泄露等风险。
其中,指定字段包括认证字段,例如authcookie,基于认证字段对应的身份参数(例如用户账户、手机号、身份证号等等),可以进行身份认证。在本发明实施例中,可以通过对目标原始请求中认证字段的字段参数进行替换来得到测试请求,基于目标原始请求,以及替换了认证字段的字段参数后的测试请求,可以进行越权漏洞的检测。举例来说,将目标原始请求中的authcookie对应的参数替换为目标认证参数(例如将原来是A用户的身份信息替换为B用户的身份信息),和/或,将目标原始请求中的authcookie对应的参数替换为空值(即无参数),从而得到测试请求。
在上述示例性实施例中,通过将目标原始请求中的认证字段对应的认证字段参数替换为目标认证参数,得到测试请求,从而可以基于目标原始请求和替换认证参数后得到的测试请求,进行越权漏洞检测。
在一示例性实施例中,在所述当所述目标测试请求对应的响应内容相同时,确定所述数据处理平台存在漏洞之后,所述方法还可以包括如下步骤:
当所述目标测试请求对应的响应内容不相同时,确定所述数据处理平台不存在漏洞。
在具体实现中,可以将目标测试请求分别发送至数据处理平台,则数据处理平台将针对目标测试请求分别返回对应的响应内容,其中,由于用于生成目标测试请求的目标原始请求为动态请求,在通常情况下,不同的动态请求反馈的响应内容是不同的,因此可以根据目标测试请求对应的响应内容是否相同,来确定数据处理平台是否存在漏洞。具体地,对同一个目标原始请求对应的目标测试请求的响应内容经比对后,若响应内容不相同,则确定为不存在漏洞,若响应内容相同,则确定为存在漏洞。
举例来说,假设将目标原始请求中的认证字段替换为空值,以及替换为目标认证参数得到测试请求后,可以基于目标原始请求进行原始认证,基于将目标原始请求中的认证字段替换为空值的测试请求进行空认证,以及基于将目标原始请求中的认证字段替换为目标认证参数的测试请求进行目标认证,然后比对原始认证、空认证以及目标认证这三次请求的响应内容是否相同。具体地,如果响应内容相同,说明该目标原始请求可能存在越权漏洞,则可以将该目标原始请求判断为疑似越权漏洞,如果响应内容不相同,说明该目标原始请求不存在越权漏洞,则可以无需进行任何处理。
在上述示例性实施例中,用于生成目标测试请求的目标原始请求为动态请求,在通常情况下,不同的动态请求反馈的响应内容是不同的,因此可以根据目标测试请求对应的响应内容是否相同,来确定是否存在漏洞,实现诸如越权漏洞等其他漏洞。
在一示例性实施例中,可以通过如下方式判定所述目标测试请求对应的响应内容是否相同:
当所述目标测试请求对应的响应内容为空值,所述目标测试请求对应的响应内容中的响应状态码不相同,或者,所述目标测试请求对应的响应内容中的响应内容长度不相同时,确定所述目标测试请求对应的响应内容不相同;
当所述目标测试请求对应的响应内容不为空值,所述目标测试请求对应的响应内容中的响应状态码相同,且,所述目标测试请求对应的响应内容中的响应内容长度相同时,若所述响应内容中的字段对应的字段参数相同,则确定所述目标测试请求对应的响应内容相同。
具体地,若目标测试请求对应的响应内容为空值,例如响应内容为none或者text=“”,或者,目标测试请求对应的响应内容中的响应状态码不相同,例如一个响应状态码为460,一个响应状态码为404,一个响应状态码为500,或者,目标测试请求对应的响应内容中的响应内容长度不相同时,例如一个为100,一个为50,一个为10,由于上述情况下,响应内容不可能存在相同的情形,因此可以确定目标测试请求对应的响应内容不相同。
若目标测试请求对应的响应内容不为空值,目标测试请求对应的响应内容中的响应状态码相同,例如响应状态码均为200,并且,目标测试请求对应的响应内容中的响应内容长度相同时,例如一个为100,由于上述情况下,响应内容可能存在相同的情形,因此还需要进一步确定这些响应内容中的字段对应的字段参数是否相同,若都相同,才可以确定目标测试请求对应的响应内容相同。当然,若并非都相同,而仅仅是部分字段对应的字段参数相同,则不会确定为目标测试请求对应的响应内容相同。
在上述示例性实施例中,可以先确定响应内容是否空值、是否响应状态码相同,是否响应内容长度相同来确定响应内容相同,若不为空值,响应状态码相同、响应内容长度相同,才进一步确定响应内容中的字段和对应的字段值是否相同,可以提高比对效率。
在一示例性实施例中,在所述若所述响应内容中的字段对应的字段参数相同,则确定所述目标测试请求对应的响应内容相同之前,所述方法还可以包括如下步骤:
移除所述响应内容中的指定无意义字段和对应的字段参数。
在本发明实施例中,在对目标测试请求的响应内容进行比对之前,可以先移除响应内容中的指定无意义字段和对应的字段参数后再进行比对。
具体地,在过滤掉响应内容中无意义的字段,例如过滤掉响应内容中的jsonp、callback、timestamp这些字段,再判断剩下的响应内容,如果剩下的响应内容相同,说明该目标原始请求可能存在漏洞,则可以将该目标原始请求判断为疑似漏洞,如果剩下的响应内容不相同,说明该目标原始请求不存在漏洞,则可以无需进行任何处理。其中,指定无意义字段和对应的字段参数可以由研发人员自行设定。
在上述示例性实施例中,在在过滤掉响应内容中无意义的字段和字段参数后再对响应内容进行比对,可以减少不必要的比对内容,提高漏洞检测效率。
在一示例性实施例中,在所述将所述目标测试请求对应的响应内容进行对比,并根据对比结果确定是否存在漏洞之后,所述方法还可以包括如下步骤:
在根据对比结果确定存在漏洞时,生成漏洞结果;所述漏洞结果包括漏洞类型和对应的原始请求,所述漏洞类型包括越权漏洞;
将所述漏洞结果保存至Redis平台中,以基于所述Redis平台将所述漏洞结果分配至对应的处理对象进行处理。
其中,Redis(Remote Dictionary Server),即远程字典服务,是一个开源的、支持网络、可基于内存亦可持久化的日志型、Key(键)-Value(值)数据库,Key和Value之间是映射关系,Redis具有数据类型丰富和高性能等优点。
在本发明实施例中,在根据响应内容的对比结果确定存在漏洞时,可以生成对应的漏洞结果,并将漏洞结果保存至Redis平台中,以基于Redis平台将漏洞结果分配至对应的处理对象(例如测试人员)进行确认和修复等处理。
在一示例性实施例中,所述漏洞结果具有对应的漏洞过期时间,在所述将所述漏洞结果保存至Redis平台中,以基于所述Redis平台将所述漏洞结果分配至对应的处理对象进行处理之后,所述方法还包括:
当所述漏洞结果在所述Redis平台中保存的时间超过对应的所述漏洞过期时间时,在所述Redis平台中删除所述漏洞结果。
在具体实现中,在将漏洞结果保存到Redis平台中时,可以针对漏洞结果设置对应的漏洞过期时间,例如可以设置为24小时(h)。
在本发明实施例中,若某个漏洞结果在Redis平台中保存的时间超过对应的漏洞过期时间时,例如超过24小时,则可以在Redis平台中删除该漏洞结果,从而避免漏洞结果在Redis平台造成堆积。
综上可知,本发明实施例设计一种漏洞检测方法,从流量镜像中获取业务的测试数据,若为进行越权漏洞检测,则可以针对性的对认证字段如authcookie的值做替换。此时可以检测到同一个请求针对不同认证下的响应情况。即无认证,他人认证,自己认证,而如果这三类认证请求返回的内容均一致,那么该接口疑似存在越权问题。
在判断哪些接口需要进行越权漏洞检测,及返回值是否一致的环境,其实是有一些标准的。首先对于没有参数的原始请求,及一些静态请求比如css/js/图片等,是不需要进行判断的。而对于响应包中,关于响应码,分页,时间值相关的字段,也是需要过滤的。而如果剩下的内容类似,或者完全一致,那么就把该接口标记为一个疑似的漏洞。
为了使本领域技术人员更好地理解本发明实施例,以下采用一个具体示例进行说明。参照图2,是本发明实施例提供的一种越权漏洞检测的流程图,具体可以包括如下内容:获取流量→标准化处理→替换认证字段→漏洞判断→漏洞结果的保存与分配。示例性地,参照图3,是本发明实施例提供的一种越权漏洞检测的步骤流程图,具体可以包括如下步骤:
步骤301、输入BurpSuite日志文件;其中,BurpSuite日志文件中包括流量;
步骤302、判断BurpSuite日志文件是否是XML格式;若是,则执行步骤304,若否,则执行步骤303;
步骤303、将BurpSuite日志文件转换为XML格式;
步骤304、对XML格式的BurpSuite日志文件进行解析,得到解析数据;其中,解析数据可以包括URL、Raw_reques、method等等;
步骤305、判断是否可以测试,若是,则执行步骤306,若否,则结束;其中,判断是否可以测试的依据包括:1、静态请求、仅有page页面参数、无参数、域名黑名单等等;
步骤306、将原始请求中的认证字段,例如authcookie,替换为空,以及配置的目标认证参数;
步骤307、判断是否存在越权漏洞,具体地,分别判断原始认证,空认证,及目标认证这三次请求的响应内容;在对无意义的字段进行过滤后,判断剩下的响应内容,如果其值一致,那么该请求会的漏洞结果判定为疑似越权漏洞。
步骤308、在将漏洞结果保存到Redis平台中时,若某个漏洞结果在Redis平台中保存的时间超过24小时,则可以在Redis平台中删除该漏洞结果。
应用本发明实施例,至少具有如下优点:1、丰富了代理扫描的重要一环,增加了漏洞检测的维度;2、减少了安全人员的人力投入,将重心放到了可能存在漏洞的方向;3、更快的自动化的发现漏洞而非事后检测。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图4,为本发明实施例中提供的一种越权检测装置的结构框图,如图4所示,该装置具体可以包括如下模块:
流量获取模块401,用于获取数据处理平台的流量;
目标原始请求确定模块402,用于从所述流量中确定目标原始请求;
目标测试请求生成模块403,用于根据所述目标原始请求生成多个待漏洞测试的目标测试请求;
响应内容获取模块404,用于获取所述目标测试请求分别对应的响应内容;
漏洞检测模块405,用于当所述目标测试请求对应的响应内容相同时,确定所述数据处理平台存在漏洞。
在一示例性实施例中,所述目标原始请求确定模块402,用于对所述流量进行解析得到原始请求;将满足预设条件的原始请求,确定为目标原始请求;其中,所述预设条件包括所述原始请求是动态请求。
在一示例性实施例中,所述目标测试请求生成模块403,用于将所述目标原始请求中的指定字段对应的字段参数替换为预设目标替换参数,得到测试请求;所述指定字段的字段参数和所述预设目标替换参数与不同漏洞类型的漏洞相对应;将所述原始请求和所述测试请求作为目标测试请求。
在一示例性实施例中,所述指定字段包括认证字段,将所述目标测试请求生成模块403,用于将所述目标原始请求中的认证字段对应的参数替换为目标认证参数,和/或将所述标原始请求中的认证字段对应的参数替换为空值,得到测试请求。
在一示例性实施例中,所述漏洞检测模块405,还用于当所述目标测试请求对应的响应内容不相同时,确定所述数据处理平台不存在漏洞。
在一示例性实施例中,漏洞检测模块405,用于当所述目标测试请求对应的响应内容为空值,所述目标测试请求对应的响应内容中的响应状态码不相同,或者,所述目标测试请求对应的响应内容中的响应内容长度不相同时,确定所述目标测试请求对应的响应内容不相同;当所述目标测试请求对应的响应内容不为空值,所述目标测试请求对应的响应内容中的响应状态码相同,且,所述目标测试请求对应的响应内容中的响应内容长度相同时,若所述响应内容中的字段对应的字段参数相同,则确定所述目标测试请求对应的响应内容相同。
在一示例性实施例中,所述漏洞检测模块405,用于移除所述响应内容中的指定无意义字段和对应的字段参数。
在一示例性实施例中,所述装置还包括:漏洞结果处理模块,用于在根据对比结果确定存在漏洞时,生成漏洞结果;所述漏洞结果包括漏洞类型和对应的原始请求,所述漏洞类型包括越权漏洞;将所述漏洞结果保存至Redis平台中,以基于所述Redis平台将所述漏洞结果分配至对应的处理对象进行处理。
在一示例性实施例中,所述漏洞结果具有对应的漏洞过期时间,所述漏洞结果处理模块,用于当所述漏洞结果在所述Redis平台中保存的时间超过对应的所述漏洞过期时间时,在所述Redis平台中删除所述漏洞结果。
通过上述方式,基于数据处理平台的流量的原始请求自动生成对应的多个待漏洞检测的目标测试请求,进而可以基于多个目标测试请求的响应包来进行确定是否存在漏洞,由于无需通过人工检测的方式进行漏洞检测,因此提高漏洞检测的检测效率,降低漏洞检测的检测成本。
对于上述装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例还提供了一种电子设备,如图5所示,包括处理器51、通信接口52、存储器53和通信总线54,其中,处理器51,通信接口52,存储器53通过通信总线54完成相互间的通信,
存储器53,用于存放计算机程序;
处理器51,用于执行存储器53上所存放的程序时,实现如下步骤:
获取数据处理平台的流量;
从所述流量中确定目标原始请求;
根据所述目标原始请求生成多个待漏洞测试的目标测试请求;
获取所述目标测试请求分别对应的响应内容;
当所述目标测试请求对应的响应内容相同时,确定所述数据处理平台存在漏洞。
可选地,所述从所述流量中确定目标原始请求,包括:
对所述流量进行解析得到原始请求;
将满足预设条件的原始请求,确定为目标原始请求;
其中,所述预设条件包括所述原始请求是动态请求。
可选地,所述根据所述目标原始请求生成多个待漏洞测试的目标测试请求,包括:
将所述目标原始请求中的指定字段对应的字段参数替换为预设目标替换参数,得到测试请求;所述指定字段的字段参数和所述预设目标替换参数与不同漏洞类型的漏洞相对应;
将所述原始请求和所述测试请求作为目标测试请求。
可选地,所述指定字段包括认证字段,将所述目标原始请求中的指定字段对应的参数替换为指定参数,得到测试请求,包括:
将所述目标原始请求中的认证字段对应的参数替换为目标认证参数,和/或将所述标原始请求中的认证字段对应的参数替换为空值,得到测试请求。
可选地,所述方法还包括:
当所述目标测试请求对应的响应内容不相同时,确定所述数据处理平台不存在漏洞。
可选地,通过如下方式判定所述目标测试请求对应的响应内容是否相同:
当所述目标测试请求对应的响应内容为空值,所述目标测试请求对应的响应内容中的响应状态码不相同,或者,所述目标测试请求对应的响应内容中的响应内容长度不相同时,确定所述目标测试请求对应的响应内容不相同;
当所述目标测试请求对应的响应内容不为空值,所述目标测试请求对应的响应内容中的响应状态码相同,且,所述目标测试请求对应的响应内容中的响应内容长度相同时,若所述响应内容中的字段对应的字段参数相同,则确定所述目标测试请求对应的响应内容相同。
可选地,在所述若所述响应内容中的字段对应的字段参数相同,则确定所述目标测试请求对应的响应内容相同之前,所述方法还包括:
移除所述响应内容中的指定无意义字段和对应的字段参数。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的漏洞检测方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的漏洞检测方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个漏洞检测漏洞检测”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种漏洞检测方法,其特征在于,包括:
获取数据处理平台的流量;
从所述流量中确定目标原始请求;
根据所述目标原始请求生成多个待漏洞测试的目标测试请求;
获取所述目标测试请求分别对应的响应内容;
当所述目标测试请求对应的响应内容相同时,确定所述数据处理平台存在漏洞。
2.根据权利要求1所述的方法,其特征在于,所述从所述流量中确定目标原始请求,包括:
对所述流量进行解析得到原始请求;
将满足预设条件的原始请求,确定为目标原始请求;
其中,所述预设条件包括所述原始请求是动态请求。
3.根据权利要求1所述的方法,其特征在于,所述根据所述目标原始请求生成多个待漏洞测试的目标测试请求,包括:
将所述目标原始请求中的指定字段对应的字段参数替换为预设目标替换参数,得到测试请求;所述指定字段的字段参数和所述预设目标替换参数与不同漏洞类型的漏洞相对应;
将所述原始请求和所述测试请求作为目标测试请求。
4.根据权利要求3所述的方法,其特征在于,所述指定字段包括认证字段,将所述目标原始请求中的指定字段对应的参数替换为指定参数,得到测试请求,包括:
将所述目标原始请求中的认证字段对应的参数替换为目标认证参数,和/或将所述标原始请求中的认证字段对应的参数替换为空值,得到测试请求。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述目标测试请求对应的响应内容不相同时,确定所述数据处理平台不存在漏洞。
6.根据权利要求1或5所述的方法,其特征在于,通过如下方式判定所述目标测试请求对应的响应内容是否相同:
当所述目标测试请求对应的响应内容为空值,所述目标测试请求对应的响应内容中的响应状态码不相同,或者,所述目标测试请求对应的响应内容中的响应内容长度不相同时,确定所述目标测试请求对应的响应内容不相同;
当所述目标测试请求对应的响应内容不为空值,所述目标测试请求对应的响应内容中的响应状态码相同,且,所述目标测试请求对应的响应内容中的响应内容长度相同时,若所述响应内容中的字段对应的字段参数相同,则确定所述目标测试请求对应的响应内容相同。
7.根据权利要求6所述的方法,其特征在于,在所述若所述响应内容中的字段对应的字段参数相同,则确定所述目标测试请求对应的响应内容相同之前,所述方法还包括:
移除所述响应内容中的指定无意义字段和对应的字段参数。
8.一种漏洞检测装置,其特征在于,包括:
流量获取模块,用于获取数据处理平台的流量;
目标原始请求确定模块,用于从所述流量中确定目标原始请求;
目标测试请求生成模块,用于根据所述目标原始请求生成多个待漏洞测试的目标测试请求;
响应内容获取模块,用于获取所述目标测试请求分别对应的响应内容;
漏洞检测模块,用于当所述目标测试请求对应的响应内容相同时,确定所述数据处理平台存在漏洞。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-7任一所述的方法步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210883907.1A CN115378655A (zh) | 2022-07-26 | 2022-07-26 | 漏洞检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210883907.1A CN115378655A (zh) | 2022-07-26 | 2022-07-26 | 漏洞检测方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115378655A true CN115378655A (zh) | 2022-11-22 |
Family
ID=84064069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210883907.1A Pending CN115378655A (zh) | 2022-07-26 | 2022-07-26 | 漏洞检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115378655A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116432190A (zh) * | 2023-06-15 | 2023-07-14 | 杭州美创科技股份有限公司 | 接口未授权访问检测方法、装置、计算机设备及存储介质 |
-
2022
- 2022-07-26 CN CN202210883907.1A patent/CN115378655A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116432190A (zh) * | 2023-06-15 | 2023-07-14 | 杭州美创科技股份有限公司 | 接口未授权访问检测方法、装置、计算机设备及存储介质 |
CN116432190B (zh) * | 2023-06-15 | 2023-09-08 | 杭州美创科技股份有限公司 | 接口未授权访问检测方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI603600B (zh) | 利用運行期代理器及網路探查器判定漏洞之技術 | |
CN106101145B (zh) | 一种网站漏洞检测方法及装置 | |
CN113489713B (zh) | 网络攻击的检测方法、装置、设备及存储介质 | |
US9053322B2 (en) | Computing environment security method and electronic computing system | |
CN111400722B (zh) | 扫描小程序的方法、装置、计算机设备和存储介质 | |
US10795991B1 (en) | Enterprise search | |
US11108803B2 (en) | Determining security vulnerabilities in application programming interfaces | |
CN111783096B (zh) | 检测安全漏洞的方法和装置 | |
US9336396B2 (en) | Method and system for generating an enforceable security policy based on application sitemap | |
US11265342B2 (en) | Rest api scanning for security testing | |
CN110968872A (zh) | 文件漏洞的检测处理方法、装置、电子设备及存储介质 | |
CN114024764A (zh) | 数据库异常访问的监控方法、监控系统、设备和存储介质 | |
KR20180075881A (ko) | 클라이언트 측 웹 취약점 분석 방법 및 장치 | |
CN111625837B (zh) | 识别系统漏洞的方法、装置和服务器 | |
US11297091B2 (en) | HTTP log integration to web application testing | |
CN113779571A (zh) | WebShell检测装置、WebShell检测方法及计算机可读存储介质 | |
CN115378655A (zh) | 漏洞检测方法及装置 | |
CN113162937A (zh) | 应用安全自动化检测方法、系统、电子设备及存储介质 | |
CN111563260B (zh) | 一种面向安卓应用程序的Web注入代码执行漏洞检测方法及系统 | |
CN111314326B (zh) | Http漏洞扫描主机的确认方法、装置、设备及介质 | |
CN111131236A (zh) | 一种web指纹检测装置、方法、设备及介质 | |
CN102801740A (zh) | 木马病毒的阻止方法及装置 | |
CN112446030B (zh) | 一种网页端的文件上传漏洞检测方法和装置 | |
CN114490264A (zh) | 应用系统的文件监控方法、装置、电子设备及存储介质 | |
Rodriguez et al. | Ntapps: A network traffic analyzer of android applications |
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 |