一种识别网页中CSRF token元素的方法技术

技术编号:15542525 阅读:117 留言:0更新日期:2017-06-05 11:26
本发明专利技术公开了一种识别网页中CSRF token元素的方法,包括以下步骤:创建HTTP第一个会话,通过获取目标页面源代码,检查页面源代码是否存在<form>标签;检索第一个会话的网页源码<form>标签内是否存在input类型为hidden的表单元素;创建HTTP第二个会话,通过获取目标页面源代码,检查页面源代码是否存在<form>标签;检索第二个会话的网页源码<form>标签内是否存在input类型为hidden的表单元素;依次比较第一个会话和第二个会话的表单中input类型为hidden的表单元素值;计算疑似CSRF token表单元素值的莱文斯坦距离比例,判别该参数是否为CSRF token。本发明专利技术通过动态的基于算法识别CSRF token元素,提高了CSRF token元素的识别率,极大地减少了漏报。

A method of identifying CSRF token elements in web pages

The invention discloses a method for CSRF token elements identification in web pages, which comprises the following steps: creating the HTTP first session, by acquiring the target page source code, check the page source code if there is < form> tag; retrieval of the first session of \source code < form> in the presence of input tag type form hidden; create HTTP second session, by acquiring the target page source code, check the page source code if there is < form> tag; retrieve second session page source code < form> tag is the existence of input type hidden type input form elements; followed by the first session and the second session the form is hidden form element value; calculation suspected CSRF token form element value of Levin's distance ratio, the identification of the parameters is CSRF token. The present invention through the dynamic recognition algorithm of CSRF token based on elements, improve the recognition rate of token CSRF elements, greatly reduce the false negatives.

【技术实现步骤摘要】
一种识别网页中CSRFtoken元素的方法
本专利技术涉及CSRF识别领域,具体涉及一种识别网页中CSRFtoken元素的方法。
技术介绍
CSRF攻击之所以能够成功,是因为攻击者可以伪造用户的请求,该请求中所有的用户验证信息都存在于Cookie中,因此攻击者可以在不知道这些验证信息的情况下直接利用用户自己的Cookie来通过安全验证。由此可知,抵御CSRF攻击的关键在于:在请求中放入攻击者所不能伪造的信息,并且该信息不存在于Cookie之中。系统开发者可以在HTTP请求中以参数的形式加入一个随机产生的token,并在服务器端建立一个拦截器来验证这个token,如果请求中没有token或者token内容不正确,则认为可能是CSRF攻击而拒绝该请求。这种网页表单中嵌入CSRFtoken的方法有效阻止了点击链接触发CSRF漏洞,但同时对于自动化漏洞检测工具也造成了拦截,导致自动化漏洞检测工具不能够正常提交网页表单请求,造成对网页表单中的输入参数的漏洞不能进行检测。现有技术通过收集常见Web框架的CSRFtoken值名称作为黑名单,例如表单input名称为token,csrf_token,csrfmiddlewaretoken等,这些参数名称在黑名单中,那么在HTTP请求过程中就认为是CSRFtoken参数。在后续的HTTP请求中会获取CSRFtoken参数值,构造正确的不被服务端拦截的HTTP请求。因为是基于黑名单方式来判别是否是CSRFtoken参数,这种方式依赖收集的黑名单库的数量及准确性,存在大量的漏报情况,覆盖不全,不能收集覆盖所有的网页表单中CSRFtoken的参数名称。也会对网页表单中某些正常的,非CSRFtoken表单参数造成误判。相关术语解释CSRF:(Cross-SiteRequestForgery,跨站点伪造请求)是一种网络攻击方式,该攻击可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击站点,从而在未授权的情况下执行在权限保护之下的操作,具有很大的危害性。具体来讲,可以这样理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作。URL:统一资源定位符,是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。Form:网页表单,用于为用户输入创建HTML表单。表单用于向服务器传输数据。莱文斯坦距离:又称Levenshtein距离,是编辑距离(editdistance)的一种,指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。
技术实现思路
本专利技术所要解决的技术问题是提供一种识别网页中CSRFtoken元素的方法,通过对目标网页发起两次不同会话的HTTP请求,解析出网页表单中input类型为hidden的参数值,再通过判别计算参数值的莱文斯坦距离比例而不是黑名单名称来判别是否为CSRFtoken参数。为解决上述技术问题,本专利技术采用的技术方案是:一种识别网页中CSRFtoken元素的方法,包括以下步骤:步骤1:创建HTTP第一个会话,通过获取目标页面源代码,检查页面源代码是否存在<form>标签,存在则进行后续步骤;步骤2:检索第一个会话的网页源码<form>标签内是否存在input类型为hidden的表单元素,存在则进行后续步骤;步骤3:创建HTTP第二个会话,通过获取目标页面源代码,检查页面源代码是否存在<form>标签,存在则进行后续步骤;步骤4:检索第二个会话的网页源码<form>标签内是否存在input类型为hidden的表单元素,存在则进行后续步骤;步骤5:依次比较第一个会话和第二个会话的表单中input类型为hidden的表单元素值,若相同input参数名称的值发生变化,则标记为疑似CSRFtoken值,进入后续步骤;步骤6:计算疑似CSRFtoken表单元素值的莱文斯坦距离比例,若所得到的比例大于一个确定的阈值,则该参数的CSRFtoken随机性不够,做误报处理,否则,判别该参数为CSRFtoken。与现有技术相比,本专利技术的有益效果是:通过动态的基于算法识别CSRFtoken元素,提高了CSRFtoken元素的识别率,极大地减少了漏报。附图说明图1是本专利技术一种识别网页中CSRFtoken元素的方法的流程示意图。图2是本专利技术实例中检索第一个会话示意代码。图3是本专利技术实例中检索第二个会话示意代码。图4是本专利技术中计算参数值的莱文斯坦距离比例。具体实施方式下面结合附图和具体实施方式对本专利技术作进一步详细的说明。本专利技术一种识别网页中CSRFtoken元素的方法的具体步骤如下:1、创建HTTP第一个会话,通过获取目标页面源代码,检查页面源代码是否存在<form>标签,存在则进入下一步。2、检索第一个会话的网页源码<form>标签内是否存在input类型为hidden的表单元素,如图2所示,存在则进入下一步。3、创建HTTP第二个会话,通过获取目标页面源代码,检查页面源代码是否存在<form>标签,存在则进入下一步。4、检索第二个会话的网页源码<form>标签内是否存在input类型为hidden的表单元素,如图3所示,存在则进入下一步。5、依次比较第一个会话和第二个会话的表单中input类型为hidden的表单元素值,如果相同input参数名称的值发生变化,则标记为疑似CSRFtoken值,进入下一步。6、如图4所示,计算疑似CSRFtoken表单元素值的莱文斯坦距离比例(ratio),如果所得到的比例大于一个确定的阈值,该标记(参数)的CSRFtoken随机性不够,做误报处理;否则,判别该参数为CSRFtoken。本文档来自技高网
...
一种<a href="http://www.xjishu.com/zhuanli/55/201611107166.html" title="一种识别网页中CSRF token元素的方法原文来自X技术">识别网页中CSRF token元素的方法</a>

