您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页SSRF漏洞的检测方法及装置[发明专利]

SSRF漏洞的检测方法及装置[发明专利]

来源:华佗小知识
(19)中华人民共和国国家知识产权局

(12)发明专利申请

(10)申请公布号 CN 107347076 A(43)申请公布日 2017.11.14

(21)申请号 201710732152.4(22)申请日 2017.08.23

(71)申请人 杭州安恒信息技术有限公司

地址 310051 浙江省杭州市滨江区通和路

68号浙江中财大厦15层(72)发明人 王晓天 范渊 黄进 莫金友 (74)专利代理机构 北京超凡志成知识产权代理

事务所(普通合伙) 11371

代理人 王术兰(51)Int.Cl.

H04L 29/06(2006.01)H04L 29/12(2006.01)G06F 21/57(2013.01)

权利要求书2页 说明书9页 附图2页

(54)发明名称

SSRF漏洞的检测方法及装置

(57)摘要

本发明提供了一种SSRF漏洞的检测方法及装置,该检测方法包括:获取漏洞查询请求;向待检测URL链接所对应的服务器发送漏洞查询请求,并在查询到SSRF漏洞时,得到漏洞查询结果;向公网服务器的验证端口发送秘钥查询请求,以在公网服务器中查询是否存在漏洞查询结果;如果公网服务器根据秘钥查询请求返回的返回结果为第一预设结果,则确定待检测URL链接存在SSRF漏洞。本发明中提出了一种SSRF漏洞的检测方法,该方法能够检测出待检测URL链接是否存在SSRF漏洞,缓解了现有技术中无法对SSRF漏洞进行检测的技术问题。CN 107347076 ACN 107347076 A

权 利 要 求 书

1/2页

1.一种SSRF漏洞的检测方法,其特征在于,应用于用户终端,所述方法包括:获取漏洞查询请求,其中,所述漏洞查询请求中包括:待检测URL链接,与所述待检测URL链接相对应的随机字符串,公网服务器的域名;

向所述待检测URL链接所对应的服务器发送所述漏洞查询请求,并在查询到所述SSRF漏洞时,得到漏洞查询结果,其中,所述漏洞查询结果记录于所述公网服务器中;

向所述公网服务器的验证端口发送秘钥查询请求,以在所述公网服务器中查询是否存在所述漏洞查询结果,其中,所述秘钥查询请求根据所述随机字符串生成;

如果所述公网服务器根据所述秘钥查询请求返回的返回结果为第一预设结果,则确定所述待检测URL链接存在所述SSRF漏洞。

2.根据权利要求1所述的方法,其特征在于,所述漏洞查询结果为带有用户终端网络地址和所述随机字符串的访问记录,向所述公网服务器的验证端口发送秘钥查询请求,以在所述公网服务器中查询是否存在所述漏洞查询结果:

向所述公网服务器的验证端口发送所述秘钥查询请求,以在所述公网服务器中查询是否存在与所述秘钥查询请求中的所述随机字符串的信息相对应的访问记录。

3.根据权利要求1所述的方法,其特征在于,所述方法还包括:

如果所述公网服务器根据所述秘钥查询请求返回的返回结果为第二预设结果,则确定所述待检测URL链接不存在SSRF漏洞。

4.根据权利要求1所述的方法,其特征在于,获取漏洞查询请求包括:根据用户的触发操作获取所述待检测URL链接的参数键值对,其中,所述参数键值对用于表征所述待检测URL链接的关键特征;

将所述参数键值对与字典白名单中的参数键进行匹配,其中,所述字典白名单中的参数键为用户或研发人员根据经验总结的出问题概率大于预设概率的参数键,所述参数键的数量为多个;

如果所述参数键值对与所述字典白名单中的参数键匹配,则生成所述随机字符串;在所述待检测URL链接的参数键值对后添加目标信息,得到所述漏洞查询请求,其中,所述目标信息包括:所述随机字符串和预先搭建的所述公网服务器的域名。

5.根据权利要求4所述的方法,其特征在于,所述方法还包括:如果所述参数键值对与所述字典白名单中的参数键不匹配,则继续检测下一个待检测URL链接。

