二、漏洞原理
主要基于攻击者利用用户在已登录状态下的身份认证信息,诱骗其执行非预期的操作。
具体来说,攻击者会通过各种手段(如创建恶意网站、发送恶意邮件等)诱使用户点击链接或访问恶意页面。
这些链接或页面会包含伪造的请求,当用户浏览器发送这些请求时,由于浏览器会自动携带用户的身份认证信息(如cookie),因此服务器会误认为这些请求是用户本人发出的。
CSRF漏洞的存在主要依赖于两个前提:一是用户需要在目标网站上保持登录状态,这样浏览器才能携带有效的身份认证信息;二是攻击者能够构造出伪造的请求,并将其嵌入到恶意链接或页面中。
三、危害和防御手段
1.危害
修改账户信息
利用管理员账户,上传木马文件
传播蠕虫病毒
和其他攻击手段配合,实现攻击,比如XSS,SQL注入
2.防御
(1)同步令牌模式:这是防范CSRF攻击最常用且最有效的方法之一。服务器要求每次的请求都要有一个随机生成的token,这个token在服务器端是唯一的,每次客户端请求时,服务器都会检查这个token,如果请求中没有token或者token不正确,那么这个请求就会被认为是伪造的。
(2)检查请求头中的Referer:HTTP头中有一个Referer字段,它记录了该HTTP请求的来源地址。在通常情况下,访问一个安全受限页面的请求来自于同一个网站,而如果黑客要对用户发起CSRF攻击,他只能在他的网站构造请求,当用户点击链接后,请求就会来自黑客的网站。因此,要检查请求是否来自本网站,如果不是,则可能是CSRF攻击。
(3)在请求地址中添加token并验证:CSRF攻击之所以能够成功,是因为黑客可以伪造用户的请求,该请求中所有的用户验证信息都是存在于cookie中,因此黑客可以在不知道这些验证信息的情况下直接通过浏览器发送这些请求。要抵御CSRF,关键在于在请求中放入黑客所不能伪造的信息,并且该信息不存在于cookie之中。可以在HTTP请求中以参数的形式加入一个随机产生的token,并在服务器端建立一个拦截器来验证这个token,如果请求中没有token或者token内容不正确,则认为可能是CSRF攻击而拒绝该请求。
四、DVWA靶场漏洞复现
1.Low级别
点击test credentials,输入admin,password
点击一起change,发现URL上出现了信息,这是一个GET传参,可以直接在URL中修改
修改密码
修改了密码之后,可以回到靶场的暴力破解关卡去验证,输入原密码,发现错误,那么修改成功。
最后可以重置一下数据库,恢复到原来的账号密码
2.Medium级别
首先查看源代码,Medium级别的代码使用HTTP_REFERER中是否包含SERVER_NAME来防御CSRF
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
以戳我获取!!**](https://bbs.csdn.net/topics/618653875)
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!