【技术保护点】
一种识别网页中CSRF token元素的方法,其特征在于,包括以下步骤:步骤1:创建HTTP第一个会话,通过获取目标页面源代码,检查页面源代码是否存在<form>标签,存在则进行后续步骤;步骤2:检索第一个会话的网页源码<form>标签内是否存在input类型为hidden的表单元素,存在则进行后续步骤;步骤3:创建HTTP第二个会话,通过获取目标页面源代码,检查页面源代码是否存在<form>标签,存在则进行后续步骤;步骤4:检索第二个会话的网页源码<form>标签内是否存在input类型为hidden的表单元素,存在则进行后续步骤;步骤5:依次比较第一个会话和第二个会话的表单中input类型为hidden的表单元素值,若相同input参数名称的值发生变化,则标记为疑似CSRF token值,进入后续步骤;步骤6:计算疑似CSRF token表单元素值的莱文斯坦距离比例,若所得到的比例大于一个确定的阈值,则该参数的CSRF token随机性不够,做误报处理,否则,判别该参数为CSRF token。

【技术特征摘要】
1.一种识别网页中CSRFtoken元素的方法,其特征在于,包括以下步骤:步骤1:创建HTTP第一个会话,通过获取目标页面源代码,检查页面源代码是否存在<form>标签,存在则进行后续步骤;步骤2:检索第一个会话的网页源码<form>标签内是否存在input类型为hidden的表单元素,存在则进行后续步骤;步骤3:创建HTTP第二个会话,通过获取目标页面源代码,检查页面源代码是否存在<form>标签,存在则进行后续步骤;步骤4:检索第二...

【专利技术属性】
技术研发人员:周海啸
申请(专利权)人:成都知道创宇信息技术有限公司
类型:发明
国别省市:四川,51

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

1