6.根据权利要求4所述的方法,其特征在于,根据用户的触发操作获取所述待检测URL链接的参数键值对包括:

根据用户的触发操作获取所述待检测URL链接;对所述待检测URL链接进行解析,得到待处理的参数键值对;对所述待处理的参数键值对进行转化处理,得到所述待检测URL链接的参数键值对,其中,所述转化处理为将所述待处理的参数键值对中的大写字母转换为小写字母。

7.根据权利要求1所述的方法,其特征在于,在向所述公网服务器的验证端口发送秘钥查询请求之前,所述方法还包括:

对所述随机字符串拼接预设秘钥,得到初始查询秘钥;对所述初始查询秘钥进行MD5加密处理,得到加密查询秘钥;

2

CN 107347076 A

权 利 要 求 书

2/2页

将所述加密查询秘钥置于http请求头信息中,以得到所述秘钥查询请求。8.一种SSRF漏洞的检测装置,其特征在于,应用于用户终端,所述装置包括:获取模块,用于获取漏洞查询请求,其中,所述漏洞查询请求中包括:待检测URL链接,与所述待检测URL链接相对应的随机字符串,公网服务器的域名;

第一发送模块,用于向所述待检测URL链接所对应的服务器发送所述漏洞查询请求,并在查询到所述SSRF漏洞时,得到漏洞查询结果,其中,所述漏洞查询结果记录于所述公网服务器中;

第二发送模块,用于向所述公网服务器的验证端口发送秘钥查询请求,以在所述公网服务器中查询是否存在所述漏洞查询结果,其中,所述秘钥查询请求根据所述随机字符串生成;

第一确定模块,如果所述公网服务器根据所述秘钥查询请求返回的返回结果为第一预设结果,则确定所述待检测URL链接存在所述SSRF漏洞。

9.根据权利要求8所述的装置,其特征在于,所述漏洞查询结果为带有用户终端网络地址和所述随机字符串的访问记录,向所述公网服务器的验证端口发送秘钥查询请求,以在所述公网服务器中查询是否存在所述漏洞查询结果:

向所述公网服务器的验证端口发送所述秘钥查询请求,以在所述公网服务器中查询是否存在与所述秘钥查询请求中的所述随机字符串的信息相对应的访问记录。

10.根据权利要求8所述的装置,其特征在于,所述装置还包括:第二确定模块,如果所述公网服务器根据所述秘钥查询请求返回的返回结果为第二预设结果,则确定所述待检测URL链接不存在SSRF漏洞。

3

CN 107347076 A

说 明 书

SSRF漏洞的检测方法及装置

1/9页

技术领域

[0001]本发明涉及网页安全检测的技术领域,尤其是涉及一种SSRF漏洞的检测方法及装置。

背景技术

[0002]SSRF(服务器端请求伪造)漏洞是一种新型的web应用漏洞,与CSRF(跨站请求伪造)漏洞不同,它是利用服务端向其他内服务器发送请求。这种漏洞发生在有些web应用需要通过客户端指定url从其他服务器获取数据,比如通过url地址分享网页内容、远程图片加载或下载、转码服务、在线翻译等功能。当web应用提供的这些功能未对提交的url参数值做严格的,如请求协议、内外访问等,攻击者很可能会利用web应用这种缺陷,突破无法访问内网的,探测内网架构、进而攻击内网脆弱系统等。[0003]目前公开的相关技术中,还没有一种能够对SSRF漏洞进行检测的方法,也就是无法获知待检测网页入口(即,待检测URL链接)是否存在SSRF漏洞。发明内容

[0004]有鉴于此,本发明的目的在于提供一种SSRF漏洞的检测方法及装置,以缓解现有技术中无法对SSRF漏洞进行检测的技术问题。[0005]第一方面,本发明实施例提供了一种SSRF漏洞的检测方法,应用于用户终端,所述方法包括:

[0006]获取漏洞查询请求,其中,所述漏洞查询请求中包括:待检测URL链接,与所述待检测URL链接相对应的随机字符串,公网服务器的域名;

