CN106776975A - 一种识别网页中CSRF token元素的方法 - Google Patents
一种识别网页中CSRF token元素的方法 Download PDFInfo
- Publication number
- CN106776975A CN106776975A CN201611107166.9A CN201611107166A CN106776975A CN 106776975 A CN106776975 A CN 106776975A CN 201611107166 A CN201611107166 A CN 201611107166A CN 106776975 A CN106776975 A CN 106776975A
- Authority
- CN
- China
- Prior art keywords
- session
- source code
- csrf token
- label
- csrf
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种识别网页中CSRF token元素的方法,包括以下步骤:创建HTTP第一个会话,通过获取目标页面源代码,检查页面源代码是否存在<form>标签;检索第一个会话的网页源码<form>标签内是否存在input类型为hidden的表单元素;创建HTTP第二个会话,通过获取目标页面源代码,检查页面源代码是否存在<form>标签;检索第二个会话的网页源码<form>标签内是否存在input类型为hidden的表单元素;依次比较第一个会话和第二个会话的表单中input类型为hidden的表单元素值;计算疑似CSRF token表单元素值的莱文斯坦距离比例,判别该参数是否为CSRF token。本发明通过动态的基于算法识别CSRF token元素,提高了CSRF token元素的识别率,极大地减少了漏报。
Description
技术领域
本发明涉及CSRF识别领域,具体涉及一种识别网页中CSRF token元素的方法。
背景技术
CSRF攻击之所以能够成功,是因为攻击者可以伪造用户的请求,该请求中所有的用户验证信息都存在于Cookie中,因此攻击者可以在不知道这些验证信息的情况下直接利用用户自己的Cookie来通过安全验证。由此可知,抵御CSRF攻击的关键在于:在请求中放入攻击者所不能伪造的信息,并且该信息不存在于Cookie之中。
***开发者可以在HTTP请求中以参数的形式加入一个随机产生的token,并在服务器端建立一个***来验证这个token,如果请求中没有token或者token内容不正确,则认为可能是CSRF攻击而拒绝该请求。这种网页表单中嵌入CSRF token的方法有效阻止了点击链接触发CSRF漏洞,但同时对于自动化漏洞检测工具也造成了拦截,导致自动化漏洞检测工具不能够正常提交网页表单请求,造成对网页表单中的输入参数的漏洞不能进行检测。
现有技术通过收集常见Web框架的CSRF token值名称作为黑名单,例如表单input名称为token,csrf_token,csrfmiddlewaretoken等,这些参数名称在黑名单中,那么在HTTP请求过程中就认为是CSRF token参数。在后续的HTTP请求中会获取CSRF token参数值,构造正确的不被服务端拦截的HTTP请求。
因为是基于黑名单方式来判别是否是CSRF token参数,这种方式依赖收集的黑名单库的数量及准确性,存在大量的漏报情况,覆盖不全,不能收集覆盖所有的网页表单中CSRF token的参数名称。也会对网页表单中某些正常的,非CSRF token表单参数造成误判。
相关术语解释
CSRF:(Cross-Site Request Forgery,跨站点伪造请求)是一种网络攻击方式,该攻击可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击站点,从而在未授权的情况下执行在权限保护之下的操作,具有很大的危害性。具体来讲,可以这样理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作。
URL:统一资源定位符,是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
Form:网页表单,用于为用户输入创建HTML表单。表单用于向服务器传输数据。
莱文斯坦距离:又称Levenshtein距离,是编辑距离(edit distance)的一种,指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,***一个字符,删除一个字符。
发明内容
本发明所要解决的技术问题是提供一种识别网页中CSRF token元素的方法,通过对目标网页发起两次不同会话的HTTP请求,解析出网页表单中input类型为hidden的参数值,再通过判别计算参数值的莱文斯坦距离比例而不是黑名单名称来判别是否为CSRFtoken参数。
为解决上述技术问题,本发明采用的技术方案是:
一种识别网页中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。
与现有技术相比,本发明的有益效果是:通过动态的基于算法识别CSRF token元素,提高了CSRF token元素的识别率,极大地减少了漏报。
附图说明
图1是本发明一种识别网页中CSRF token元素的方法的流程示意图。
图2是本发明实例中检索第一个会话示意代码。
图3是本发明实例中检索第二个会话示意代码。
图4是本发明中计算参数值的莱文斯坦距离比例。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细的说明。本发明一种识别网页中CSRF token元素的方法的具体步骤如下:
1、创建HTTP第一个会话,通过获取目标页面源代码,检查页面源代码是否存在<form>标签,存在则进入下一步。
2、检索第一个会话的网页源码<form>标签内是否存在input类型为hidden的表单元素,如图2所示,存在则进入下一步。
3、创建HTTP第二个会话,通过获取目标页面源代码,检查页面源代码是否存在<form>标签,存在则进入下一步。
4、检索第二个会话的网页源码<form>标签内是否存在input类型为hidden的表单元素,如图3所示,存在则进入下一步。
5、依次比较第一个会话和第二个会话的表单中input类型为hidden的表单元素值,如果相同input参数名称的值发生变化,则标记为疑似CSRF token值,进入下一步。
6、如图4所示,计算疑似CSRF token表单元素值的莱文斯坦距离比例(ratio),如果所得到的比例大于一个确定的阈值,该标记(参数)的CSRF token随机性不够,做误报处理;否则,判别该参数为CSRF token。
Claims (1)
1.一种识别网页中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随机性不够,做误报处理,否则,判别该参数为CSRFtoken。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611107166.9A CN106776975A (zh) | 2016-12-06 | 2016-12-06 | 一种识别网页中CSRF token元素的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611107166.9A CN106776975A (zh) | 2016-12-06 | 2016-12-06 | 一种识别网页中CSRF token元素的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106776975A true CN106776975A (zh) | 2017-05-31 |
Family
ID=58878859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611107166.9A Pending CN106776975A (zh) | 2016-12-06 | 2016-12-06 | 一种识别网页中CSRF token元素的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106776975A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110875919A (zh) * | 2018-12-21 | 2020-03-10 | 北京安天网络安全技术有限公司 | 一种网络威胁的检测方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103312666A (zh) * | 2012-03-09 | 2013-09-18 | 腾讯科技(深圳)有限公司 | 一种防御跨站请求伪造csrf攻击的方法、***和装置 |
CN103679018A (zh) * | 2012-09-06 | 2014-03-26 | 百度在线网络技术(北京)有限公司 | 一种检测csrf漏洞的方法和装置 |
CN104852907A (zh) * | 2015-04-17 | 2015-08-19 | 杭州华三通信技术有限公司 | 一种跨站点伪造请求csrf攻击识别方法和设备 |
-
2016
- 2016-12-06 CN CN201611107166.9A patent/CN106776975A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103312666A (zh) * | 2012-03-09 | 2013-09-18 | 腾讯科技(深圳)有限公司 | 一种防御跨站请求伪造csrf攻击的方法、***和装置 |
CN103679018A (zh) * | 2012-09-06 | 2014-03-26 | 百度在线网络技术(北京)有限公司 | 一种检测csrf漏洞的方法和装置 |
CN104852907A (zh) * | 2015-04-17 | 2015-08-19 | 杭州华三通信技术有限公司 | 一种跨站点伪造请求csrf攻击识别方法和设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110875919A (zh) * | 2018-12-21 | 2020-03-10 | 北京安天网络安全技术有限公司 | 一种网络威胁的检测方法、装置、电子设备及存储介质 |
CN110875919B (zh) * | 2018-12-21 | 2022-02-11 | 北京安天网络安全技术有限公司 | 一种网络威胁的检测方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101001132B1 (ko) | 웹 어플리케이션의 취약성 판단 방법 및 시스템 | |
CN103888490B (zh) | 一种全自动的web客户端人机识别的方法 | |
CN102571846B (zh) | 一种转发http请求的方法及装置 | |
CN105184159B (zh) | 网页篡改的识别方法和装置 | |
CN103559235B (zh) | 一种在线社交网络恶意网页检测识别方法 | |
CN103139138B (zh) | 一种基于客户端检测的应用层拒绝服务防护方法及*** | |
CN103532944B (zh) | 一种捕获未知攻击的方法和装置 | |
CN109768992B (zh) | 网页恶意扫描处理方法及装置、终端设备、可读存储介质 | |
CN107644166A (zh) | 一种基于自动学习的web应用安全防护方法 | |
CN109922065B (zh) | 恶意网站快速识别方法 | |
CN105760379B (zh) | 一种基于域内页面关联关系检测webshell页面的方法及装置 | |
CN103209177B (zh) | 网络钓鱼攻击的检测方法和装置 | |
CN102567546B (zh) | 一种sql注入检测方法及装置 | |
CN102467633A (zh) | 一种安全浏览网页的方法及其*** | |
CN102073822A (zh) | 防止用户信息泄漏的方法及*** | |
CN104462152A (zh) | 一种网页的识别方法及装置 | |
US9692771B2 (en) | System and method for estimating typicality of names and textual data | |
CN107612926B (zh) | 一种基于客户端识别的一句话WebShell拦截方法 | |
CN106161453A (zh) | 一种基于历史信息的SSLstrip防御方法 | |
CN106549980A (zh) | 一种恶意c&c服务器确定方法及装置 | |
CN112929390A (zh) | 一种基于多策略融合的网络智能监控方法 | |
CN105635064B (zh) | Csrf攻击检测方法及装置 | |
CN109257393A (zh) | 基于机器学习的xss攻击防御方法及装置 | |
CN105488400A (zh) | 一种恶意网页综合检测方法及*** | |
CN106357682A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170531 |
|
RJ01 | Rejection of invention patent application after publication |