发布时间:2023-09-08 17:00
目录
一、CSRF漏洞原理
1、基本原理
2、流程图
3、条件
二、分类
1、GET型
2、POST型
三、危害
四、检测与防御
1、检测
2、防御
CSRF(Cross-site Request Forgery,跨站请求伪造)是一种针对网站的恶意利用。
CSRF攻击可以利用用户已经登陆或已经授权的状态,伪造合法用户发出请求给受信任的网点,从而实现在未授权的情况下执行一些特权操作。
CSRF与XSS听起来很像,但攻击方式完全不同。XSS攻击是利用受信任的站点攻击客户端用户,而CSRF是伪装成受信任的用户攻击受信任的站点。
●用户成功登陆了网站系统,能执行授权的功能
●目标用户访问了攻击者构造的恶意URL
GET型是CSRF攻击最常发生的情形。只要一个http请求就可以了。
本质上,这样的逻辑代码设计本身就不合理。HTTP协议的设计初衷中,GET型请求需要保证“幂等性”,即无论重复发出了多少次GET请求,和仅发出一次请求所产生的效果应该是相同的。这就保证了GET型操作仅能进行类似“查询”、“获取资源”这样的操作。
POST请求是要把参数放在http的请求body里发送给服务器,所以POST类型的CSRF攻击需要用post的方式发送请求。通常的方法就是创建(静态创建或动态创建)一个自动提交的表单。当用户点击或浏览有这样表单的网页就会自动发生CSRF攻击。
发送钓鱼邮件、盗用用户账号、网银转账、使用他人账号购买商品等,具体的危害跟存在漏洞的具体业务系统有关。
手动检测
应首先确定Web应用程序对哪些操作是敏感的,在确认敏感操作后,拦截相应的HTTP请求消息,分析是否存在CSRF漏洞。
半自动检测
常用工具有OWASP的CSRFTester、BurpSuite的Scanner功能。
●增加二次验证机制
在敏感操作时候,不再直接通过某个请求执行,而是再次验证用户口令或者再次验证类似验证码等随机数。如:转账时,要求用户二次输入密码。
●校验HTTP Referer字段
校验HTTP Referer字段可以保证相关敏感操作来自授权站点的跳转。在HTTP协议中,定义了一个访问来源的字段,即HTTP_REFERER。站点可以在后端校验Referer是否来自于正常的站内跳转。如果攻击者诱导用户点击跳转链接,则Referer就为攻击者的主机,与网站内部内部跳转情况下的Referer字段不同。
●增加Token参数进行校验
在敏感操作的参数中,增加完全随机的Token参数进行校验。这是目前业内防止CSRF攻击最常用的方法。因为CSRF产生的根本原因是,进行敏感操作时用户每次发送的请求都完全相同。因此,攻击者就可以把这样的请求进行封装包裹,诱导用户点击链接并发出请求。而如果在进行敏感操作时,增加完全随机的Token参数,每次进行敏感操作时发送的请求都不完全相同,攻击者也就没有办法伪造出一个合法的敏感操作请求,也就无法实施CSRF攻击。
解决VMware ping 不通主机和主机ping不通虚拟机的问题
现代化个人博客系统 ModStartBlog v5.3.0 留言接口新增,富文本升级
【安卓基础】Android直接通过路径来操作其他应用的私有目录,可以吗?
Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器(第6版)[原创]
SpringBoot集成POI导出Execl表格之统一工具类
执行 go vendor 时第三方包 go 版本冲突问题的解决方法
《高等运筹学》复习题手写解答 Advanced Operations Research: Final Exam:Review Exercises
Hyperbolic Relevance Matching for Neural Keyphrase Extraction阅读笔记