[0007]向所述待检测URL链接所对应的服务器发送所述漏洞查询请求,并在查询到所述SSRF漏洞时,得到漏洞查询结果,其中,所述漏洞查询结果记录于所述公网服务器中;[0008]向所述公网服务器的验证端口发送秘钥查询请求,以在所述公网服务器中查询是否存在所述漏洞查询结果,其中,所述秘钥查询请求根据所述随机字符串生成;

[0009]如果所述公网服务器根据所述秘钥查询请求返回的返回结果为第一预设结果,则确定所述待检测URL链接存在所述SSRF漏洞。[0010]结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述漏洞查询结果为带有用户终端网络地址和所述随机字符串的访问记录,向所述公网服务器的验证端口发送秘钥查询请求,以在所述公网服务器中查询是否存在所述漏洞查询结果:

[0011]向所述公网服务器的验证端口发送所述秘钥查询请求,以在所述公网服务器中查询是否存在与所述秘钥查询请求中的所述随机字符串的信息相对应的访问记录。[0012]结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述方法还包括:

[0013]如果所述公网服务器根据所述秘钥查询请求返回的返回结果为第二预设结果,则

4

CN 107347076 A

说 明 书

2/9页

确定所述待检测URL链接不存在SSRF漏洞。[0014]结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,获取漏洞查询请求包括:

[0015]根据用户的触发操作获取所述待检测URL链接的参数键值对,其中,所述参数键值对用于表征所述待检测URL链接的关键特征;

[0016]将所述参数键值对与字典白名单中的参数键进行匹配,其中,所述字典白名单中的参数键为用户或研发人员根据经验总结的出问题概率大于预设概率的参数键,所述参数键的数量为多个;

[0017]如果所述参数键值对与所述字典白名单中的参数键匹配,则生成所述随机字符串;

[0018]在所述待检测URL链接的参数键值对后添加目标信息,得到所述漏洞查询请求,其中,所述目标信息包括:所述随机字符串和预先搭建的所述公网服务器的域名。[0019]结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述方法还包括:

[0020]如果所述参数键值对与所述字典白名单中的参数键不匹配,则继续检测下一个待检测URL链接。

[0021]结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,其中,根据用户的触发操作获取所述待检测URL链接的参数键值对包括:[0022]根据用户的触发操作获取所述待检测URL链接;[0023]对所述待检测URL链接进行解析,得到待处理的参数键值对;[0024]对所述待处理的参数键值对进行转化处理,得到所述待检测URL链接的参数键值对,其中,所述转化处理为将所述待处理的参数键值对中的大写字母转换为小写字母。[0025]结合第一方面,本发明实施例提供了第一方面的第六种可能的实施方式,其中,在向所述公网服务器的验证端口发送秘钥查询请求之前,所述方法还包括:[0026]对所述随机字符串拼接预设秘钥,得到初始查询秘钥;[0027]对所述初始查询秘钥进行MD5加密处理,得到加密查询秘钥;[0028]将所述加密查询秘钥置于http请求头信息中,以得到所述秘钥查询请求。[0029]第二方面,本发明实施例还提供了一种SSRF漏洞的检测装置,应用于用户终端,所述装置包括:

[0030]获取模块,用于获取漏洞查询请求,其中,所述漏洞查询请求中包括:待检测URL链接,与所述待检测URL链接相对应的随机字符串,公网服务器的域名;[0031]第一发送模块,用于向所述待检测URL链接所对应的服务器发送所述漏洞查询请求,并在查询到所述SSRF漏洞时,得到漏洞查询结果,其中,所述漏洞查询结果记录于所述公网服务器中;

[0032]第二发送模块,用于向所述公网服务器的验证端口发送秘钥查询请求,以在所述公网服务器中查询是否存在所述漏洞查询结果,其中,所述秘钥查询请求根据所述随机字符串生成;[0033]第一确定模块,如果所述公网服务器根据所述秘钥查询请求返回的返回结果为第一预设结果,则确定所述待检测URL链接存在所述SSRF漏洞。

5

