不同于Token和Refer头校验的另一种CSRF防御办法

VSole2022-01-05 21:22:19

情的情况是这样的,前段时间在工作中发现XX系统存在CSRF漏洞,我在数据包内并未看到对应的Token参数,测试Refer头后发现XX系统并未对请求来源(refer)进行相关校验。我便认为此处存在CSRF漏洞并将该漏洞发送给了XX系统的相关负责人。

但是过了几天后XX系统的负责人发来一份反馈邮件,邮件说他们系统做了CSRF校验但用的不是Token也不是Refer。而是如下方法:

XX系统使用X-Uni-Csrf-Token做referer标志头校验,X-Uni-Csrf-Tokenk是服务器自定义的一个HTTP请求行;X-Uni-Csrf-Token是用户登录之后,后端服务器根据用户token等信息和用户会话绑在一起,给前端一个随机数,然后前端再次请求后端系统会带上这个随机数,后端验证此参数来判断是否为为同一域名下面的请求;X-Uni-Csrf-Token随机数随着用户会话消失而消失,用户下次登录会生成新的会话和X-Uni-Csrf-Token随机数;XX系统的会话时间默认是30分钟,进而防止csrf跨站请求伪造攻击。数据包如下:

与XX相关人员沟通后,我对于他们这个方法的解读:

当用户成功登陆系统后,服务器端根据用户Session等信息经过一定的算法运算生成一个随机数(即X-Uni-Csrf-Token),然后将此随机数与用户Session绑定起来发送给客户端。客户端将此随机数存储在用户内存中,之后每次用户通过点击页面功能点,由前端JS控制将此随机数从用户计算机内从中取出作为并HTTP请求行的一个参数发给服务器,服务器收到HTTP请求后会对该参数进行校验,如果请求中包括该参数并且参数值与用户绑定的值相同,则认为该请求来自用户本人操作,该HTTP请求被执行。

简述:此例中的X-Uni-Csrf-Token相当于研发自己造的一个refer头,里面的参数为Token。服务器通过校验该参数来判断此HTTP请求是否来自用户本人操作。

相关知识:默认情况下JS只会将用户Cookie信息从内存或本地文件中调用并往服务器。

不足:页面不能存在XSS漏洞导致JS代码被执行。

由于我的见识短浅,我的理解可能有所偏差,请给位看官见谅。

版权申明:内容来源网络,版权归原创者所有。除非无法确认,都会标明作者及出处,如有侵权,烦请告知,我们会立即删除并致歉!

tokencsrf
本作品采用《CC 协议》,转载必须注明作者和本文链接
一种CSRF防御办法
网站如何防止CSRF攻击
2021-11-12 07:20:53
Cross-site request forgery 简称为“CSRF”,在CSRF的攻击场景 中攻击者会伪造一个请求(这个请求一般是一个链接),然后欺骗目标 用户进行点击,用户一旦点击了这个请求,整个攻击就完成了。所以CSRF 攻击也称为"one click"攻击。很多人搞不清楚CSRF的概念,甚至有时候 会将其和XSS混淆,更有甚者会将其和越权问题混为一谈,这都是对原理没 搞清楚导致的。
CSRF 防护策略
2021-10-13 07:12:05
什么是 CSRFCSRF:攻击者通过邮件、社区发帖等方式诱导受害者进入第三方网站,并且在第三方网站中向被攻击网站发送跨站请求;这主要是利用了受害者在被攻击网站已经获取的登录凭证,且 cookie 会自动附在对特定域名的请求里的浏览器特性,达到冒充用户对被攻击的网站执行某项操作的目的。
本文从攻击者的攻击手法进行研究,站在攻击者的角度研究CSRF攻击,并同步给出了有效的阻击方法,正所谓未知攻,焉知防。针对CSRF,一般的防护做法是在后端添加“Referer”和“token”限制。图5图6 同步token修改成功,如图7。Response:无效的CSRF token2>Bypass思路:配置过程:图10图11??
跨站请求伪造,也被称为“OneClick Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。 一、CSRF介绍 CSRF(Cross-site request forgery) 跨站请求伪造,也被称为“OneClick Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。
Checkpoint研究人员分析发现部分Amazon/Alexa 子域名存在CORS(跨域资源共享)误配置和跨站脚本漏洞。攻击者利用XSS可以获取CSRF token,并以受害者名义执行动作。 攻击者利用这些漏洞可以: 在用户的Alexa 账号中安...
Swagger-UI中存在跨站脚本漏洞,虽然该漏洞已在2020年末修复被修复,但截止2022年5月16日,研究人员仍然可以在Paypal、Atlassian、Microsoft、GitLab、Yahoo等网站中发现漏洞的实例。
起源是在某个数据包里看到url=这个关键字,当时第一想到会不会有SSRF漏洞。
VSole
网络安全专家