简介
CSRF跨站请求伪造,全称Cross-site request forgery,是指利用受害者尚未失效的身份认证信息(cookie、会话等),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的情况下以受害者的身份向(身份认证信息所对应的)服务器发送请求
,从而完成非法操作(如转账、改密等)。CSRF是Web安全中最容易被忽略的一种攻击方式,但某些时候却能产生强大的破坏性。
CSRF 攻击原理
1
用户打开浏览器,访问登陆受信任的A网站2
在用户信息通过验证后,服务器会返回一个cookie给浏览器,用户登陆网站A成功,可以正常发送请求到网站A3
用户未退出网站A,在同一浏览器中,打开一个危险网站B4
网站B收到用户请求后,返回一些恶意代码,并发出请求要求访问网站A5
浏览器收到这些恶意代码以后,在用户不知情的情况下,利用cookie信息,向网站A发送恶意请求,网站A会根据cookie信息以用户的权限去处理该请求,导致来自网站B的恶意代码被执行
伪造GET/POST请求
在CSRF攻击流行之初,曾经很多人认为CSRF只能由GET请求发起,因此很多开发者认为只要把重要的操作改成只允许POST请求就能防止CSRF攻击。
这种错误的观点形成的原因在于,大多数CSRF发起攻击时,使用的都是 //
在2007年Gmail CSRF漏洞攻击过程中安全研究者pdp展示了这个技巧:
首先用户需要登录Gmail账户以便获取Gmail的临时Cookie,然后攻击者诱使用户访问一个恶意页面,在这个恶意页面中隐藏了一个iframe,iframe的地址指向pdp写的一个恶意链接,这个链接的实际作用就是把参数生成一个POST表单并提交。pdp的攻击脚本会在邮箱的Filter中新建一条规则,把所有带附件的邮件都转发到攻击者指定的邮箱,由于浏览器中已经存在Gmail的临时Cookie,所以这个请求会成功。
CSRF 蠕虫
2008年9月百度曾经受到CSRF蠕虫病毒攻击,漏洞出现在百度用户中心的发送短消息功能中:
http://msg.baidu.com/?ct=22&cm=MailSend&tn=bmSubmit&sn=用户账户&con=消息内容
这个链接只要修改参数sn即可对指定的用户发送短消息,而攻击者发现另一个接口能查询出某个用户的所有好友,将两者结合起来,可以组成一个CSRF Worm-让一个百度用户查看恶意页面后,将给他的所有好友发送一条短消息,然后这个短消息中又包含一张图片,其地址再次指向CSRF页面,使得这些好友再次将消息发给他们的好友,这个Worm因此得以传播。
这个蠕虫很好的展示了CSRF的破坏性-即使没有Xss漏洞,仅仅是CSRF也是能够发起大规模蠕虫攻击的
CSRF 防御
下面看看有什么方法可以防御这种攻击。
1.验证码
验证码被认为是对抗CSRF攻击最简洁而有效的防御方法。
CSRF攻击的过程,往往是在用户不知情的情况下构造了网络请求,而验证码强制用户必须与应用进行交互才能完成最终请求。但是很多时候,出于对用户体验考虑,网站不能给所有的操作都加上验证码,因此验证码只能作为防御CSRF的一种辅助手段,而不能作为最主要的解决方案。
还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!
王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。
对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!
【完整版领取方式在文末!!】
93道网络安全面试题
内容实在太多,不一一截图了
黑客学习资源推荐
最后给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
😝朋友们如果有需要的话,可以联系领取~
1️⃣零基础入门
① 学习路线
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
② 路线对应学习视频
同时每个成长路线对应的板块都有配套的视频提供:
2️⃣视频配套工具&国内外网安书籍、文档
① 工具
② 视频
③ 书籍
资源较为敏感,未展示全面,需要的最下面获取
② 简历模板
因篇幅有限,资料较为敏感仅展示部分资料,添加上方即可获取👆