CN 107347076 A[0034]

说 明 书

3/9页

结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,所

述漏洞查询结果为带有用户终端网络地址和所述随机字符串的访问记录,向所述公网服务器的验证端口发送秘钥查询请求,以在所述公网服务器中查询是否存在所述漏洞查询结果:

[0035]向所述公网服务器的验证端口发送所述秘钥查询请求,以在所述公网服务器中查询是否存在与所述秘钥查询请求中的所述随机字符串的信息相对应的访问记录。[0036]结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,其中,所述装置还包括:[0037]第二确定模块,如果所述公网服务器根据所述秘钥查询请求返回的返回结果为第二预设结果,则确定所述待检测URL链接不存在SSRF漏洞。[0038]本发明实施例带来了以下有益效果:本发明实施例提供了一种SSRF漏洞的检测方法及装置,该检测方法包括:获取漏洞查询请求,其中,漏洞查询请求中包括:待检测URL链接,与待检测URL链接相对应的随机字符串,公网服务器的域名;向待检测URL链接所对应的服务器发送漏洞查询请求,并在查询到SSRF漏洞时,得到漏洞查询结果,其中,漏洞查询结果记录于公网服务器中;向公网服务器的验证端口发送秘钥查询请求,以在公网服务器中查询是否存在漏洞查询结果,其中,秘钥查询请求根据随机字符串生成;如果公网服务器根据秘钥查询请求返回的返回结果为第一预设结果,则确定待检测URL链接存在SSRF漏洞。[0039]在现有的相关技术中,还没有一种能够对SSRF漏洞进行检测的方法,用户无法获知网页入口是否存在SSRF漏洞。在本发明的SSRF漏洞的检测方法中,先获取漏洞查询请求,该漏洞查询请求中包括:待检测URL链接,与待检测URL链接相对应的随机字符串和公网服务器的域名,然后,向待检测URL链接所对应的服务器发送该漏洞查询请求,当查询到SSRF漏洞时,将漏洞查询结果记录于公网服务器中,进而,向公网服务器的验证端口发送秘钥查询请求,以在公网服务器中查询是否存在漏洞查询结果,如果返回的返回结果为第一预设结果,则确定待检测URL链接存在SSRF漏洞。本发明中提出了一种SSRF漏洞的检测方法,该方法能够检测出待检测URL链接是否存在SSRF漏洞,缓解了现有技术中无法对SSRF漏洞进行检测的技术问题。并且,由于公网服务器的存在,本发明中的SSRF漏洞的检测方法无需使用枚举IP地址的方式发送大量探测请求包,省时省力,提高了检测效率。[0040]本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。[0041]为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。附图说明

[0042]为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

[0043]图1为本发明实施例提供的一种SSRF漏洞的检测方法的流程图;

6

CN 107347076 A[0044]

说 明 书

4/9页

图2为本发明实施例提供的获取漏洞查询请求的流程图;

[0045]图3为本发明实施例提供的根据用户的触发操作获取待检测URL链接的参数键值对的流程图;

[0046]图4为本发明实施例提供的一种SSRF漏洞的检测装置的结构示意图。[0047]图标:

[0048]11-获取模块;12-第一发送模块;13-第二发送模块;14-第一确定模块。具体实施方式

[0049]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[0050]为便于对本实施例进行理解,首先对本发明实施例所公开的一种SSRF漏洞的检测方法进行详细介绍。[0051]实施例一:

