学学CSRF攻击的原理与防范

什么是CSRF 跨站点请求伪造

攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的问题包括:个人隐私泄露以及财产安全。

攻击步骤:

1.浏览登陆网站A 2.网站A用户验证通过,在用户客户端产生cookie 3.用户在没有登出A网站的情况下,访问到了危险网站B 4.网站B对网站A发送恶意请求 5.浏览器带着恶意请求之前保存的cookie访问网站A 6.因为带着cookie,网站A以为是用户在操作,处理了网站B的恶意请求。从而达到了模拟用户操作的目的。

常见的CSRF攻击类型

1.get类型的CSRF 只需要一个http请求 在受害者访问含有这个img的页面后,浏览器会自动向http://bank.example/withdraw?account=xiaoming&amount=10000&for=hacker发出一次HTTP请求,bank.example就会收到包含受害者登录信息的一次跨域请求。 2.Post类型的CSRF 这种类型的CSRF利用起来通常使用的是一个自动提交的表单,如:

 <form action="http://bank.example/withdraw" method=POST><input type="hidden" name="account" value="xiaoming" />`<input type="hidden" name="amount" value="10000" /><input type="hidden" name="for" value="hacker" /></form><script> document.forms[0].submit(); </script> 

3.链接类型的CSRF 链接类型的CSRF并不常见,比起其他两种用户打开页面就中招的情况,这种需要用户点击链接才会触发。这种类型通常是在论坛中发布的图片中嵌入恶意链接,或者以广告的形式诱导用户中招,攻击者通常会以比较夸张的词语诱骗用户点击

CSRF的特点

1.攻击发起方为第三方网站,而不是被攻击的网站。 2.攻击者利用用户的登陆凭证,冒充用户进行操作,而不是窃取数据 3.跨站请求可以有很多方式,如图片,表单,超链接

CSRF和Xss的区别

XSS是代码注入问题,Csrf是HTTP问题 XSS是没有进行输入过滤导致将攻击者的输入当代码执行 CSRF是因为浏览器发送请求的时候自动带上了Cookie

如何防御

1.验证码:完成验证码操作才能处理请求 2.token:token 验证的 CSRF 防御机制是公认最合适的方案

网络安全入门学习路线

其实入门网络安全要学的东西不算多,也就是网络基础+操作系统+中间件+数据库,四个流程下来就差不多了。

1.网络安全法和了解电脑基础

其中包括操作系统Windows基础和Linux基础,标记语言HTML基础和代码JS基础,以及网络基础、数据库基础和虚拟机使用等...

别被这些看上去很多的东西给吓到了,其实都是很简单的基础知识,同学们看完基本上都能掌握。计算机专业的同学都应该接触了解过,这部分可以直接略过。没学过的同学也不要慌,可以去B站搜索相关视频,你搜关键词网络安全工程师会出现很多相关的视频教程,我粗略的看了一下,排名第一的视频就讲的很详细。 当然你也可以看下面这个视频教程仅展示部分截图 学到http和https抓包后能读懂它在说什么就行。

2.网络基础和编程语言

3.入手Web安全

web是对外开放的,自然成了的重点关照对象,有事没事就来入侵一波,你说不管能行吗! 想学好Web安全,咱首先得先弄清web是怎么搭建的,知道它的构造才能精准打击。所以web前端和web后端的知识多少要了解点,然后再学点python,起码得看懂部分代码吧。

最后网站开发知识多少也要了解点,不过别紧张,只是学习基础知识。

等你用几周的时间学完这些,基本上算是具备了入门合格渗透工程师的资格,记得上述的重点要重点关注哦! 再就是,要正式进入web安全领域,得学会web渗透,OWASP TOP 10等常见Web漏洞原理与利用方式需要掌握,像SQL注入/XSS跨站脚本攻击/Webshell木马编写/命令执行等。

这个过程并不枯燥,一边打怪刷级一边成长岂不美哉,每个攻击手段都能让你玩得不亦乐乎,而且总有更猥琐的方法等着你去实践。

学完web渗透还不算完,还得掌握相关系统层面漏洞,像ms17-010永恒之蓝等各种微软ms漏洞,所以要学习后渗透。可能到这里大家已经不知所云了,不过不要紧,等你学会了web渗透再来看会发现很简单。

其实学会了这几步,你就正式从新手小白晋升为入门学员了,真的不算难,你上你也行。

4.安全体系

不过我们这个水平也就算个渗透测试工程师,也就只能做个基础的安全服务,而这个领域还有很多业务,像攻防演练、等保测评、风险评估等,我们的能力根本不够看。

所以想要成为一名合格的网络工程师,想要拿到安全公司的offer,还得再掌握更多的网络安全知识,能力再更上一层楼才行。即便以后进入企业,也需要学习很多新知识,不充实自己的技能就会被淘汰。

从时代发展的角度看,网络安全的知识是学不完的,而且以后要学的会更多,同学们要摆正心态,既然选择入门网络安全,就不能仅仅只是入门程度而已,能力越强机会才越多。

尾言

因为入门学习阶段知识点比较杂,所以我讲得比较笼统,最后联合CSDN整理了一套【282G】网络安全从入门到精通资料包,需要的小伙伴可以点击链接领取哦!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSRF(Cross-Site Request Forgery)攻击是一种常见的网络安全漏洞,它利用了网站对用户请求的信任,通过伪造用户的请求来执行恶意操作。 攻击原理: 1. 用户登录受信任的网站A,并在本地生成了相应的会话Cookie。 2. 攻击者诱使用户访问恶意网站B,该网站中包含了针对网站A的恶意请求。 3. 网站B的恶意请求会自动触发用户浏览器发送一个针对网站A的请求,由于用户在访问网站A时已经登录,并且浏览器会自动携带相应的会话Cookie。 4. 网站A接收到请求后,会认为是用户自己的合法请求,然后执行相应的操作,比如修改密码、发起转账等。 解决方法: 1. 验证码(CAPTCHA):引入验证码可以阻止CSRF攻击,因为攻击者无法获取到验证码的内容,无法伪造合法请求。 2. 同源检测:在服务器端对请求进行来源验证,只允许来自同一域名下的请求通过。可以通过检查Referer字段或者使用CSRF Token来实现。 3. CSRF Token:在每个表单或者请求中引入一个随机生成的Token,并在服务器端校验,如果请求中没有正确的Token,则拒绝执行操作。 4. 阻止第三方网站请求:可以通过设置HTTP头部的SameSite属性为Strict或者Lax来限制第三方网站对Cookie的访问。 5. 双重Cookie验证:除了验证会话Cookie,还可以在请求中包含一个随机生成的Token,并在服务器端进行验证。 以上是一些常见CSRF攻击的解决方法,但并不是绝对安全的,开发者在设计和开发过程中还需要综合考虑其他安全措施来确保网站的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值