一种检测CSRF漏洞的方法和装置制造方法及图纸

技术编号:9841147 阅读:268 留言:0更新日期:2014-04-02 04:17
本发明专利技术提供了一种检测CSRF漏洞的方法和装置,其中方法包括:S1、获取待检测URL对应的登录页面的源代码;S2、从获取登录页面的源代码中提取请求表单;S3、对提取的请求表单分别检测是否存在CSRF漏洞。本发明专利技术从待检测URL对应的登录页面的源代码中提取请求表单进行CSRF漏洞检测,从而减少了对大量没有危害性的请求表单的分析,节约了时间,提高了检测效率。更进一步地,在对提取的请求表单进行检测时,首先基于标签和属性值进行分析将请求表单分为存在CSRF漏洞的请求表单、安全的请求表单和嫌疑表单,对嫌疑表单进一步基于构造伪造请求并对比返回结果的方式分析是否存在CSRF漏洞,双重保险的方式提高了检测精度。

【技术实现步骤摘要】
【专利摘要】本专利技术提供了一种检测CSRF漏洞的方法和装置,其中方法包括:S1、获取待检测URL对应的登录页面的源代码;S2、从获取登录页面的源代码中提取请求表单;S3、对提取的请求表单分别检测是否存在CSRF漏洞。本专利技术从待检测URL对应的登录页面的源代码中提取请求表单进行CSRF漏洞检测,从而减少了对大量没有危害性的请求表单的分析,节约了时间,提高了检测效率。更进一步地,在对提取的请求表单进行检测时,首先基于标签和属性值进行分析将请求表单分为存在CSRF漏洞的请求表单、安全的请求表单和嫌疑表单,对嫌疑表单进一步基于构造伪造请求并对比返回结果的方式分析是否存在CSRF漏洞,双重保险的方式提高了检测精度。【专利说明】—种检测CSRF漏洞的方法和装置【
】本专利技术涉及计算机安全
,特别涉及一种检测跨站请求伪造(CSRF)漏洞的方法和装置。【
技术介绍
】产品的安全涉及到用户的利益,若攻击者利用跨站请求伪造(CSRF,Cross-siterequest forgery)漏洞对合法用户进行攻击,便可以在合法用户无意识的情况下进行某些隐私操作,比如进行转账操作,这就会直接关系到用户的经济利益,因此,检测CSRF漏洞十分重要。现有检测CSRF漏洞的方式是对某一页面的所有请求表单(HTTP请求信息)都进行收集和识别以检测是否存在CSRF嫌疑,然后通过构造伪造请求并对比伪造请求的返回信息之间的相似度来确定是否是有CSRF攻击倾向的伪造请求。然而这种方式需要针对所有HTTP请求信息都进行收集分析,但有些请求表单是良性的,所谓良性的表单是指即使这个表单存在CSRF漏洞但也不影响到业务逻辑,那么此表单就没有危害性。由于对请求表单进行CSRF识别的复杂度较高,对大量没有危害性的请求表单进行分析显然浪费了时间,降低了检测效率。【
技术实现思路
】 本专利技术提供了一种检测CSRF漏洞的方法和装置,以便于提高CSRF漏洞的检测效率。具体技术方案如下:一种检测跨站请求伪造(CSRF)漏洞的方法,该方法包括:S1、获取待检测URL对应的登录页面的源代码;S2、从获取的登录页面的源代码中提取请求表单;S3、对提取的请求表单分别检测是否存在CSRF漏洞。根据本专利技术一优选实施例,所述步骤SI具体包括:将不带cookie请求所述待检测URL获得的页面源代码和带cookie请求所述待检测URL获得的页面的源代码进行对比,获取带cookie请求所述待检测URL获得的页面的源代码中与不带cookie请求所述待检测URL获得的页面源代码不同的部分为所述待检测URL对应的登录页面的源代码。根据本专利技术一优选实施例,在所述步骤SI之前还包括对待检测URL的页面源代码进行的噪声过滤步骤:对所述待检测URL进行N次请求,对N次请求得到的页面源代码取交集,在取交集得到的页面源代码基础上执行步骤SI,所述N为2以上的整数。根据本专利技术一优选实施例,在所述获取不同部分的源代码过程中,记录带cookie请求所述待检测URL获得的页面的源代码中与不带cookie请求所述待检测URL获得的页面源代码不同的请求表单ID;在所述步骤S2中获取所述不同的请求表单ID对应的请求表单。根据本专利技术一优选实施例,所述步骤S3中对各请求表单检测是否存在CSRF漏洞具体包括:判断请求表单是否存在表示提交操作的标签且不存在包含隐藏域的标签,如果是,确定该请求表单存在CSRF漏洞,所述待检测URL存在CSRF漏洞。根据本专利技术一优选实施例,如果请求表单不存在表示提交操作的标签,则确定该请求表单安全;如果存在表示提交操作的标签且存在包含隐藏域的标签,则确定该请求表单为嫌疑表单。根据本专利技术一优选实施例,如果确定为嫌疑表单的请求表单中不包含Token数据,则确定该请求表单为存在CSRF漏洞的表单;如果确定为嫌疑表单的请求表单中包含Token数据,则从请求表单中提取嫌疑参数并构造嫌疑请求和伪造请求,对比嫌疑请求和伪造请求的返回结果之间的相似程度以确定是否存在CSRF漏洞。根据本专利技术一优选实施例,所述步骤S3中对各请求表单检测是否存在CSRF漏洞具体包括:从请求表单中提取嫌疑参数并构造嫌疑请求和伪造请求,对比嫌疑请求和伪造请求的返回结果之间的相似程度以确定是否存在CSRF漏洞。根据本专利技术一优选实施例,所述从请求表单中提取嫌疑参数并构造嫌疑请求和伪造请求具体包括:遍历请求表单中的input标签,将input标签中的参数作为嫌疑参数,为嫌疑请求和伪造请求中的嫌疑参数赋予相同的值,嫌疑请求和伪造请求采用请求表单中的Token数据,对嫌疑请求和伪造请求中的cookie赋予不同的可登陆的值。根据本专利技术一优选实施例,所述从请求表单中提取嫌疑参数并构造嫌疑请求和伪造请求具体包括:遍历嫌疑表单中的input标签,将input标签中的参数作为嫌疑参数,为嫌疑请求和伪造请求中的嫌疑参数赋予相同的值,保持cookie不变,在嫌疑请求中采用请求表单中的Token数据,对伪造请求中的token数据进行随机赋值。根据本专利技术一优选实施例,对比嫌疑请求和伪造请求的返回结果之间的相似程度以确定是否存在CSRF漏洞具体包括:如果- TH,则确定该请求表单不存在CSRF漏洞,否则确定该请求表单存在【权利要求】1.一种检测跨站请求伪造(CSRF)漏洞的方法,其特征在于,该方法包括: 51、获取待检测URL对应的登录页面的源代码; 52、从获取的登录页面的源代码中提取请求表单; 53、对提取的请求表单分别检测是否存在CSRF漏洞。2.根据权利要求1所述的方法,其特征在于,所述步骤SI具体包括: 将不带cookie请求所述待检测URL获得的页面源代码和带cookie请求所述待检测URL获得的页面的源代码进行对比,获取带cookie请求所述待检测URL获得的页面的源代码中与不带cookie请求所述待检测URL获得的页面源代码不同的部分为所述待检测URL对应的登录页面的源代码。3.根据权利要求1所述的方法,其特征在于,在所述步骤SI之前还包括对待检测URL的页面源代码进行的噪声过滤步骤: 对所述待检测URL进行N次请求,对N次请求得到的页面源代码取交集,在取交集得到的页面源代码基础上执行步骤SI,所述N为2以上的整数。4.根据权利要求2所述的方法,其特征在于,在所述获取不同部分的源代码过程中,记录带cookie请求所述待检测URL获得的页面的源代码中与不带cookie请求所述待检测URL获得的页面源代码不同的请求表单ID ; 在所述步骤S2中获取所述不同的请求表单ID对应的请求表单。5.根据权利要求1所述的方法,其特征在于,所述步骤S3中对各请求表单检测是否存在CSRF漏洞具体包括: 判断请求表单是否存在表示提交操作的标签且不存在包含隐藏域的标签,如果是,确定该请求表单存在CSRF漏洞,所述待检测URL存在CSRF漏洞。6.根据权利要求5所述的方法,其特征在于,如果请求表单不存在表示提交操作的标签,则确定该请求表单安全;如果存在表示提交操作的标签且存在包含隐藏域的标签,则确定该请求表单为嫌疑表单。7.根据权利要求6所述的方法,其特征在于,如果确定为嫌疑表单的请求表单中不包含Token数据,则确定该请求表单为存在C本文档来自技高网
...
一种检测CSRF漏洞的方法和装置

【技术保护点】
一种检测跨站请求伪造(CSRF)漏洞的方法,其特征在于,该方法包括:S1、获取待检测URL对应的登录页面的源代码;S2、从获取的登录页面的源代码中提取请求表单;S3、对提取的请求表单分别检测是否存在CSRF漏洞。

【技术特征摘要】

【专利技术属性】
技术研发人员:张娜
申请(专利权)人:百度在线网络技术北京有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1