[0052]一种SSRF漏洞的检测方法,参考图1,应用于用户终端,该方法包括:[0053]S101、获取漏洞查询请求,其中,漏洞查询请求中包括:待检测URL链接,与待检测URL链接相对应的随机字符串,公网服务器的域名;[0054]在本发明实施例中,SSRF漏洞的检测方法具体为SSRF漏洞检测软件所执行的检测方法。用户在使用该SSRF漏洞检测软件时,在自身的电脑上安装该SSRF漏洞检测软件,安装完成后,用户输入待检测URL链接(即,待检测网页入口),也可以输入类似于baidu.com的站点,该SSRF漏洞检测软件内置爬虫,通过爬虫爬取baidu.com的所有待检测URL链接,进而,SSRF漏洞检测软件按照上述方法自动执行检测的过程。[0055]具体的,漏洞查询请求实质上是一个URL链接,其中,包括了待检测URL链接,与待检测URL链接相对应的随机字符串和公网服务器的域名。[0056]其中,公网服务器是开发者预先构建的,开发者在构建公网服务器时,先要申请一个域名,随后,开启泛解析的域名服务,然后,在公网服务器上添加脚本,使得公网服务器在存在任何请求时,都会记录请求所对应的用户终端的网络地址以及请求的前缀(在本发明实施例中,请求的前缀为随机字符串),该用户终端的网络地址以及请求的前缀为访问记录的一部分。

[0057]下文中再对漏洞查询请求进行举例说明。[0058]S102、向待检测URL链接所对应的服务器发送漏洞查询请求,并在查询到SSRF漏洞时,得到漏洞查询结果,其中,漏洞查询结果记录于公网服务器中;[0059]在得到漏洞查询请求后,再向待检测URL链接所对应的服务器发送漏洞查询请求,当待检测URL链接存在SSRF漏洞时,该漏洞查询请求会进一步到达公网服务器,这样,公网服务器就会产生对应于该请求的访问记录,其中,访问记录中包括用户终端的网络地址以及请求的前缀的信息。[0060]所以,上述的漏洞查询结果具体可以为带有用户终端网络地址和随机字符串的访问记录,当然,上述的漏洞查询结果也可以为其它形式的结果,并不一定局限于访问记录,

7

CN 107347076 A

说 明 书

5/9页

也就是可以以其他的形式表现,本发明实施例对其不做具体。[0061]S103、向公网服务器的验证端口发送秘钥查询请求,以在公网服务器中查询是否存在漏洞查询结果,其中,秘钥查询请求根据随机字符串生成。

[0062]在向待检测URL链接所对应的服务器发送漏洞查询请求后,该请求如果也到达了公网服务器(说明待检测URL链接存在SSRF漏洞),公网服务器知道,而用户并不知道,所以需要SSRF漏洞检测软件向公网服务器的验证端口发送秘钥查询请求,以在公网服务器中查询是否存在漏洞查询结果,也就是,是否存在对应的访问记录。[0063]具体的,验证端口为公网服务器的API接口。[00]S104、如果公网服务器根据秘钥查询请求返回的返回结果为第一预设结果,则确定待检测URL链接存在SSRF漏洞。

[0065]向公网服务器的验证端口发送秘钥查询请求后,公网服务器会根据秘钥查询请求返回一个返回结果,如果返回结果为第一预设结果,也就是,漏洞查询请求也到达了公网服务器,公网服务器中有对应的访问记录,那么,确定出待检测URL链接存在SSRF漏洞。这样,用户根据返回结果也就知道了待检测URL链接是否存在SSRF漏洞的情况。[0066]具体的,在本发明实施例中,该第一预设结果为1,也可以为其它的表现形式,比如,第一预设结果为存在SSRF漏洞等,本发明实施例对其不做具体。上述步骤S101至步骤S104的执行主体具体为SSRF漏洞检测软件,该检测软件运行在用户终端。[0067]在现有的相关技术中,还没有一种能够对SSRF漏洞进行检测的方法,用户无法获知网页入口是否存在SSRF漏洞。在本发明的SSRF漏洞的检测方法中,先获取漏洞查询请求,该漏洞查询请求中包括:待检测URL链接,与待检测URL链接相对应的随机字符串和公网服务器的域名,然后,向待检测URL链接所对应的服务器发送该漏洞查询请求,当查询到SSRF漏洞时,将漏洞查询结果记录于公网服务器中,进而,向公网服务器的验证端口发送秘钥查询请求,以在公网服务器中查询是否存在漏洞查询结果,如果返回的返回结果为第一预设结果,则确定待检测URL链接存在SSRF漏洞。本发明中提出了一种SSRF漏洞的检测方法,该方法能够检测出待检测URL链接是否存在SSRF漏洞,缓解了现有技术中无法对SSRF漏洞进行检测的技术问题。并且,由于公网服务器的存在,本发明中的SSRF漏洞的检测方法无需使用枚举IP地址的方式发送大量探测请求包,省时省力,提高了检测效率。

