CN111404937A - 一种服务器漏洞的检测方法和装置 - Google Patents
一种服务器漏洞的检测方法和装置 Download PDFInfo
- Publication number
- CN111404937A CN111404937A CN202010181109.5A CN202010181109A CN111404937A CN 111404937 A CN111404937 A CN 111404937A CN 202010181109 A CN202010181109 A CN 202010181109A CN 111404937 A CN111404937 A CN 111404937A
- Authority
- CN
- China
- Prior art keywords
- server
- user
- network request
- response result
- 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
- 238000000034 method Methods 0.000 title claims abstract description 62
- 230000004044 response Effects 0.000 claims abstract description 220
- 238000001514 detection method Methods 0.000 claims description 115
- 230000011218 segmentation Effects 0.000 claims description 28
- 238000001914 filtration Methods 0.000 claims description 27
- 230000002776 aggregation Effects 0.000 claims description 19
- 238000004220 aggregation Methods 0.000 claims description 19
- 238000012545 processing Methods 0.000 claims description 15
- 238000007781 pre-processing Methods 0.000 claims description 9
- 235000014510 cooky Nutrition 0.000 description 24
- 230000015654 memory Effects 0.000 description 20
- 230000008569 process Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 15
- 238000012795 verification Methods 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 5
- 101100256922 Caenorhabditis elegans sid-3 gene Proteins 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 210000001072 colon Anatomy 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000010998 test method Methods 0.000 description 2
- 208000001613 Gambling Diseases 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000035515 penetration Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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
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
技术领域
本发明涉及互联网技术领域,尤其涉及一种服务器漏洞的检测方法、装置、电子设备及存储介质。
背景技术
随着近期爆发的各种高危漏洞,网络应用的安全问题引起了越来越多的关注。越权漏洞,是万维网(WEB,World Wide Web)应用程序的后台服务器中一种常见的安全漏洞,是指由于开发者疏忽,没有对某个操作所需的权限或用户进行严格的限制,导致本应没有操作权限的用户可正常进行操作,其威胁在于一个账户即可控制网站或服务器的所有用户数据。例如,攻击者使用一个合法账户,就可对服务器中存在越权漏洞的其他账户数据进行非法操作,例如查询、删除、修改等常规数据库命令。
目前,相关技术对于越权漏洞的检测基本都是人工检测,如测试人员对服务器程序进行渗透测试,人工测试耗费时间长,效率低。
发明内容
本发明实施例提供一种服务器漏洞的检测方法、装置、电子设备及存储介质,能够高效且准确的检测服务器存在的漏洞。
本发明实施例的技术方案是这样实现的:
本发明实施例提供一种服务器漏洞的检测方法,所述方法包括:
向服务器发送基于第一用户的身份信息访问目标地址的第一网络请求,并接收所述服务器响应所述第一网络请求而发送的第一响应结果;
修改所述第一网络请求中与所述第一用户以及第二用户均相关的参数,以得到基于所述第二用户的身份信息访问所述目标地址的第二网络请求;
向所述服务器发送所述第二网络请求,并接收所述服务器响应所述第二网络请求而返回的第二响应结果;
当所述第一响应结果和所述第二响应结果之间的相似性满足相似性条件时,确定所述服务器中针对所述目标地址的接口存在漏洞。
本发明实施例提供一种服务器漏洞的检测装置,包括:
越权检测模块,用于向服务器发送基于第一用户的身份信息访问目标地址的第一网络请求,并接收所述服务器响应所述第一网络请求而发送的第一响应结果;
预处理模块,用于修改所述第一网络请求中与所述第一用户以及第二用户均相关的参数,以得到基于所述第二用户的身份信息访问所述目标地址的第二网络请求;
所述越权检测模块,还用于向所述服务器发送所述第二网络请求,并接收所述服务器响应所述第二网络请求而返回的第二响应结果;
所述越权检测模块,还用于当所述第一响应结果和所述第二响应结果之间的相似性满足相似性条件时,确定所述服务器中针对所述目标地址的接口存在漏洞。
上述方案中,所述服务器漏洞的检测装置还包括:采集模块,用于采集向所述服务器发送的多个网络请求,以及所述服务器响应所述多个网络请求而发送的响应结果;根据所述响应结果中包括的响应码、所述网络请求中包括的文件扩展名、以及白名单中的至少一个,对所述采集的网络请求进行过滤,并过滤掉地址解析失败的网络请求;获取过滤后得到的网络请求所对应用户的身份信息;根据获取的身份信息选择两个不同的用户以作为所述第一用户和所述第二用户,并在过滤后得到的网络请求中选取一个对应所述第一用户的网络请求,在所述选取的网络请求中添加所述第一用户的身份信息,以形成所述第一网络请求。
上述方案中,所述采集模块,还用于在所述采集的网络请求中,过滤掉满足以下条件至少之一的网络请求:所述网络请求中包括的文件扩展名为空;所述网络请求的响应结果中包括的响应码表征被所述服务器接收失败;所述网络请求的响应结果中包括所述白名单中的任意一个出错信息。
上述方案中,所述采集模块,还用于确定所述过滤后得到的网络请求中的资源定位符所属域名和/或所对应业务指纹的登陆方式;配置符合所述登陆方式的用户的账号和密码;向所述服务器发送基于所述用户的账号和密码访问所述目标地址的网络请求,并接收所述服务器响应所述网络请求而返回的所述用户的身份信息。
上述方案中,所述预处理模块,还用于将所述第一网络请求中所述第一用户的身份信息,整体替换为所述第二用户的身份信息;将所述第一网络请求中所述第一用户的身份信息中的敏感参数,替换为所述第二用户的身份信息中对应的敏感参数;将所述第一网络请求中资源定位符包括的所述第一用户的序列号,替换为所述第二用户的序列号;其中,所述第一网络请求中资源定位符包括所述目标地址以及所述第一用户的序列号。
上述方案中,所述越权检测模块,还用于确定所述第一响应结果和所述第二响应结果之间的相似度;当所述相似度超过相似度阈值时,确定所述服务器中针对所述目标地址的接口存在漏洞。
上述方案中,所述越权检测模块,还用于将所述第一响应结果和所述第二响应结果分别进行分词处理,以获得第一分词信息和第二分词信息;将所述第一分词信息和所述第二分词信息进行聚合处理,以获得聚合信息;确定所述第一分词信息相对于所述聚合信息的词频,以获得第一词频信息;确定所述第二分词信息相对于所述聚合信息的词频,以获得第二词频信息;将所述第一词频信息和所述第二词频信息之间的余弦相似度,确定为所述第一响应结果和所述第二响应结果之间的相似度。
上述方案中,所述越权检测模块,还用于当所述第一响应结果和所述第二响应结果之间的相似性不满足所述相似性条件、且所述第二响应结果中包括白名单中的任意一个出错信息时,确定所述服务器中针对所述目标地址的接口不存在漏洞;当所述第一响应结果和所述第二响应结果之间的相似性不满足所述相似性条件、所述第二响应结果中不包括白名单中的任意一个出错信息、且包括黑名单中的任意一个敏感信息时,确定所述服务器中针对所述目标地址的接口存在漏洞;当所述第一响应结果和所述第二响应结果之间的相似性不满足所述相似性条件、所述第二响应结果中不包括白名单中的任意一个出错信息、且不包括黑名单中的任意一个敏感信息时,确定所述服务器中针对所述目标地址的接口不存在漏洞。
上述方案中,所述服务器漏洞的检测装置还包括:报告管理模块,用于实时记录所述服务器中针对所述目标地址的接口存在的漏洞,并生成包括存在漏洞的接口信息的报告。
上述方案中,所述服务器漏洞的检测装置还包括:规则管理模块,用于响应于白名单配置操作,将所述白名单配置操作所提交的出错信息更新到白名单中;响应于黑名单配置操作,将所述白名单配置操作所提交敏感信息更新到黑名单中。
本发明实施例提供一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本发明实施例提供的服务器漏洞的检测方法。
本发明实施例提供一种存储介质,存储有可执行指令,用于引起处理器执行时,实现本发明实施例提供的服务器漏洞的检测方法。
本发明实施例具有以下有益效果:
通过修改网络请求中与用户均相关的参数的方式,探测服务器对于用户变化进行的响应,并通过响应结果的相似性可以准确判断服务器的接口是否有能力感知用户差异从而做出差异性的响应,进而可以准确快速检测服务器的接口是否存在漏洞。
附图说明
图1是本发明实施例提供的服务器漏洞的检测系统100的架构示意图;
图2是本发明实施例提供的电子设备500的结构示意图;
图3A是本发明实施例提供的服务器漏洞的检测方法的流程示意图;
图3B是本发明实施例提供的网络请求的结构示意图;
图3C是本发明实施例提供的响应结果的结构示意图;
图3D是本发明实施例提供的确定第一响应结果和第二响应结果之间的相似度的流程示意图;
图3E是本发明实施例提供的余弦定理的计算原理图;
图4是本发明实施例提供的服务器漏洞的检测方法的流程示意图;
图5A是本发明实施例提供的服务器漏洞的检测方法的流程示意图;
图5B是本发明实施例提供的接口信息的报告示意图;
图5C是本发明实施例提供的黑名单的配置界面示意图;
图6是本发明实施例提供的服务器漏洞的检测装置的结构示意图;
图7是本发明实施例提供的服务器漏洞的检测方法的流程示意图;
图8是本发明实施例提供的服务器漏洞的检测方法的流程示意图;
图9是本发明实施例提供的服务器漏洞的检测方法的流程示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)网络请求,也称请求报文,是客户端向服务器获取数据响应的手段。网络请求的结构包括:请求方法(例如GET请求和POST请求)、接口/网络地址,用于表示需要获取的资源(例如网页数据)、协议版本、以及请求正文(即实体主体/数据体)等字段。
2)网络响应,也称为响应报文、响应结果、响应或返回结果,是指服务器根据网络请求向客户端返回的应答,返回的报文实体主体中携带客户端所请求的资源。
3)POST请求,是网络请求所使用的请求方法的一种,规定网络请求提交的数据必须放在实体主体中。
4)接口,与服务器的网络地址对应,是服务器用于识别、定位和处理客户端所请求的资源(例如网页)的一种方式,服务器可以向客户端暴露多个可供访问的接口,每个接口与服务器的一个资源对应,资源可以使用统一资源定位符(URL,Uniform ResourceLocator)的方式来表示。
5)越权,是指服务器对用户通过客户端的网络请求(例如数据操作请求) 过于信任,忽略了对客户端的用户身份与操作权限的判定,导致普通客户端的用户拥有了管理员用户或者其他普通用户的权限,例如增、删、改、或查等功能。
6)平行越权,是指通过“权限类型不变,用户身份改变”的方式获取权限。例如:一个普通用户(不拥有管理员权限)的客户端发出网络请求中的身份信息,被替换为其他用户(在服务器中具有相同类型的权限)的身份信息,但是该网络请求仍然可以从服务器获取到其他用户的数据。
7)黑名单,是敏感信息的集合,网络应用的后台数据库中存储的与用户的信息安全相关的记录,例如,手机号、银行账号、住址等。敏感信息是会被重点标记的信息;如果在检测过程中向服务器发送的(重新构造的)网络请求后返回的结果与黑名单匹配,说明存在越权漏洞。
8)白名单,是出错信息的集合,网络应用向客户端返回的包括出错信息的响应结果的记录。如果在检测过程中向服务器发送的(重新构造的)网络请求后返回的结果与白名单匹配(即,包括白名单中的出错信息),则(在服务器的所有待检测是否存在漏洞的网络地址中)该网络请求中的网络地址会被过滤(因为该网络地址的访问不存在漏洞),也不做进一步的检测处理。
9)身份信息,也称为认证信息或登录态信息,是服务器为了辨别客户端的用户身份以跟踪会话,在客户端登录服务器并与服务器建立会话后由服务器存在客户端上的数据,由客户端暂时或永久保存,例如典型的用户信息的实现形式是储存在用户本地终端上的数据(cookie),包括:用户ID、会话ID(sid) 和会话密钥(skey)等。
10)参数,是网络请求中与用户的身份、权限等相关的数据,例如,URL、 cookie(位于网络请求的首部字段)、数据体(即上文的报文实体主体)中与用户相关的数据,由于是与用户相关的,因此也称为敏感参数。
11)登录态,即网络用户的后台在网络应用的后台处于登录的状态,在登录态中客户端可以使用与用户身份信息关联的权限,例如增删查改;作为实现登录态的一种方式,客户端可以凭借之前登录服务器时由服务器下发的cookie 请求再次登录,从而不需要用户重复输入用户名和密码。
12)流量,客户端向服务器发送网络请求以请求服务器返回响应的行为。
13)流量采集,也称为流量录制,是对客户端向服务器发送的网络请求进行记录。
14)流量重放,也称为流量回放,向待测试的服务器重新发送所采集的网络请求,以根据服务器返回的响应来检测是否存在漏洞。
15)流量去重,去除采集的流量中所记录的重复的请求。
16)流量去脏,将采集的流量中去除“脏”流量。其中,“脏”流量通过不正当手段(例如通过黄赌毒这样的非法信息来吸引用户点击,从而)吸引用户向后台发起的网络请求。
本发明实施例提供一种服务器漏洞的检测方法、装置、电子设备及存储介质,能够高效且准确的检测服务器存在的越权漏洞。下面说明本发明实施例提供的服务器漏洞的检测方法的示例性应用,本发明实施例提供的服务器漏洞的检测方法可以由服务器实施,例如可以由一个服务器单独实施,也可以由多个服务器协同实施,当然,也可以由终端(例如电脑、具有人工智能芯的智能手机等)实施。
下面,以由一个服务器单独实施为例说明本发明实施例,参见图1,图1 是本发明实施例提供的服务器漏洞的检测系统100的架构示意图。其中,服务器漏洞的检测系统100包括有:检测服务器200、终端300和终端300中的客户端310、客户端310的后台服务器400。
本发明实施例提供的服务器漏洞的检测方法可以通过以下过程实现:首先,检测服务器200采集客户端向后台服务器400发送的多个网络请求,并对多个网络请求进行过滤,以获得第一网络请求;然后,检测服务器200向后台服务器400发送第一网络请求,并接收后台服务器400响应第一网络请求而发送的第一响应结果;修改第一网络请求中与第一用户以及第二用户均相关的参数,以得到第二网络请求;最后,检测服务器200向后台服务器400发送第二网络请求,并接收后台服务器400响应第二网络请求而返回的第二响应结果;检测服务器200根据第一响应结果和第二响应结果,确定后台服务器400中是否存在漏洞。
接下来说明本发明实施例提供的电子设备的结构,其中,本发明实施例提供的电子设备可以是图1所示的检测服务器200。参见图2,图2是本发明实施例提供的电子设备500的结构示意图,图2所示的电子设备500包括:至少一个处理器510、存储器550、至少一个网络接口520和用户接口530。电子设备 500中的各个组件通过总线系统540耦合在一起。可理解,总线系统540用于实现这些组件之间的连接通信。总线系统540除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统540。
处理器510可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口530包括使得能够呈现媒体内容的一个或多个输出装置531,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口530还包括一个或多个输入装置532,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器550包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本发明实施例描述的存储器550旨在包括任意适合类型的存储器。存储器550可选地包括在物理位置上远离处理器510的一个或多个存储设备。
在一些实施例中,存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统551,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块552,用于经由一个或多个(有线或无线)网络接口520到达其他计算设备,示例性的网络接口520包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
显示模块553,用于经由一个或多个与用户接口530相关联的输出装置531 (例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块554,用于对一个或多个来自一个或多个输入装置532之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本发明实施例提供的服务器漏洞的检测装置可以采用软件方式实现,图2示出了存储在存储器550中的服务器漏洞的检测装置555,其可以是程序和插件等形式的软件,包括以下软件模块:越权检测模块5551 和预处理模块5552。这些模块是可以是逻辑功能模块,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在另一些实施例中,本发明实施例提供的服务器漏洞的检测装置可以采用软硬件结合的方式实现,作为示例,本发明实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本发明实施例提供的服务器漏洞的检测方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application SpecificIntegrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
下面,以由图1中的检测服务器200实施本发明实施例提供的服务器漏洞的检测方法为例说明本发明实施例。参见图3A,图3A是本发明实施例提供的服务器漏洞的检测方法的流程示意图,将结合图3A示出的步骤进行说明。
在步骤S101中,检测服务器向后台服务器发送基于第一用户的身份信息访问目标地址的第一网络请求。
参见图3B,图3B是本发明实施例提供的网络请求的结构示意图。图3B 中,网络请求由请求行、请求头部和请求正文三个部分组成。请求行包括请求方法、URL和协议版本三个部分;请求头部(或称首部)由“名/值”对组成,每行一对,名和值之间使用冒号分隔,请求头部中包括用户的身份信息(例如 cookie)。
在一些实施例中,第一网络请求的请求行中的URL包括目标地址,第一网络请求的请求头部中包含第一用户的身份信息。
举例来说,第一网络请求可以携带以下信息:URL:www.example.com/ task.php?id=1&token=aaa,第一用户的身份信息(cookie):“skey=abc;sid=3”。
在步骤S102中,检测服务器接收后台服务器响应第一网络请求而发送的第一响应结果。
参见图3C,图3C是本发明实施例提供的响应结果的结构示意图。图3C 中,响应结果由状态行、响应头部和响应正文三个部分组成,其中,状态行包括协议版本、状态码(或称响应码)和状态码描述三个部分;响应头部由“名/ 值”对组成,每行一对,名和值之间使用冒号分隔。
这里,状态码为3位数字,200~299的状态码表征服务端(即服务器)接收成功,300~399的状态码表征资源重定向,400~499的状态码表征客户端请求出错,500~599的状态码表征服务端出错。
在步骤S103中,检测服务器修改第一网络请求中与第一用户以及第二用户均相关的参数,以得到基于第二用户的身份信息访问目标地址的第二网络请求。
这里,检测服务器修改的参数是第一网络请求中与用户的身份或权限等相关的参数。因为修改第一网络请求中的参数是与第一用户和第二用户都相关的,所以只要修改其中的任意一个参数,即使不是全部与第一用户和第二用户都相关的参数,第二网络请求也是携带有部分或全部第二用户的身份信息的。
在一些实施例中,检测服务器将第一网络请求中第一用户的身份信息,整体替换为第二用户的身份信息,以得到基于第二用户的身份信息访问目标地址的第二网络请求。
以第一网络请求携带以下信息:URL:www.example.com/task.php?id=1 &token=aaa,第一用户的身份信息(cookie):skey=abc;sid=3、且第二用户的身份信息cookie是skey=bcd;sid=4为例,将第一网络请求中第一用户的身份信息整体替换为第二用户的身份信息,得到的第二网络请求携带以下信息:URL: www.example.com/task.php?id=1&token=aaa,第二用户的身份信息(cookie): skey=bcd;sid=4(即,将第一用户的cookie整体替换为第二用户的cookie)。
在一些实施例中,检测服务器将第一网络请求中第一用户的身份信息中的敏感参数,替换为第二用户的身份信息中对应的敏感参数,以得到基于第二用户的身份信息访问目标地址的第二网络请求。
这里,身份信息中的敏感参数可以是任意和用户身份相关的参数,例如, cookie中的用户ID、会话ID(sid)和会话密钥(skey)等。
以第一网络请求携带以下信息:URL:www.example.com/task.php?id=1 &token=aaa,第一用户的身份信息(cookie):skey=abc;sid=3、且第二用户的身份信息cookie是skey=bcd;sid=4为例,将第一网络请求中第一用户的身份信息中的敏感参数,替换为第二用户的身份信息中对应的敏感参数后,得到的第二网络请求携带以下信息:URL:www.example.com/task.php?id=1&token=aaa,第二用户的身份信息(cookie):skey=bcd;sid=3(即,将第一用户的cookie中的skey替换为第二用户的cookie中的skey)。
在一些实施例中,检测服务器将第一网络请求中的请求正文中与第一用户以及第二用户的身份信息均相关的参数进行修改,以得到基于第二用户的身份信息访问目标地址的第二网络请求。
在一些实施例中,检测服务器将第一网络请求中资源定位符(即URL)包括的第一用户的序列号,替换为第二用户的序列号,以得到基于第二用户的身份信息访问目标地址的第二网络请求。
这里,第一网络请求中资源定位符包括目标地址以及第一用户的序列号。例如:当第一网络请求中的URL为www.example.com/task.php?id=1&token=aaa 时,第一用户的序列号(id)为1。
以第一网络请求携带以下信息:URL:www.example.com/task.php?id=1 &token=aaa,第一用户的身份信息(cookie):skey=abc;sid=3、且第二用户请求的URL是www.example.com/task.php?id=2&token=bbb为例,将第一网络请求中资源定位符包括的第一用户的序列号,替换为第二用户的序列号后,得到的第二网络请求携带以下信息:URL:www.example.com/task.php? id=2&token=aaa,第二用户的身份信息(cookie):skey=abc;sid=3(即,将第一用户请求的URL中的第一用户的序列号id=1替换为第二用户的序列号id=2)。
本发明实施例不仅可以修改网络请求中的用户的身份信息,也可以修改网络请求中除了用户的身份信息之外的和用户的身份信息相关的参数,提高了检测漏洞的全面性,降低误报率。
在步骤S104中,检测服务器向后台服务器发送第二网络请求。
在一些实施例中,第二网络请求的请求行中的URL包括目标地址,其中, URL中包括的用户的序列号可以是第二用户的序列号,第二网络请求的请求头部中包含用户的身份信息可以是修改后的第一用户的身份信息,。
举例来说,第二网络请求可以携带以下信息:URL:www.example.com/task. php?id=1&token=aaa,修改后的身份信息cookie:skey=bcd;sid=4(将第一用户的cookie整体替换为第二用户的cookie)。
在步骤S105中,检测服务器接收后台服务器响应第二网络请求而发送的第二响应结果。
在一些实施例中,参见图3C,第二响应结果由状态行、响应头部和响应正文三个部分组成,其中,状态行包括协议版本、状态码和状态码描述三个部分。
后续检测服务器在进行越权漏洞检测时,可以根据第二响应结果中响应头部的状态码、以及响应正文中包括的字段确定后台服务器中针对目标地址的接口是否存在漏洞。
在步骤S106中,检测服务器根据第一响应结果和第二响应结果,确定后台服务器中针对目标地址的接口是否存在漏洞。
在一些实施例中,当第一响应结果和第二响应结果之间的相似性满足相似性条件时,检测服务器确定后台服务器中针对目标地址的接口存在漏洞。
作为示例,检测服务器确定第一响应结果和第二响应结果之间的相似度;当相似度超过相似度阈值时,确定后台服务器中针对目标地址的接口存在漏洞。
作为示例,检测服务器确定第一响应结果和第二响应结果之间的相似度;当相似度不超过相似度阈值时,确定后台服务器中针对目标地址的接口不存在漏洞。
这里,相似度阈值可以是0至1之间的任意常数,本文将相似度阈值设置为0.7。
参见图3D,图3D是本发明实施例提供的确定第一响应结果和第二响应结果之间的相似度的流程示意图。图3D中,第一响应结果和第二响应结果之间的相似度的确定过程具体是:步骤S301,将第一响应结果和第二响应结果分别进行分词处理,以获得第一分词信息和第二分词信息;步骤S302,将第一分词信息和第二分词信息进行聚合处理,以获得聚合信息;步骤S303,确定第一分词信息相对于聚合信息的词频,以获得第一词频信息;确定第二分词信息相对于聚合信息的词频,以获得第二词频信息;步骤S304,将第一词频信息和第二词频信息矢量化;步骤S305,将矢量化后的第一词频信息和第二词频信息之间的余弦相似度,确定为第一响应结果和第二响应结果之间的相似度。
这里,分词处理的规则是:按照标点符号进行分词,例如{、”、,、:、},当响应结果包含中文语句时,可以引入语义化分析的方法进行分词,例如,将中文语句分成多个词语。
举例来说,当第一响应结果为{“ret”:0,”content”:12345},第二响应结果为{“ret”:0,”content”:12345678}时,将第一响应结果和第二响应结果分别进行分词处理,获得第一分词信息[“ret”,0,”content”,12345],第二分词信息[“ret”,0,”content”,12345678];将第一分词信息和第二分词信息进行聚合处理,以获得聚合信息[“ret”,0,”content”,12345,12345678];计算第一分词信息相对于聚合信息的第一词频信息{“ret”:1,0:1,”content”:1, 12345:1,12345678:0},计算第二分词信息相对于聚合信息的第二词频信息 {“ret”:1,0:1,”content”:1,12345:0,12345678:1};将第一词频信息矢量化为[1,1,1,1,0],将第一词频信息矢量化为[1,1,1,0,1];参见图 3E,图3E是本发明实施例提供的余弦定理的计算原理图,可以根据图3E以及余弦定理公式计算矢量化后的第一词频信息和第二词频信息之间的余弦相似度为:
从而可确定第一响应结果和第二响应结果之间的相似度为0.75,超过相似度阈值0.7,可知,第一响应结果和第二响应结果之间的相似性满足相似性条件,可确定后台服务器中针对目标地址的接口存在漏洞。
本发明实施例根据余弦相似性定理对第一响应结果和第二响应结果之间的相似性来确定服务器中针对目标地址的接口是否存在漏洞,不仅提高了检测漏洞的速率,还提高了检测漏洞的准确性。
在进行相似性检测后,为进一步提高检测的准确性,可以添加白名单检测过程,具体地:在一些实施例中,当第一响应结果和第二响应结果之间的相似性不满足相似性条件、且第二响应结果中包括白名单中的任意一个出错信息时,检测服务器确定后台服务器中针对目标地址的接口不存在漏洞。
这里,出错信息是指“fail”、“失败”、或“需要登录”等已知错误关键字。
作为示例,当第一响应结果和第二响应结果之间的相似度超过相似度阈值、且第二响应结果中包括白名单中的任意一个出错信息时,检测服务器确定后台服务器中针对目标地址的接口不存在漏洞。
举例来说,如果在检测过程中检测服务器向后台服务器发送的重新构造的网络请求后返回的结果与白名单匹配(即,包括白名单中的任意一个出错信息),则说明使用重新构造的网络请求不能获取后台服务器中的资源,因此,可以确定后台服务器中针对目标地址的接口不存在漏洞。
在进行白名单检测后,为进一步提高检测的准确性,可以添加黑名单检测过程,具体地:在一些实施例中,当第一响应结果和第二响应结果之间的相似性不满足相似性条件、第二响应结果中不包括白名单中的任意一个出错信息时,可以通过判断第二响应结果中是否包括黑名单中的任意一个敏感信息,来确定后台服务器中针对目标地址的接口是否存在漏洞。
这里,敏感信息是指与用户的信息安全相关的记录,例如,手机号、银行账号、住址等。
作为一个示例,当第一响应结果和第二响应结果之间的相似性超过相似度阈值、第二响应结果中不包括白名单中的任意一个出错信息、且包括黑名单中的任意一个敏感信息时,确定服务器中针对目标地址的接口存在漏洞。
作为另一个示例,当第一响应结果和第二响应结果之间的相似性超过相似度阈值、第二响应结果中不包括白名单中的任意一个出错信息、且不包括黑名单中的任意一个敏感信息时,确定服务器中针对目标地址的接口不存在漏洞。
举例来说,如果在检测过程中检测服务器向后台服务器发送的重新构造的网络请求后返回的结果与黑名单匹配(即,包括黑名单中的任意一个敏感信息),则说明使用重新构造的网络请求能够获取后台服务器中的和用户相关的隐私资源,因此,可以确定后台服务器中针对目标地址的接口存在越权漏洞。
本发明实施例在判断是否存在越权漏洞的过程中引入黑白名单规则,进一步提高了检测漏洞的速率,还提高了检测漏洞的准确性。
参见图4,图4是本发明实施例提供的服务器漏洞的检测方法的流程示意图,基于图3A,在步骤S101之前可以包括步骤S107至步骤S111。
在步骤S107中,检测服务器采集客户端向后台服务器发送的多个网络请求,以及后台服务器响应多个网络请求而向客户端发送的响应结果。
在一些实施例中,检测服务器可以采集客户端向后台服务器发送的所有网络请求;也可以采集任意时间段内客户端向后台服务器发送的所有网络请求;也可以是采集符合预设条件的客户端向后台服务器发送的所有网络请求,例如,使用客户端的累计时间超过预设累计时间阈值的客户端。检测服务器确定采集的网络请求后,再获取对应的响应结果。
在步骤S108中,检测服务器根据响应结果中包括的响应码、网络请求中包括的文件扩展名、以及白名单中的至少一个,对采集的网络请求进行过滤,并过滤掉地址解析失败的网络请求。
这里,过滤网络请求的规则可以是任意选择网络请求;也可以是遍历选择网络请求。
在一些实施例中,检测服务器在采集的网络请求中,过滤掉满足以下条件至少之一的网络请求:网络请求中包括的文件扩展名为空(或无效);网络请求的响应结果中包括的响应码表征被后台服务器接收失败;网络请求的响应结果中包括白名单中的任意一个出错信息。
当响应结果中包括的响应码为40x(例如401)或50x(例如501)时,表征后台服务器未成功接收网络请求。这里的白名单可以和上述白名单(即,检测越权漏洞所使用的白名单)中包含的出错信息一样,也可以根据用户定义不一样。
举例来说,如果在过滤过程中,网络请求的返回结果与白名单匹配(即,包括白名单中的任意一个出错信息),则说明该网络请求中的网络地址可能已过期或该网络地址的访问不存在漏洞,因此,无需做进一步的检测处理。
在步骤S109中,检测服务器获取过滤后得到的网络请求所对应用户的身份信息。
在一些实施例中,检测服务器确定过滤后得到的网络请求中的资源定位符所属域名和/或所对应业务指纹的登陆方式;配置符合登陆方式的用户的账号和密码;向后台服务器发送基于用户的账号和密码访问目标地址的网络请求,并接收后台服务器响应网络请求而返回的用户的身份信息。
举例来说,根据网络请求中的所属域名的业务识别所使用的登录方式以及预配置的用户的账号和密码,向后台服务器发送基于用户的账号和密码的网络请求,以获取用户的身份信息(cookie)。
在步骤S110中,检测服务器根据获取的身份信息选择两个不同的用户以作为第一用户和第二用户。
这里,检测服务器从过滤后剩余的网络请求中,提取过滤后剩余的网络请求对应的用户的身份信息(cookie),并且选择任意两个不同身份信息的用户作为第一用户和第二用户。
在步骤S111中,检测服务器在过滤后得到的网络请求中选取一个对应第一用户的网络请求,在选取的网络请求的首部中添加第一用户的身份信息,以形成第一网络请求。
第一用户的身份信息的获取过程是:检测服务器向后台服务器发送基于第一用户的账号和密码访问目标地址的网络请求,从而获得后台服务器响应网络请求而返回的第一用户的身份信息。
前面已详细说明网络请求的请求头部中包括用户的身份信息,因此,检测服务器可以在在选取的网络请求的请求头部中添加获得的第一用户的身份信息,以形成第一网络请求。
本发明实施例通过过滤规则将已过期或无效的网络请求过滤丢弃,然后对过滤后的网络请求进行漏洞检测处理,可以避免后续流量重放,从而浪费检测服务器的检测资源。
参见图5A,图5A是本发明实施例提供的服务器漏洞的检测方法的流程示意图,基于图3A,在步骤S106之后可以包括步骤S112。
在步骤S112中,检测服务器实时记录后台服务器中针对目标地址的接口存在的漏洞,并生成包括存在漏洞的接口信息的报告。
在一些实施例中,检测服务器可以向检测人员(的交互界面中)发送包括存在漏洞的接口信息的报告和/或通知,以使检测人员根据包括存在漏洞的接口信息的报告和/或通知对目标地址的接口进行二次验证(或称检测)。
举例来说,参见图5B,图5B是本发明实施例提供的接口信息的报告示意图,图5B中,接口信息的报告展示了检测出漏洞的时间(即入库时间)、用户身份信息(id)、漏洞/风险类型和扫描出存在漏洞的URL。
本发明实施例通过向用户提供扫描漏洞检测报告,使得用户可以根据返回结果进行二次检测,从而进一步提高了检测漏洞的准确性。
在一些实施例中,上述的黑名单和白名单支持用户(检测人员)自主配置,配置白名单的具体过程是:检测服务器响应于白名单配置操作,将白名单配置操作所提交的出错信息更新到白名单中。配置黑名单的具体过程是:检测服务器响应于黑名单配置操作,将白名单配置操作所提交敏感信息更新到黑名单中。
举例来说,参见图5C,图5C是本发明实施例提供的黑名单的配置界面示意图,图5C中,用户可以通过黑名单的配置界面中对黑名单中包括的敏感信息进行更新,例如删除或添加敏感信息。
检测白名单的配置界面和过滤URL所使用的白名单的配置界面均与上述的黑名单的配置界面类似,此处将不再进行赘述。
本发明实施例提供完善的过滤规则和检测规则管理后台,支持用户自助配置过滤规则和检测规则,从而进一步提高了检测漏洞的准确性。
下面继续结合图2说明本发明实施例提供的服务器漏洞的检测装置555的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器 550的服务器漏洞的检测装置555中的软件模块可以包括:越权检测模块5551 和预处理模块5552。
越权检测模块5551,用于向服务器发送基于第一用户的身份信息访问目标地址的第一网络请求,并接收服务器响应第一网络请求而发送的第一响应结果;
预处理模块5552,用于修改第一网络请求中与第一用户以及第二用户均相关的参数,以得到基于第二用户的身份信息访问目标地址的第二网络请求;
越权检测模块5551,还用于向服务器发送第二网络请求,并接收服务器响应第二网络请求而返回的第二响应结果;
越权检测模块5551,还用于当第一响应结果和第二响应结果之间的相似性满足相似性条件时,确定服务器中针对目标地址的接口存在漏洞。
在一些实施例中,服务器漏洞的检测装置555还包括:采集模块5553,用于采集向服务器发送的多个网络请求,以及服务器响应多个网络请求而发送的响应结果;根据响应结果中包括的响应码、网络请求中包括的文件扩展名、以及白名单中的至少一个,对采集的网络请求进行过滤,并过滤掉地址解析失败的网络请求;获取过滤后得到的网络请求所对应用户的身份信息;根据获取的身份信息选择两个不同的用户以作为第一用户和第二用户,并在过滤后得到的网络请求中选取一个对应第一用户的网络请求,在选取的网络请求中添加第一用户的身份信息,以形成第一网络请求。
在一些实施例中,采集模块5553,还用于在采集的网络请求中,过滤掉满足以下条件至少之一的网络请求:网络请求中包括的文件扩展名为空;网络请求的响应结果中包括的响应码表征被服务器接收失败;网络请求的响应结果中包括白名单中的任意一个出错信息。
在一些实施例中,采集模块5553,还用于确定过滤后得到的网络请求中的资源定位符所属域名和/或所对应业务指纹的登陆方式;配置符合登陆方式的用户的账号和密码;向服务器发送基于用户的账号和密码访问目标地址的网络请求,并接收服务器响应网络请求而返回的用户的身份信息。
在一些实施例中,预处理模块5552,还用于将第一网络请求中第一用户的身份信息,整体替换为第二用户的身份信息;将第一网络请求中第一用户的身份信息中的敏感参数,替换为第二用户的身份信息中对应的敏感参数;将第一网络请求中资源定位符包括的第一用户的序列号,替换为第二用户的序列号;其中,第一网络请求中资源定位符包括目标地址以及第一用户的序列号。
在一些实施例中,越权检测模块5551,还用于确定第一响应结果和第二响应结果之间的相似度;当相似度超过相似度阈值时,确定服务器中针对目标地址的接口存在漏洞。
在一些实施例中,越权检测模块5551,还用于将第一响应结果和第二响应结果分别进行分词处理,以获得第一分词信息和第二分词信息;将第一分词信息和第二分词信息进行聚合处理,以获得聚合信息;确定第一分词信息相对于聚合信息的词频,以获得第一词频信息;确定第二分词信息相对于聚合信息的词频,以获得第二词频信息;将第一词频信息和第二词频信息之间的余弦相似度,确定为第一响应结果和第二响应结果之间的相似度。
在一些实施例中,越权检测模块5551,还用于当第一响应结果和第二响应结果之间的相似性不满足相似性条件、且第二响应结果中包括白名单中的任意一个出错信息时,确定服务器中针对目标地址的接口不存在漏洞;当第一响应结果和第二响应结果之间的相似性不满足相似性条件、第二响应结果中不包括白名单中的任意一个出错信息、且包括黑名单中的任意一个敏感信息时,确定服务器中针对目标地址的接口存在漏洞;当第一响应结果和第二响应结果之间的相似性不满足相似性条件、第二响应结果中不包括白名单中的任意一个出错信息、且不包括黑名单中的任意一个敏感信息时,确定服务器中针对目标地址的接口不存在漏洞。
在一些实施例中,服务器漏洞的检测装置555还包括:报告管理模块5554,用于实时记录服务器中针对目标地址的接口存在的漏洞,并生成包括存在漏洞的接口信息的报告。
在一些实施例中,服务器漏洞的检测装置555还包括:规则管理模块5555,用于响应于白名单配置操作,将白名单配置操作所提交的出错信息更新到白名单中;响应于黑名单配置操作,将白名单配置操作所提交敏感信息更新到黑名单中。
本发明实施例提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本发明实施例提供的服务器漏洞的检测方法,例如,如图3A、图3D、图4或图5A示出的服务器漏洞的检测方法。
在一些实施例中,存储介质可以是FRAM、ROM、PROM、EPROM、 EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件) 中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
下面,将说明本发明实施例在一个实际的应用场景中的示例性应用。
在本发明实施例的实施过程中,发现相关技术存在以下问题:
(1)相关技术通过修改网络请求中的URL的参数获取响应结果,这种方式检测结果误报很多,结果可用性低,不利于漏洞分析。一方面由于网络请求的种类众多,向服务器请求资源所使用的URL的参数没有统一的标准,导致 URL的参数复杂多样,使得网络请求中与用户身份或权限相关的URL的参数不明确;另一方面网络请求的响应中可能带有推荐、广告或时间戳等与权限无关的动态数据,导致很容易误判。
(2)相关技术对于可能存在越权的检测点覆盖不足,只考虑了网络请求中的URL的参数,且不能灵活自定义URL中需要检测的参数,更加忽略了对于 cookie中的参数的检测。
(3)相关技术的基础身份验证多采用直接配置cookie信息的方式,不能根据WEB应用页面接口或具体业务自动适配登录逻辑。
(4)相关技术因为误报高,通常只能作为手动测试的方法或者半自动测试的方法,而且局限于测试人员的操作,无法作为自动化测试的方案。
针对上述问题,本发明实施例提出一种服务器越权漏洞的检测方法。本发明实施例不仅可以修改网络请求中的用户的身份信息,也可以修改网络请求中除了用户的身份信息之外的参数,提高了检测漏洞的全面性,降低误报率;通过对第一响应结果和第二响应结果之间的相似性进行判断,不仅提高了检测漏洞的速率,还提高了检测漏洞的准确性。
本发明实施例的实现方案具体如下:
参见图6,图6是本发明实施例提供的服务器越权漏洞的检测装置的结构示意图,图6中,服务器越权漏洞的检测装置由七个部分组成,包括:任务下发模块、URL采集模块、用户登录态管理模块、URL预处理模块、越权检测模块、规则管理模块和报告管理模块,下面对于上述模块具体进行说明。
(1)任务下发模块:由WEB系统入口和命令行入口两部分构成,检测人员可自定义需要扫描(或称检测)的URL以及post请求数据体。
任务下发模块可以配置需要扫描的参数,扫描的参数可以包括URL、数据体(其包括的参数的数量/类型取决于网络应用的开发者,可以包括一个或多个的参数)中的任意一个或多个参数;
(2)用户登录态管理模块:基于域名资产归属和业务指纹来识别用户身份,从而为特定用户比如用户A和用户B,构造登录请求并保存身份信息;
域名资产归属,是指网络中不同的域名登记在不同用户(可以是个人、组织、公司等)和业务的名下;当客户端发送网络请求时,根据网络请求的域名可以查询到对应的IP地址(IP地址与域名是一对一或一对多的关系),进行可以(在域名登记数据库)查询到域名归属的用户,并保存其身份信息,或者(在业务归属数据库)查询到域名归属的业务,并保存业务使用的身份认证方式。
业务指纹,是指网站对外提供服务时显示了其提供的服务类型和服务内容,例如网站在网页上表明其提供社交服务、视频服务或者新闻咨询服务,可根据网页返回信息进行识别,之后可到身份认证关系数据库中查询其使用的身份认证方式。
(3)URL采集模块:可以通过在WEB应用服务器安装代理的方式采集流量或者在用户浏览器安装插件的方式采集流量并完成去重、去脏。
(4)URL预处理模块负责:①使用预先配置的用户账号和密码请求URL,以获得包括用户的cookie的响应;②过滤已知的不需要处理的URL;③对包括 URL信息的网络请求进行重新构造。
(5)规则管理模块:负责对扫描URL、URL参数和返回结果的黑白名单过滤规则管理(运维人员可以通过该模块修改黑白名单以改变过滤规则)。
(6)越权检测模块:基于已有规则、已有算法进行流量重放,比较多次请求的结果在经过余弦相似性算法校验、黑白名单校验后,判断是否存在越权。
(7)报告管理模块:负责对检测结果进行展示,并提供请求返回结果来确认是否存在越权,可以较为直观的确认是否存在误报,在开启严格的返回结果白名单校验时可以不需要人工确认,直接通知业务归属方处理。
参见图7,图7是本发明实施例提供的服务器越权漏洞的检测方法的流程示意图。
第一步,采集多个携带URL的请求,分别记录返回结果res0和超文本传输协议(HTTP,Hyper Text Transfer Protocol)响应码code0;
第二步,根据HTTP响应码、文件扩展名、返回结果的白名单规则过滤URL,并删除域名解析失败的URL;
第三步,根据URL所属域名的业务识别所使用的登录方式以及预配置的用户A和用户B账号密码,获取用户身份信息cookie_a和cookie_b;
第四步,以用户A的身份信息请求URL,记录返回结果res_a0和HTTP 状态码code_a0;
第五步,根据已知敏感参数(例如,将用户A的用户id替换成用户B的用户id)重新构造请求的URL或post body信息,记录返回结果res_a1和HTTP 状态码code_a1;
第六步,通过余弦相似性算法校验、黑/白名单校验,确定接口是否构成越权。
参见图8,图8是本发明实施例提供的服务器越权漏洞的检测方法的流程示意图。
第一步,采集多个携带URL的请求,分别记录返回结果res0和HTTP响应码code0;
第二步,根据HTTP响应码、文件扩展名、返回结果的白名单规则过滤URL,并删除域名解析失败的URL;
第三步,根据URL所属域名的业务识别所使用的登录方式以及预配置的用户A和用户B账号密码,获取用户身份信息cookie_a和cookie_b;
第四步,记录用户A请求URL的返回结果res_a2和HTTP状态码code_a2;
第五步,使用用户B的身份信息重新请求相同的URL并记录返回结果 res_b2和code_b2;
第六步,通过余弦相似性算法校验、黑/白名单校验,确定接口是否构成越权。
参见图9,图9是本发明实施例提供的服务器越权漏洞的检测方法的流程示意图。
第一步,采集多个携带URL的请求,分别记录返回结果res0和HTTP响应码code0;
第二步,根据HTTP响应码、文件扩展名、返回结果的白名单规则过滤URL,并删除域名解析失败的URL;
第三步,根据URL所属域名的业务识别所使用的登录方式以及预配置的用户A和用户B账号密码,获取用户身份信息cookie_a和cookie_b;
第四步,将用户A的身份信息cookie_a中的敏感参数修改为用户B的对应参数(A用户id替换成B用户的id),记录返回结果res_a3和HTTP状态码 code_a3;
第五步,通过余弦相似性算法校验、黑/白名单校验,确定接口是否构成越权。
综上所述,本发明实施例具有以下有益效果:
(1)提升越权漏洞的检测准确率,在开启严格黑名单校验机制、规则配置完成的情况下,可以做到100%的准确性。
(2)提高越权漏洞的自动化程度,采集可疑返回结果到管理平台实现漏洞可跟踪,降低检测成本和实现检测流程的闭环。
以上所述,仅为本发明的实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。
Claims (10)
1.一种服务器漏洞的检测方法,其特征在于,所述方法包括:
向服务器发送基于第一用户的身份信息访问目标地址的第一网络请求,并接收所述服务器响应所述第一网络请求而发送的第一响应结果;
修改所述第一网络请求中与所述第一用户以及第二用户均相关的参数,以得到基于所述第二用户的身份信息访问所述目标地址的第二网络请求;
向所述服务器发送所述第二网络请求,并接收所述服务器响应所述第二网络请求而返回的第二响应结果;
当所述第一响应结果和所述第二响应结果之间的相似性满足相似性条件时,确定所述服务器中针对所述目标地址的接口存在漏洞。
2.根据权利要求1所述的方法,其特征在于,在所述向服务器发送基于第一用户的身份信息访问目标地址的第一网络请求之前,所述方法还包括:
采集向所述服务器发送的多个网络请求,以及所述服务器响应所述多个网络请求而发送的响应结果;
根据所述响应结果中包括的响应码、所述网络请求中包括的文件扩展名、以及白名单中的至少一个,对所述采集的网络请求进行过滤,并过滤掉地址解析失败的网络请求;
获取过滤后得到的网络请求所对应用户的身份信息;
根据获取的身份信息选择两个不同的用户以作为所述第一用户和所述第二用户,并在过滤后得到的网络请求中选取一个对应所述第一用户的网络请求,在所述选取的网络请求中添加所述第一用户的身份信息,以形成所述第一网络请求。
3.根据权利要求2所述的方法,其特征在于,所述根据所述响应结果中包括的响应码、所述网络请求中包括的文件扩展名、以及白名单中的至少一个,对所述采集的网络请求进行过滤,包括:
在所述采集的网络请求中,过滤掉满足以下条件至少之一的网络请求:
所述网络请求中包括的文件扩展名为空;
所述网络请求的响应结果中包括的响应码表征被所述服务器接收失败;
所述网络请求的响应结果中包括所述白名单中的任意一个出错信息。
4.根据权利要求2所述的方法,其特征在于,所述获取过滤后得到的网络请求所对应用户的身份信息,包括:
确定所述过滤后得到的网络请求中的资源定位符所属域名和/或所对应业务指纹的登陆方式;
配置符合所述登陆方式的用户的账号和密码;
向所述服务器发送基于所述用户的账号和密码访问所述目标地址的网络请求,并接收所述服务器响应所述网络请求而返回的所述用户的身份信息。
5.根据权利要求1所述的方法,其特征在于,所述修改所述第一网络请求中与所述第一用户以及第二用户均相关的参数,包括以下至少之一:
将所述第一网络请求中所述第一用户的身份信息,整体替换为所述第二用户的身份信息;
将所述第一网络请求中所述第一用户的身份信息中的敏感参数,替换为所述第二用户的身份信息中对应的敏感参数;
将所述第一网络请求中资源定位符包括的所述第一用户的序列号,替换为所述第二用户的序列号;
其中,所述第一网络请求中资源定位符包括所述目标地址以及所述第一用户的序列号。
6.根据权利要求1所述的方法,其特征在于,所述当所述第一响应结果和所述第二响应结果之间的相似性满足相似性条件时,确定所述服务器中针对所述目标地址的接口存在漏洞,包括:
确定所述第一响应结果和所述第二响应结果之间的相似度;
当所述相似度超过相似度阈值时,确定所述服务器中针对所述目标地址的接口存在漏洞。
7.根据权利要求6所述的方法,其特征在于,所述确定所述第一响应结果和所述第二响应结果之间的相似度,包括:
将所述第一响应结果和所述第二响应结果分别进行分词处理,以获得第一分词信息和第二分词信息;
将所述第一分词信息和所述第二分词信息进行聚合处理,以获得聚合信息;
确定所述第一分词信息相对于所述聚合信息的词频,以获得第一词频信息;
确定所述第二分词信息相对于所述聚合信息的词频,以获得第二词频信息;
将所述第一词频信息和所述第二词频信息之间的余弦相似度,确定为所述第一响应结果和所述第二响应结果之间的相似度。
8.根据权利要求1所述的方法,其特征在于,在所述接收所述服务器响应所述第二网络请求而返回的第二响应结果之后,所述方法还包括:
当所述第一响应结果和所述第二响应结果之间的相似性不满足所述相似性条件、且所述第二响应结果中包括白名单中的任意一个出错信息时,确定所述服务器中针对所述目标地址的接口不存在漏洞;
当所述第一响应结果和所述第二响应结果之间的相似性不满足所述相似性条件、所述第二响应结果中不包括白名单中的任意一个出错信息、且包括黑名单中的任意一个敏感信息时,确定所述服务器中针对所述目标地址的接口存在漏洞;
当所述第一响应结果和所述第二响应结果之间的相似性不满足所述相似性条件、所述第二响应结果中不包括白名单中的任意一个出错信息、且不包括黑名单中的任意一个敏感信息时,确定所述服务器中针对所述目标地址的接口不存在漏洞。
9.根据权利要求1至8任一项所述的方法,其特征在于,
在所述确定所述服务器中针对所述目标地址的接口存在漏洞之后,所述方法还包括:
实时记录所述服务器中针对所述目标地址的接口存在的漏洞,并生成包括存在漏洞的接口信息的报告;
所述方法还包括:
响应于白名单配置操作,将所述白名单配置操作所提交的出错信息更新到白名单中;
响应于黑名单配置操作,将所述白名单配置操作所提交敏感信息更新到黑名单中。
10.一种服务器漏洞的检测装置,其特征在于,所述装置包括:
越权检测模块,用于向服务器发送基于第一用户的身份信息访问目标地址的第一网络请求,并接收所述服务器响应所述第一网络请求而发送的第一响应结果;
预处理模块,用于修改所述第一网络请求中与所述第一用户以及第二用户均相关的参数,以得到基于所述第二用户的身份信息访问所述目标地址的第二网络请求;
所述越权检测模块,还用于向所述服务器发送所述第二网络请求,并接收所述服务器响应所述第二网络请求而返回的第二响应结果;
所述越权检测模块,还用于当所述第一响应结果和所述第二响应结果之间的相似性满足相似性条件时,确定所述服务器中针对所述目标地址的接口存在漏洞。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010181109.5A CN111404937B (zh) | 2020-03-16 | 2020-03-16 | 一种服务器漏洞的检测方法和装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010181109.5A CN111404937B (zh) | 2020-03-16 | 2020-03-16 | 一种服务器漏洞的检测方法和装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN111404937A true CN111404937A (zh) | 2020-07-10 |
| CN111404937B CN111404937B (zh) | 2021-12-10 |
Family
ID=71413420
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202010181109.5A Active CN111404937B (zh) | 2020-03-16 | 2020-03-16 | 一种服务器漏洞的检测方法和装置 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN111404937B (zh) |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112491807A (zh) * | 2020-11-05 | 2021-03-12 | 杭州孝道科技有限公司 | 基于交互式应用检测技术的水平越权漏洞检测方法 |
| CN113704770A (zh) * | 2021-08-27 | 2021-11-26 | 北京天融信网络安全技术有限公司 | 一种漏洞的验证方法、装置、设备及介质 |
| CN114238822A (zh) * | 2021-11-23 | 2022-03-25 | 深圳前海微众银行股份有限公司 | 一种Web服务设备的识别方法及装置 |
| CN114491518A (zh) * | 2022-01-27 | 2022-05-13 | 中国农业银行股份有限公司 | 一种越权访问的检测方法、装置、系统及介质 |
| CN115378655A (zh) * | 2022-07-26 | 2022-11-22 | 北京奇艺世纪科技有限公司 | 漏洞检测方法及装置 |
| CN116132120A (zh) * | 2022-12-27 | 2023-05-16 | 奇安信科技集团股份有限公司 | 一种接口检测方法及装置 |
| CN117040801A (zh) * | 2023-07-14 | 2023-11-10 | 华能信息技术有限公司 | 一种基于web中间件的漏洞检测方法 |
Citations (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20080072322A1 (en) * | 2006-09-01 | 2008-03-20 | Kowsik Guruswamy | Reconfigurable Message-Delivery Preconditions for Delivering Attacks to Analyze the Security of Networked Systems |
| CN101867473A (zh) * | 2010-01-27 | 2010-10-20 | 南京大学 | 抗阻塞攻击的共享媒体终端连接建立方法和接入认证系统 |
| US20130236046A1 (en) * | 2012-03-09 | 2013-09-12 | Infosys Limited | Method, system, and computer-readable medium for detecting leakage of a video |
| CN105743869A (zh) * | 2014-12-12 | 2016-07-06 | 阿里巴巴集团控股有限公司 | Csrf攻击防范方法、网站服务器及浏览器 |
| CN107294919A (zh) * | 2016-03-31 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种水平权限漏洞的检测方法及装置 |
| CN107566537A (zh) * | 2017-10-30 | 2018-01-09 | 郑州云海信息技术有限公司 | 一种web应用纵向越权漏洞的半自动检测方法及系统 |
| CN107577949A (zh) * | 2017-09-05 | 2018-01-12 | 郑州云海信息技术有限公司 | 一种Web越权漏洞检测方法与系统 |
| CN107911813A (zh) * | 2017-11-24 | 2018-04-13 | 中国科学院信息工程研究所 | 透明模式的移动用户身份管理方法及系统 |
| CN109657472A (zh) * | 2018-10-11 | 2019-04-19 | 平安科技(深圳)有限公司 | Sql注入漏洞检测方法、装置、设备及可读存储介质 |
| CN110113366A (zh) * | 2019-06-24 | 2019-08-09 | 深圳前海微众银行股份有限公司 | 一种csrf漏洞的检测方法及装置 |
| CN110674507A (zh) * | 2019-09-19 | 2020-01-10 | 深圳开源互联网安全技术有限公司 | 检测web应用越权的方法及系统 |
-
2020
- 2020-03-16 CN CN202010181109.5A patent/CN111404937B/zh active Active
Patent Citations (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20080072322A1 (en) * | 2006-09-01 | 2008-03-20 | Kowsik Guruswamy | Reconfigurable Message-Delivery Preconditions for Delivering Attacks to Analyze the Security of Networked Systems |
| CN101867473A (zh) * | 2010-01-27 | 2010-10-20 | 南京大学 | 抗阻塞攻击的共享媒体终端连接建立方法和接入认证系统 |
| US20130236046A1 (en) * | 2012-03-09 | 2013-09-12 | Infosys Limited | Method, system, and computer-readable medium for detecting leakage of a video |
| CN105743869A (zh) * | 2014-12-12 | 2016-07-06 | 阿里巴巴集团控股有限公司 | Csrf攻击防范方法、网站服务器及浏览器 |
| CN107294919A (zh) * | 2016-03-31 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种水平权限漏洞的检测方法及装置 |
| CN107577949A (zh) * | 2017-09-05 | 2018-01-12 | 郑州云海信息技术有限公司 | 一种Web越权漏洞检测方法与系统 |
| CN107566537A (zh) * | 2017-10-30 | 2018-01-09 | 郑州云海信息技术有限公司 | 一种web应用纵向越权漏洞的半自动检测方法及系统 |
| CN107911813A (zh) * | 2017-11-24 | 2018-04-13 | 中国科学院信息工程研究所 | 透明模式的移动用户身份管理方法及系统 |
| CN109657472A (zh) * | 2018-10-11 | 2019-04-19 | 平安科技(深圳)有限公司 | Sql注入漏洞检测方法、装置、设备及可读存储介质 |
| CN110113366A (zh) * | 2019-06-24 | 2019-08-09 | 深圳前海微众银行股份有限公司 | 一种csrf漏洞的检测方法及装置 |
| CN110674507A (zh) * | 2019-09-19 | 2020-01-10 | 深圳开源互联网安全技术有限公司 | 检测web应用越权的方法及系统 |
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112491807A (zh) * | 2020-11-05 | 2021-03-12 | 杭州孝道科技有限公司 | 基于交互式应用检测技术的水平越权漏洞检测方法 |
| CN113704770A (zh) * | 2021-08-27 | 2021-11-26 | 北京天融信网络安全技术有限公司 | 一种漏洞的验证方法、装置、设备及介质 |
| CN113704770B (zh) * | 2021-08-27 | 2023-12-08 | 北京天融信网络安全技术有限公司 | 一种漏洞的验证方法、装置、设备及介质 |
| CN114238822A (zh) * | 2021-11-23 | 2022-03-25 | 深圳前海微众银行股份有限公司 | 一种Web服务设备的识别方法及装置 |
| WO2023093017A1 (zh) * | 2021-11-23 | 2023-06-01 | 深圳前海微众银行股份有限公司 | 一种Web服务设备的识别方法及装置 |
| CN114491518A (zh) * | 2022-01-27 | 2022-05-13 | 中国农业银行股份有限公司 | 一种越权访问的检测方法、装置、系统及介质 |
| CN115378655A (zh) * | 2022-07-26 | 2022-11-22 | 北京奇艺世纪科技有限公司 | 漏洞检测方法及装置 |
| CN116132120A (zh) * | 2022-12-27 | 2023-05-16 | 奇安信科技集团股份有限公司 | 一种接口检测方法及装置 |
| CN117040801A (zh) * | 2023-07-14 | 2023-11-10 | 华能信息技术有限公司 | 一种基于web中间件的漏洞检测方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN111404937B (zh) | 2021-12-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN111404937B (zh) | 一种服务器漏洞的检测方法和装置 | |
| CN113098870B (zh) | 一种网络诈骗检测方法、装置、电子设备及存储介质 | |
| US10257199B2 (en) | Online privacy management system with enhanced automatic information detection | |
| CN110798472B (zh) | 数据泄露检测方法与装置 | |
| CN113489713B (zh) | 网络攻击的检测方法、装置、设备及存储介质 | |
| EP2748781B1 (en) | Multi-factor identity fingerprinting with user behavior | |
| CN107085549B (zh) | 故障信息生成的方法和装置 | |
| CN112416730A (zh) | 一种用户上网行为分析方法、装置、电子设备及存储介质 | |
| CN107733902A (zh) | 一种目标数据扩散过程的监控方法及装置 | |
| EP3961448A1 (en) | Method and system for detecting an infrastructure of malware or a cybercriminal | |
| CN113177205B (zh) | 一种恶意应用检测系统及方法 | |
| CN116015800B (zh) | 一种扫描器识别方法、装置、电子设备及存储介质 | |
| CN111314326A (zh) | Http漏洞扫描主机的确认方法、装置、设备及介质 | |
| CN114866296B (zh) | 入侵检测方法、装置、设备及可读存储介质 | |
| CN107786551B (zh) | 访问内网服务器的方法及控制访问内网服务器的装置 | |
| EP2973192A1 (en) | Online privacy management | |
| CN112148545B (zh) | 嵌入式系统的安全基线检测方法以及安全基线检测系统 | |
| CN117097571A (zh) | 一种网络传输敏感数据的检测方法、系统、装置及介质 | |
| CN115001724A (zh) | 网络威胁情报管理方法、装置、计算设备及计算机可读存储介质 | |
| CN111625700B (zh) | 防抓取的方法、装置、设备及计算机存储介质 | |
| CN112699369A (zh) | 一种通过栈回溯检测异常登录的方法及装置 | |
| CN115051867B (zh) | 一种非法外联行为的检测方法、装置、电子设备及介质 | |
| CN118802266A (zh) | Api安全防护方法、装置、电子设备及存储介质 | |
| CN116361587A (zh) | 攻击防护方法、装置、电子设备及存储介质 | |
| CN119110296A (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 |