一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

漏洞检测方法及装置与流程

2022-11-12 01:23:09 来源:中国专利 TAG:


1.本公开涉及计算机安全技术领域,尤其涉及漏洞检测方法及装置。


背景技术:

2.oauth最初是一种允许用户不重复注册账户,在第三方程序使用其在其他网站上已经存在的信息(如好友信息、照片等),又无需让此网站交出登录的凭据(账号和密码)或者授予完全控制权的一种开放授权标准。该标准通过其定义的三个方面:第三方应用、用户和oauth服务api认证服务器提供方,在其间进行授权的一系列交互工作,oauth授权流程图如图1所示。
3.基本的oauth使用常见于网站提供的sign with x(使用xxx登录) 功能。当前推荐使用的标准是2.0。与旧版本1.0相比,2.0在使用上更加简易,且支持多平台。但在关注开发者易用和对平台广泛的支持下,也让2.0 在使用上出现了比1.0更多的缺陷,现有技术并没有可靠的手段去检测oauth 2.0的漏洞。


技术实现要素:

4.为克服相关技术中存在的问题,本公开实施例提供漏洞检测方法及装置。所述技术方案如下:
5.根据本公开实施例的第一方面,提供一种漏洞检测方法,所述方法应用于oauth2.0版本,所述方法包括:
6.获取网站的网页信息,所述网页信息包括:登录页面的url和源码;
7.在根据所述网页信息包含第三方登录的特征时,获取登录接口信息包含的参数;所述参数包括:state参数,redirect_uri参数,隐藏式许可中的参数以及scope参数;
8.在检测所述参数满足预设要求时,确定所述网站存在oauth漏洞。
9.本公开的实施例提供的技术方案可以包括以下有益效果:获取网站的网页信息,所述网页信息包括:登录页面的url和源码;在根据网页信息包含第三方登录的特征时,获取登录接口信息包含的参数;参数包括:state参数, redirect_uri参数,隐藏式许可中的参数以及scope参数;在检测参数满足预设要求时,确定网站存在oauth漏洞。由于可以通过多维度的参数去验证 oauth2.0,以确定其中存在的漏洞,提升了漏洞检测的可靠性。
10.在一个实施例中,所述在检测所述参数满足预设要求时,确定所述网站存在oauth漏洞,包括:
11.若检测到存在state参数的缺失,或者,所述state参数使用了固定值,或者,未验证所述state参数,则确定所述网站存在oauth漏洞。
12.在一个实施例中,检测到未验证所述state参数,包括:
13.将所述第一验证指令和第二验证指令发送给服务器;所述第一验证指令为包含所述state参数的所述登录接口信息;所述第二验证指令为删除所述 state参数的所述登录接口信息;
14.若检测到所述服务器返回的与所述第一验证指令对应的第一响应结果和与所述第二验证指令对应的第二响应结果相同,则确定未验证所述state参数;
15.或者,
16.将所述第三验证指令和第四验证指令发送给服务器;所述第三验证指令为未修改所述登录接口信息中的所述state参数的所述登录接口信息;所述第四验证指令为修改所述登录接口信息中的所述state参数后的所述登录接口信息;
17.若检测到所述服务器返回的与所述第三验证指令对应的第三响应结果和与所述第四验证指令对应的第四响应结果相同,则确定未验证所述state参数。
18.在一个实施例中,所述在检测所述参数满足预设要求时,确定所述网站存在oauth漏洞,包括:
19.若检测到redirect_uri未做验证,或者,所述redirect_uri中存在重复重定向问题,或者,所述redirect_uri中的域名的字符被更改,确定所述网站存在 oauth漏洞。
20.在一个实施例中,所述检测到redirect_uri未做验证,包括:
21.检测所述登录接口信息中的所述redirect_uri与所述url对应的 redirect_uri是否相同;
22.若所述登录接口信息中的所述redirect_uri与所述url对应的redirect_uri 不相同,则确定所述登录接口信息中的所述redirect_uri未做验证。
23.在一个实施例中,所述检测到redirect_uri中存在重复重定向问题,包括:
24.将所述登录接口信息发送给服务器;
25.检测所述服务器反馈,或,传入的uri是否包含多个redirect_uri;
26.若包含,则确定所述redirect_uri中存在重复重定向问题。
27.在一个实施例中,所述在检测所述参数满足预设要求时,确定所述网站存在oauth漏洞,包括:
28.若检测到隐藏式许可的redirect_uri未做验证,或者,所述隐藏式许可的 redirect_uri中存在重复重定向问题,或者,所述隐藏式许可的redirect_uri中包括预设关键字;或者,所述隐藏式许可的url不是https对应的,确定所述网站存在oauth漏洞。
29.在一个实施例中,所述在检测所述参数满足预设要求时,确定所述网站存在oauth漏洞,包括:
30.若检测到所述登录接口信息中的scope未做验证,确定所述网站存在 oauth漏洞。
31.根据本公开实施例的第二方面,提供一种漏洞检测装置,所述装置应用于oauth2.0版本,所述装置包括:
32.第一获取模块,用于获取网站的网页信息,所述网页信息包括:登录页面的url和源码;
33.第二获取模块,用于在根据所述网页信息包含第三方登录的特征时,获取登录接口信息包含的参数;所述参数包括:state参数,redirect_uri参数,隐藏式许可中的参数以及scope参数;
34.第一确定模块,用于在检测所述参数满足预设要求时,确定所述网站存在oauth漏洞。
35.在一个实施中,第一确定模块,包括:
36.第一处理子模块,用于若检测到存在state参数的缺失,或者,所述state 参数使用了固定值,或者,未验证所述state参数,则确定所述网站存在oauth 漏洞。
37.在一个实施中,第一处理子模块包括:第一发送子单元和第一确定子模块:
38.第一发送子单元,用于将所述第一验证指令和第二验证指令发送给服务器;所述第一验证指令为包含所述state参数的所述登录接口信息;所述第二验证指令为删除所述state参数的所述登录接口信息;
39.第一确定子单元,用于若检测到所述服务器返回的与所述第一验证指令对应的第一响应结果和与所述第二验证指令对应的第二响应结果相同,则确定未验证所述state参数;
40.或者,
41.第一发送子单元,用于将所述第三验证指令和第四验证指令发送给服务器;所述第三验证指令为未修改所述登录接口信息中的所述state参数的所述登录接口信息;所述第四验证指令为修改所述登录接口信息中的所述state参数后的所述登录接口信息;
42.第一确定子单元,用于若检测到所述服务器返回的与所述第三验证指令对应的第三响应结果和与所述第四验证指令对应的第四响应结果相同,则确定未验证所述state参数。
43.在一个实施中,第一确定模块,包括:
44.第二处理子模块,用于若检测到redirect_uri未做验证,或者,所述 redirect_uri中存在重复重定向问题,或者,所述redirect_uri中的域名的字符被更改,确定所述网站存在oauth漏洞。
45.在一个实施中,第二处理子模块,包括:
46.第一检测子单元,用于检测所述登录接口信息中的所述redirect_uri与所述url对应的redirect_uri是否相同;
47.第二确定子单元,用于若所述登录接口信息中的所述redirect_uri与所述 url对应的redirect_uri不相同,则确定所述登录接口信息中的所述 redirect_uri未做验证。
48.在一个实施中,第二处理子模块,包括:
49.第二发送子单元,用于将所述登录接口信息发送给服务器;
50.第二检测子单元,用于检测所述服务器反馈,或,传入的uri是否包含多个redirect_uri;
51.第三确定子单元,用于若包含,则确定所述redirect_uri中存在重复重定向问题。
52.在一个实施中,第一确定模块,包括:
53.第三处理子模块,用于若检测到隐藏式许可的redirect_uri未做验证,或者,所述隐藏式许可的redirect_uri中存在重复重定向问题,或者,所述隐藏式许可的redirect_uri中包括预设关键字;或者,所述隐藏式许可的url不是https对应的,确定所述网站存在oauth漏洞。
54.在一个实施中,第一确定模块,包括:
55.第四处理子模块,用于若检测到所述登录接口信息中的scope未做验证,确定所述网站存在oauth漏洞。
56.根据本公开实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算
机指令,该指令被处理器执行时实现第一方面中任一项所述方法的步骤。
57.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
58.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
59.图1是根据一示例性实施例示出的漏洞检测方法的流程图。
60.图2是根据一示例性实施例示出的漏洞检测方法的流程图。
61.图3是根据一示例性实施例示出的漏洞检测方法的流程图。
62.图4是根据一示例性实施例示出的一种漏洞检测装置的框图。
63.图5是根据一示例性实施例示出的一种漏洞检测装置中第一确定模块的框图。
64.图6是根据一示例性实施例示出的一种漏洞检测装置中第一确定模块的框图。
65.图7是根据一示例性实施例示出的一种漏洞检测装置中第一确定模块的框图。
66.图8是根据一示例性实施例示出的一种漏洞检测装置中第一确定模块的框图。
67.图9是根据一示例性实施例示出的一种用于漏洞检测装置80的框图。
具体实施方式
68.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
69.图1是根据一示例性实施例示出的漏洞检测方法的流程图,如图1所示,所述方法应用于oauth2.0版本,该方法包括以下步骤s101-s103:
70.在步骤s101中,获取网站的网页信息,网页信息包括:登录页面的url 和源码。
71.具体的,对网站页面进行分析,获取登录页面的url及源码,确认网站的登录是否包含第三方登录的特征。
72.在步骤s102中,在根据网页信息包含第三方登录的特征时,获取登录接口信息包含的参数。
73.示例的,如登录接口信息为:
74.https://example.com/auth
75.?response_type=code
76.&client_id=3rd_website_clientid
77.&redirect_uri=https%3a%2f%2f3rd_website.com%2fcallback
78.&scope=username
79.&state=state_hash
80.且授权成功后的redirect_uri为:
81.https://3rd_website.com?code=code_str&state=state_str。
82.在步骤s103中,在检测参数满足预设要求时,确定网站存在oauth漏洞。所述参数
包括:state参数,redirect_uri参数,隐藏式许可中的参数以及 scope参数。
83.在一种可实现方式中,步骤s103,包括:
84.若检测到存在state参数的缺失,或者,state参数使用了固定值,或者,未验证state参数,则确定网站存在oauth漏洞。
85.其中,state参数的缺失,即去掉state:传入无state参数的构造链接,如下所示:
86.https://example.com/auth
87.?response_type=code
88.&client_id=3rd_website_clientid
89.&redirect_uri=https%3a%2f%2f3rd_website.com%2fcallback
90.&scope=username
91.其中,state参数使用了固定值,包括:state使用了固定值(或者,返回相同的state code),或者,多次请求使同一个state值。
92.其中,检测到未验证state参数,包括:state未验证:传和不传一个样,传相同的和传不同的一个样,具体的:
93.将第一验证指令和第二验证指令发送给服务器;第一验证指令为包含 state参数的登录接口信息;第二验证指令为删除state参数的登录接口信息;
94.若检测到服务器返回的与第一验证指令对应的第一响应结果和与第二验证指令对应的第二响应结果相同,则确定未验证state参数;
95.示例的,https://example.com/auth
96.?response_type=code
97.&client_id=3rd_website_clientid
98.&redirect_uri=https%3a%2f%2f3rd_website.com%2fcallback
99.&scope=username
100.&state=state_hash
101.和,
102.https://example.com/auth
103.?response_type=code
104.&client_id=3rd_website_clientid
105.&redirect_uri=https%3a%2f%2f3rd_website.com%2fcallback
106.&scope=username
107.输出的结果一致。
108.或者,
109.将第三验证指令和第四验证指令发送给服务器;第三验证指令为未修改登录接口信息中的state参数的登录接口信息;第四验证指令为修改登录接口信息中的state参数后的登录接口信息;
110.若检测到服务器返回的与第三验证指令对应的第三响应结果和与第四验证指令对应的第四响应结果相同,则确定未验证state参数。
111.示例的,https://example.com/auth
112.?response_type=code
113.&client_id=3rd_website_clientid
114.&redirect_uri=https%3a%2f%2f3rd_website.com%2fcallback
115.&scope=username
116.&state=state_hash
117.和,
118.https://example.com/auth
119.?response_type=code
120.&client_id=3rd_website_clientid
121.&redirect_uri=https%3a%2f%2f3rd_website.com%2fcallback
122.&scope=username
123.&state=state_11
124.输出的结果一致。
125.如果存在上述问题,则可以确认存在csrf跨站请求伪造问题,证明网站存在oauth存在漏洞。
126.在另一种可实现方式中,步骤s103,包括:
127.若检测到redirect_uri未做验证,或者,redirect_uri中存在重复重定向问题,或者,redirect_uri中的域名的字符被更改,确定网站存在oauth漏洞。
128.其中,检测到redirect_uri未做验证,如图2所示,包括以下步骤a1-a2:
129.a1、检测登录接口信息中的redirect_uri与url对应的redirect_uri是否相同;
130.a2、若登录接口信息中的redirect_uri与url对应的redirect_uri不相同,则确定登录接口信息中的redirect_uri未做验证。
131.例如:
132.redirect_uri为https://3rd_website.com?code=code_str&state=state_str。
133.那么,正确的redirect_uri为:3rd_website.com;
134.而返回的redirect_uri非3rd_website.com而是erd_website.com,便说明 redirect_uri未做验证。
135.其中,检测到redirect_uri中存在重复重定向问题,如图3所示,包括 b1-b3:
136.b1、将登录接口信息发送给服务器;
137.b2、检测服务器反馈,或,传入的uri是否包含多个redirect_uri;
138.b3、若包含,则确定redirect_uri中存在重复重定向问题。
139.具体的,测试redirect_uri中返回的uri是否包含多个redirect_uri,如果包含多个redirect_uri,便确定存在重复重定向问题。
140.例如:
141.redirect_uri为https://3rd_website.com?code=code_str&state=state_str。
142.而返回的为:
143.https://3rd_website.com[redirect_uri=3rd_website.com]?code=code_str&state=state_str。
[0144]
其中,redirect_uri中的域名的字符被更改包括:用正则匹配不严谨导致的相似域名;
[0145]
继续按照上述的例子:
[0146]
如redirect_uri非3rd_website.com而是3rd_website.com.cn。
[0147]
在一种可实现方式中,步骤s103,包括:
[0148]
若检测到隐藏式许可的redirect_uri未做验证,或者,隐藏式许可的 redirect_uri中存在重复重定向问题,或者,隐藏式许可的redirect_uri中的域名的字符被更改;或者,隐藏式许可的url不是https对应的,确定网站存在oauth漏洞。
[0149]
以下首先介绍隐藏式许可:
[0150]
首先,用户请求应用,应用向授权服务器请求下面链接。授权服务器验证该请求,确保所有需要的参数都已提交且有效。如果请求有效,授权服务器对资源所有者进身份验证并获得授权决定(通过询问资源所有者或通过经由其他方式确定批准)。
[0151]
https://oauh_server/oauth/authorize?
[0152]
response_type=token&
[0153]
client_id=client_id&
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(链接1)
[0154]
redirect_uri=callback_url&
[0155]
scope=read
[0156]
然后,用户授权;
[0157]
最后,用户给予授权,#授权服务器跳转到callback_url,并携带 access_token。
[0158]
https://callback_url/callback#access_token=access_token
[0159]
其中,检测到隐藏式许可的redirect_uri未做验证,包括:
[0160]
callback_url为恶意站点,在调用(链接1)时,修改 callback_url为恶意网站,直接获得access_token,由于未验证 redirect_uri,在有效期内,可以任意使用access_token的用户信息。
[0161]
其中,检测到隐藏式许可的redirect_uri中存在重复重定向问题,包括:
[0162]
callback_url多层嵌套,callback_url跳转完后再次跳转,导致跳转至恶意网站,造成信息泄漏。
[0163]
其中,检测到隐藏式许可的redirect_uri中的域名的字符被更改,包括:callback_url校验不严谨造成相似域名,导致终于信息流向其他网站。
[0164]
其中,由于隐藏式许可的使用场景是没有后端的(即上图中6/7/8/9),无法使用授权码(即code)进行校验,有些开发者直接将#后面的内容写在了授权服务的页面或者cookie中,通过第一次请求获取到#后面的值,查看客户端是否在页面或者cookie写死access_token的值,如果客户端在页面或者cookie写死access_token的值,同样,确定存在漏洞。
[0165]
其中,隐藏式许可的url不是https对应的,包括:非https的oauth。
[0166]
因为http协定是明文传输,如用户接入一个不安全的网络,恶意用户使用抓包工具可以直接获取到信息,即只要是http非https的,就认为不安全。
[0167]
在一种可实现方式中,步骤s103,在检测参数满足预设要求时,确定网站存在oauth漏洞,包括:
[0168]
若检测到登录接口信息中的scope未做验证,确定网站存在oauth漏洞。
[0169]
其中,检测到登录接口信息中的scope未做验证,包括:
[0170]
scope未做严格的校验,允许升级授权账户权限的权限,如果可以获得如username以外的权限,确认漏洞存在。
[0171]
进一步的,上述分析的形式可以存在单一的oatuh授权,也可以考虑此种情况:网站依赖的oauth网站依赖上游oauth网站,上游出现使用不当的情况,从而导致出现oauth漏洞的情况。
[0172]
其中,本公开是一种检测oauth漏洞的方法,包含四种不同情况,验证 state是否配置正确、redirect_url是否合理使用、隐藏式许可的使用不当、scope 类型未作校验的方式,判断oauth是否存在使用不当导致网站出现oauth 漏洞的情况。
[0173]
本公开实施例中,获取网站的网页信息,所述网页信息包括:登录页面的url和源码;在根据网页信息包含第三方登录的特征时,获取登录接口信息包含的参数;参数包括:state参数,redirect_uri参数,隐藏式许可中的参数以及scope参数;在检测参数满足预设要求时,确定网站存在oauth漏洞。由于可以通过多维度的参数去验证oauth2.0,以确定其中存在的漏洞,提升了漏洞检测的可靠性。
[0174]
值得注意的是,本公开是对oauth提供的功能进行使用上的缺陷检测,且仅讨论2.0的部分,检测结果可能覆盖不到所有情况,无法准确的检测该漏洞是否为该漏洞导致,更无法确定漏洞的可利用性,仅对漏洞验证提供方法。
[0175]
下述为本公开装置实施例,可以用于执行本公开方法实施例。
[0176]
图4是根据一示例性实施例示出的一种漏洞检测装置的框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图 3所示,该装置应用于oauth2.0版本,所述装置包括:
[0177]
第一获取模块11,用于获取网站的网页信息,所述网页信息包括:登录页面的url和源码;
[0178]
第二获取模块12,用于在根据所述网页信息包含第三方登录的特征时,获取登录接口信息包含的参数;所述参数包括:state参数,redirect_uri参数,隐藏式许可中的参数以及scope参数;
[0179]
第一确定模块13,用于在检测所述参数满足预设要求时,确定所述网站存在oauth漏洞。
[0180]
在一个实施中,如图5所示,第一确定模块13,包括:
[0181]
第一处理子模块131,用于若检测到存在state参数的缺失,或者,所述 state参数使用了固定值,或者,未验证所述state参数,则确定所述网站存在 oauth漏洞。
[0182]
在一个实施中,第一处理子模块包括:第一发送子单元和第一确定子模块:
[0183]
第一发送子单元,用于将所述第一验证指令和第二验证指令发送给服务器;所述第一验证指令为包含所述state参数的所述登录接口信息;所述第二验证指令为删除所述state参数的所述登录接口信息;
[0184]
第一确定子单元,用于若检测到所述服务器返回的与所述第一验证指令对应的第一响应结果和与所述第二验证指令对应的第二响应结果相同,则确定未验证所述state参数;
[0185]
或者,
[0186]
第一发送子单元,用于将所述第三验证指令和第四验证指令发送给服务器;所述第三验证指令为未修改所述登录接口信息中的所述state参数的所述登录接口信息;所述第四验证指令为修改所述登录接口信息中的所述state参数后的所述登录接口信息;
[0187]
第一确定子单元,用于若检测到所述服务器返回的与所述第三验证指令对应的第三响应结果和与所述第四验证指令对应的第四响应结果相同,则确定未验证所述state参数。
[0188]
在一个实施中,如图6所示,第一确定模块13,包括:
[0189]
第二处理子模块132,用于若检测到redirect_uri未做验证,或者,所述 redirect_uri中存在重复重定向问题,或者,所述redirect_uri中的域名的字符被更改,确定所述网站存在oauth漏洞。
[0190]
在一个实施中,第二处理子模块,包括:
[0191]
第一检测子单元,用于检测所述登录接口信息中的所述redirect_uri与所述url对应的redirect_uri是否相同;
[0192]
第二确定子单元,用于若所述登录接口信息中的所述redirect_uri与所述 url对应的redirect_uri不相同,则确定所述登录接口信息中的所述 redirect_uri未做验证。
[0193]
在一个实施中,第二处理子模块,包括:
[0194]
第二发送子单元,用于将所述登录接口信息发送给服务器;
[0195]
第二检测子单元,用于检测所述服务器反馈,或,传入的uri是否包含多个redirect_uri;
[0196]
第三确定子单元,用于若包含,则确定所述redirect_uri中存在重复重定向问题。
[0197]
在一个实施中,如图7所示,第一确定模块13,包括:
[0198]
第三处理子模块133,用于若检测到隐藏式许可的redirect_uri未做验证,或者,所述隐藏式许可的redirect_uri中存在重复重定向问题,或者,所述隐藏式许可的redirect_uri中包括预设关键字;或者,所述隐藏式许可的url 不是https对应的,确定所述网站存在oauth漏洞。
[0199]
在一个实施中,如图8所示,第一确定模块13,包括:
[0200]
第四处理子模块134,用于若检测到所述登录接口信息中的scope未做验证,确定所述网站存在oauth漏洞。
[0201]
根据本公开实施例的第三方面,提供一种漏洞检测装置,所述装置应用于oauth2.0版本,所述装置包括:
[0202]
处理器;
[0203]
用于存储处理器可执行指令的存储器;
[0204]
其中,处理器被配置为:
[0205]
获取网站的网页信息,所述网页信息包括:登录页面的url和源码;
[0206]
在根据所述网页信息包含第三方登录的特征时,获取登录接口信息包含的参数;所述参数包括:state参数,redirect_uri参数,隐藏式许可中的参数以及scope参数;
[0207]
在检测所述参数满足预设要求时,确定所述网站存在oauth漏洞。
[0208]
上述处理器还可被配置为:
[0209]
在一个实施例中,所述在检测所述参数满足预设要求时,确定所述网站存在oauth漏洞,包括:
[0210]
若检测到存在state参数的缺失,或者,所述state参数使用了固定值,或者,未验证所述state参数,则确定所述网站存在oauth漏洞。
[0211]
在一个实施例中,检测到未验证所述state参数,包括:
[0212]
将所述第一验证指令和第二验证指令发送给服务器;所述第一验证指令为包含所述state参数的所述登录接口信息;所述第二验证指令为删除所述 state参数的所述登录接口信息;
[0213]
若检测到所述服务器返回的与所述第一验证指令对应的第一响应结果和与所述第二验证指令对应的第二响应结果相同,则确定未验证所述state参数;
[0214]
或者,
[0215]
将所述第三验证指令和第四验证指令发送给服务器;所述第三验证指令为未修改所述登录接口信息中的所述state参数的所述登录接口信息;所述第四验证指令为修改所述登录接口信息中的所述state参数后的所述登录接口信息;
[0216]
若检测到所述服务器返回的与所述第三验证指令对应的第三响应结果和与所述第四验证指令对应的第四响应结果相同,则确定未验证所述state参数。
[0217]
在一个实施例中,所述在检测所述参数满足预设要求时,确定所述网站存在oauth漏洞,包括:
[0218]
若检测到redirect_uri未做验证,或者,所述redirect_uri中存在重复重定向问题,或者,所述redirect_uri中的域名的字符被更改,确定所述网站存在 oauth漏洞。
[0219]
在一个实施例中,所述检测到redirect_uri未做验证,包括:
[0220]
检测所述登录接口信息中的所述redirect_uri与所述url对应的 redirect_uri是否相同;
[0221]
若所述登录接口信息中的所述redirect_uri与所述url对应的redirect_uri 不相同,则确定所述登录接口信息中的所述redirect_uri未做验证。
[0222]
在一个实施例中,所述检测到redirect_uri中存在重复重定向问题,包括:
[0223]
将所述登录接口信息发送给服务器;
[0224]
检测所述服务器反馈,或,传入的uri是否包含多个redirect_uri;
[0225]
若包含,则确定所述redirect_uri中存在重复重定向问题。
[0226]
在一个实施例中,所述在检测所述参数满足预设要求时,确定所述网站存在oauth漏洞,包括:
[0227]
若检测到隐藏式许可的redirect_uri未做验证,或者,所述隐藏式许可的 redirect_uri中存在重复重定向问题,或者,所述隐藏式许可的redirect_uri中包括预设关键字;或者,所述隐藏式许可的url不是https对应的,确定所述网站存在oauth漏洞。
[0228]
在一个实施例中,所述在检测所述参数满足预设要求时,确定所述网站存在oauth漏洞,包括:
[0229]
若检测到所述登录接口信息中的scope未做验证,确定所述网站存在 oauth漏洞。
[0230]
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0231]
图9是根据一示例性实施例示出的一种用于漏洞检测装置80的框图,该装置适用于终端设备。例如,装置80可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
[0232]
装置80可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(i/o)的接口812,传感器组件814,以及通信组件816。
[0233]
处理组件802通常控制装置80的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808 和处理组件802之间的交互。
[0234]
存储器804被配置为存储各种类型的数据以支持在装置80的操作。这些数据的示例包括用于在装置80上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器 (sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
[0235]
电源组件806为装置80的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为装置80生成、管理和分配电力相关联的组件。
[0236]
多媒体组件808包括在所述装置80和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当装置80处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
[0237]
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(mic),当装置80处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
[0238]
i/o接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
[0239]
传感器组件814包括一个或多个传感器,用于为装置80提供各个方面的状态评估。例如,传感器组件814可以检测到装置80的打开/关闭状态,组件的相对定位,例如所述组件为装置80的显示器和小键盘,传感器组件814 还可以检测装置80或装置80一个组件的位置改变,用户与装置80接触的存在或不存在,装置80方位或加速/减速和装置80的温度变化。传感器组件 814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体
的存在。传感器组件814还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
[0240]
通信组件816被配置为便于装置80和其他设备之间有线或无线方式的通信。装置80可以接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc 模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb) 技术,蓝牙(bt)技术和其他技术来实现。
[0241]
在示例性实施例中,装置80可以被一个或多个应用专用集成电路 (asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子组件实现,用于执行上述方法。
[0242]
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置80的处理器820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
[0243]
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置80 的处理器执行时,使得装置80能够执行上述的漏洞检测方法,所述方法包括:
[0244]
获取网站的网页信息,所述网页信息包括:登录页面的url和源码;
[0245]
在根据所述网页信息包含第三方登录的特征时,获取登录接口信息包含的参数;所述参数包括:state参数,redirect_uri参数,隐藏式许可中的参数以及scope参数;
[0246]
在检测所述参数满足预设要求时,确定所述网站存在oauth漏洞。
[0247]
在一个实施例中,所述在检测所述参数满足预设要求时,确定所述网站存在oauth漏洞,包括:
[0248]
若检测到存在state参数的缺失,或者,所述state参数使用了固定值,或者,未验证所述state参数,则确定所述网站存在oauth漏洞。
[0249]
在一个实施例中,检测到未验证所述state参数,包括:
[0250]
将所述第一验证指令和第二验证指令发送给服务器;所述第一验证指令为包含所述state参数的所述登录接口信息;所述第二验证指令为删除所述 state参数的所述登录接口信息;
[0251]
若检测到所述服务器返回的与所述第一验证指令对应的第一响应结果和与所述第二验证指令对应的第二响应结果相同,则确定未验证所述state参数;
[0252]
或者,
[0253]
将所述第三验证指令和第四验证指令发送给服务器;所述第三验证指令为未修改所述登录接口信息中的所述state参数的所述登录接口信息;所述第四验证指令为修改所述登录接口信息中的所述state参数后的所述登录接口信息;
[0254]
若检测到所述服务器返回的与所述第三验证指令对应的第三响应结果和与所述第四验证指令对应的第四响应结果相同,则确定未验证所述state参数。
[0255]
在一个实施例中,所述在检测所述参数满足预设要求时,确定所述网站存在oauth
漏洞,包括:
[0256]
若检测到redirect_uri未做验证,或者,所述redirect_uri中存在重复重定向问题,或者,所述redirect_uri中的域名的字符被更改,确定所述网站存在 oauth漏洞。
[0257]
在一个实施例中,所述检测到redirect_uri未做验证,包括:
[0258]
检测所述登录接口信息中的所述redirect_uri与所述url对应的 redirect_uri是否相同;
[0259]
若所述登录接口信息中的所述redirect_uri与所述url对应的redirect_uri 不相同,则确定所述登录接口信息中的所述redirect_uri未做验证。
[0260]
在一个实施例中,所述检测到redirect_uri中存在重复重定向问题,包括:
[0261]
将所述登录接口信息发送给服务器;
[0262]
检测所述服务器反馈,或,传入的uri是否包含多个redirect_uri;
[0263]
若包含,则确定所述redirect_uri中存在重复重定向问题。
[0264]
在一个实施例中,所述在检测所述参数满足预设要求时,确定所述网站存在oauth漏洞,包括:
[0265]
若检测到隐藏式许可的redirect_uri未做验证,或者,所述隐藏式许可的 redirect_uri中存在重复重定向问题,或者,所述隐藏式许可的redirect_uri中包括预设关键字;或者,所述隐藏式许可的url不是https对应的,确定所述网站存在oauth漏洞。
[0266]
在一个实施例中,所述在检测所述参数满足预设要求时,确定所述网站存在oauth漏洞,包括:
[0267]
若检测到所述登录接口信息中的scope未做验证,确定所述网站存在oauth漏洞。
[0268]
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
[0269]
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献