[0068]上述步骤S101至步骤S104中的内容中的漏洞查询结果为概括得到的词(即,上位得到的),在本发明实施例中,可选地,漏洞查询结果为带有用户终端网络地址和随机字符串的访问记录,[0069]所以,向公网服务器的验证端口发送秘钥查询请求,以在公网服务器中查询是否存在漏洞查询结果具体为:

[0070]向公网服务器的验证端口发送秘钥查询请求,以在公网服务器中查询是否存在与秘钥查询请求中的随机字符串的信息相对应的访问记录。

[0071]在步骤S104中只介绍了返回结果为第一预设结果的情况,下面进一步介绍另外一种情况。可选地,该方法还包括:

[0072]如果公网服务器根据秘钥查询请求返回的返回结果为第二预设结果,则确定待检测URL链接不存在SSRF漏洞。

[0073]公网服务器会根据秘钥查询请求返回一个返回结果,如果返回结果为第二预设结

8

CN 107347076 A

说 明 书

6/9页

果,也就是,漏洞查询请求未到达公网服务器,公网服务器中没有对应的访问记录,那么,确定出待检测URL链接不存在SSRF漏洞。这样,用户根据返回结果也就知道了待检测URL链接是否存在SSRF漏洞的情况。

[0074]上述过程从整体上描述了SSRF漏洞的检测方法,下面对其中涉及到的具体过程进行详细描述。

[0075]获取漏洞查询请求的方法有多种,在一个可选的实时方式中,参考图2,获取漏洞查询请求的具体过程描述如下:[0076]S201、根据用户的触发操作获取待检测URL链接的参数键值对,其中,参数键值对用于表征待检测URL链接的关键特征;[0077]在获取漏洞查询请求时,先获取待检测URL链接的参数键值对。下面举例进行说明:

[0078]如果待检测URL链接为http://www.test.com/ssrf.php?FileName=1.jpg,获取得到的参数键值对即为filename。[0079]S202、将参数键值对与字典白名单中的参数键进行匹配,其中,字典白名单中的参数键为用户或研发人员根据经验总结的出问题概率大于预设概率的参数键,参数键的数量为多个;

[0080]在得到待检测URL链接的参数键值对后,就能够将参数键值对与字典白名单中的参数键进行匹配。字典白名单中的参数键为用户或研发人员根据经验总结的出问题概率大于预设概率的参数键,具体的,字典白名单中的参数键可以为研发人员预先写入SSRF漏洞检测软件中的,这样,SSRF漏洞检测软件中自带字典白名单;字典白名单中的参数键也可以为用户在SSRF漏洞检测软件中输入待检测URL链接前,用户自定义的,本发明实施例对其不做具体。

[0081]下面对字典白名单中的参数键进行举例说明:形如dict=[url,href,redirect,location,message,operator,file,name,src,pic,path]等等。[0082]步骤S201中的待检测URL链接为:

[0083]http://www.test.com/ssrf.php?FileName=1.jpg,其中的参数键值对为filename,也就是将filename与字典白名单中的url,href,redirect,location,message,operator,file,name,src,pic,path进行匹配。[0084]S203、如果参数键值对与字典白名单中的参数键匹配,则生成随机字符串;[0085]显然,该filename包含file,也就是该参数键值对filename与字典白名单中的参数键file匹配,那么,SSRF漏洞检测软件就会生成随机字符串,该随机字符串是唯一不重复的随机字符串,且该随机字符串为大位随机字符串,所谓的大位是指该随机字符串的位数大于10。

[0086]S204、在待检测URL链接的参数键值对后添加目标信息,得到漏洞查询请求,其中,目标信息包括:随机字符串和预先搭建的公网服务器的域名。[0087]在得到随机字符串后,在待检测URL链接的参数键值对后添加随机字符串和预先搭建的公网服务器的域名,就能够得到漏洞查询请求。[0088]再例如,如果待检测URL链接为http://www.baidu.com/xxx.php?FileName=1.jpg,其中的参数键值对filename与字典白名单中的参数键file匹配,那么,生成随机字

9

CN 107347076 A

说 明 书

7/9页

符串,如test1234567,事先建立的公网服务器的域名为ssrf.com,那么,最终得到的漏洞查询请求为http://www.baidu.com/xxx.php?FileName=http://test1234567.ssrf.com。

[00]需要说明的是,发送该请求时,实际是向baidu.com对应的服务器发送的请求,并不一定到达公网服务器,只有当待检测URL链接http://www.baidu.com/xxx.php?FileName=1.jpg存在SSRF漏洞时,用户终端才会向公网服务器发送http://test1234567.ssrf.com请求,如果不存在SSRF漏洞,公网服务器也不会收到test1234567.ssrf.com的请求。[0090]步骤S203中只描述了参数键值对与字典白名单中的参数键匹配的情况,如果参数键值对与字典白名单中的参数键不匹配,则继续检测下一个待检测URL链接。这样,也减少了检测的次数,提高了检测效率。

[0091]上述步骤S201中根据用户的触发操作获取待检测URL链接的参数键值对的方式有多种,可选地,参考图3,根据用户的触发操作获取待检测URL链接的参数键值对的过程描述如下:

[0092]S301、根据用户的触发操作获取待检测URL链接;

[0093]该过程也就是步骤S101中描述的用户在SSRF漏洞检测软件中输入待检测URL链接的过程。

[0094]S302、对待检测URL链接进行解析,得到待处理的参数键值对;[0095]在SSRF漏洞检测软件中存在了待检测URL链接后,SSRF漏洞检测软件就会对待检测URL链接进行解析。[0096]例如:待检测URL链接为http://www.test.com/ssrf.php?FileName=1.jpg,对其进行解析得到待处理的参数键值对FileName。[0097]S303、对待处理的参数键值对进行转化处理,得到待检测URL链接的参数键值对,其中,转化处理为将待处理的参数键值对中的大写字母转换为小写字母。[0098]在得到待处理的参数键值对FileName后,对该待处理的参数键值对进行转化处理,也就是将待处理的参数键值对中的大写字母转换为小写字母,最终得到待检测URL链接的参数键值对—filename。之所以要进行转化处理是因为字典白名单中的参数键都为小写字母形式的参数键,为了统一,以进行后续的匹配,所以需要进行转化处理。[0099]在向公网服务器的验证端口发送秘钥查询请求之前,先要得到秘钥查询请求,可选地,获取秘钥查询请求的过程包括:[0100]对随机字符串拼接预设秘钥,得到初始查询秘钥;[0101]例如:步骤S204中的随机字符串为test1234567,在该随机字符串前面拼接预设密钥(如:anweijing),得到anweijingtest1234567,该预设密钥为预先设置的,本发明实施例对其不做具体。得到的anweijingtest1234567即为初始查询秘钥。[0102]对初始查询秘钥进行MD5加密处理,得到加密查询秘钥;[0103]在得到初始查询密钥后,对该初始查询密钥进行MD5加密运算,得到加密查询密钥。

[0104]将加密查询秘钥置于http请求头信息中,以得到秘钥查询请求。[0105]在得到加密查询密钥后,将该加密查询密钥置于标头(即,header)的头信息中,就能得到秘钥查询请求。

10

CN 107347076 A[0106]

说 明 书

8/9页

实施例二:

[0107]一种SSRF漏洞的检测装置,参考图4,应用于用户终端,该装置包括:[0108]获取模块11,用于获取漏洞查询请求,其中,漏洞查询请求中包括:待检测URL链接,与待检测URL链接相对应的随机字符串,公网服务器的域名;[0109]第一发送模块12,用于向待检测URL链接所对应的服务器发送漏洞查询请求,并在查询到SSRF漏洞时,得到漏洞查询结果,其中,漏洞查询结果记录于公网服务器中;[0110]第二发送模块13,用于向公网服务器的验证端口发送秘钥查询请求,以在公网服务器中查询是否存在漏洞查询结果,其中,秘钥查询请求根据随机字符串生成;[0111]第一确定模块14,如果公网服务器根据秘钥查询请求返回的返回结果为第一预设结果,则确定待检测URL链接存在SSRF漏洞。[0112]在本发明的SSRF漏洞的检测装置中,先获取漏洞查询请求,该漏洞查询请求中包括:待检测URL链接,与待检测URL链接相对应的随机字符串和公网服务器的域名,然后,向待检测URL链接所对应的服务器发送该漏洞查询请求,当查询到SSRF漏洞时,将漏洞查询结果记录于公网服务器中,进而,向公网服务器的验证端口发送秘钥查询请求,以在公网服务器中查询是否存在漏洞查询结果,如果返回的返回结果为第一预设结果,则确定待检测URL链接存在SSRF漏洞。本发明中提出了一种SSRF漏洞的检测装置,该装置能够检测出待检测URL链接是否存在SSRF漏洞,缓解了现有技术中无法对SSRF漏洞进行检测的技术问题。并且,由于公网服务器的存在,本发明中的SSRF漏洞的检测装置无需使用枚举IP地址的方式发送大量探测请求包,省时省力,提高了检测效率。[0113]可选地,漏洞查询结果为带有用户终端网络地址和随机字符串的访问记录,向公网服务器的验证端口发送秘钥查询请求,以在公网服务器中查询是否存在漏洞查询结果:[0114]向公网服务器的验证端口发送秘钥查询请求,以在公网服务器中查询是否存在与秘钥查询请求中的随机字符串的信息相对应的访问记录。[0115]可选地,该装置还包括:[0116]第二确定模块,如果公网服务器根据秘钥查询请求返回的返回结果为第二预设结果,则确定待检测URL链接不存在SSRF漏洞。[0117]可选地,获取模块包括:[0118]获取单元,用于根据用户的触发操作获取待检测URL链接的参数键值对,其中,参数键值对用于表征待检测URL链接的关键特征;[0119]匹配单元,用于将参数键值对与字典白名单中的参数键进行匹配,其中,字典白名单中的参数键为用户或研发人员根据经验总结的出问题概率大于预设概率的参数键,参数键的数量为多个;[0120]生成单元,如果参数键值对与字典白名单中的参数键匹配,则生成随机字符串;[0121]添加单元,用于在待检测URL链接的参数键值对后添加目标信息,得到漏洞查询请求,其中,目标信息包括:随机字符串和预先搭建的公网服务器的域名。[0122]可选地,获取模块还包括:[0123]继续检测单元,如果参数键值对与字典白名单中的参数键不匹配,则继续检测下一个待检测URL链接。[0124]可选地,获取单元包括:

11

CN 107347076 A[0125]

说 明 书

9/9页

获取子单元,用于根据用户的触发操作获取待检测URL链接;

[0126]解析子单元,用于对待检测URL链接进行解析,得到待处理的参数键值对;[0127]转化处理子单元,用于对待处理的参数键值对进行转化处理,得到待检测URL链接的参数键值对,其中,转化处理为将待处理的参数键值对中的大写字母转换为小写字母。[0128]可选地,在第二发送模块之前,装置还包括:[0129]拼接模块,用于对随机字符串拼接预设秘钥,得到初始查询秘钥;[0130]加密处理模块,用于对初始查询秘钥进行MD5加密处理,得到加密查询秘钥;[0131]设置模块,用于将加密查询秘钥置于http请求头信息中,以得到秘钥查询请求。[0132]该实施例二中的内容可以参考上述实施例一中的内容,在此不再进行赘述。[0133]本发明实施例所提供的一种SSRF漏洞的检测方法及装置的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。[0134]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。[0135]另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

[0136]所述功能如果以软件功能单元的形式实现并作为的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。[0137]在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。[0138]最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

12

CN 107347076 A

说 明 书 附 图

1/2页

图1

图2

13

CN 107347076 A

说 明 书 附 图

2/2页

图3

图4

14

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务