CSRF介绍

CSRF是什么

CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。

攻击方式

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

攻击原理

CSRF原理图
从上图可以看出,要完成一次CSRF攻击,受害者必须依次完成两个步骤:

1.登录受信任网站A,并在本地生成Cookie。

2.在不登出A的情况下,访问危险网站B。

CSRF和XSS的区别

==XSS==
通过盗取网站内的已有的用户的身份,然后再执行相关操作

==CSRF==
通过伪装(伪造、更改状态的请求)用户身份(即盗用身份),通过服务器身份认证后,然后发送恶意请求(服务器会认为请求是合法的),但是服务器给出响应肯定是给真实的那个用户

防御方式

目前防御 CSRF 攻击主要有三种策略:

  1. 验证 HTTP Referer 字段;

  2. 在请求地址中添加 token 并验证;

  3. 在 HTTP 头中自定义属性并验证。

pikachu靶场练习

CSRF(get)

我们打开靶场,首先看到一个登录页面,根据提示登录kobe用户
get
登录之后看到可以修改个人信息,那么我们就修改一手xiugai
我把地址从湖人改成旧金山,提交能观察到网址栏有一个很快的跳转,跳转后原URL并没有变化
在这里插入图片描述
在这里插入图片描述
那我们开bp抓包看看,改一下性别,改成girl
在这里插入图片描述
在这里插入图片描述
从上面的url可见,修改用户信息的时候,是不带任何不可预测的认证信息的。那么,这里应该是可以被利用的。
于是我们直接构造这个URL,修改别的信息,发给登录状态或cookie/session没有过期的被攻击者,则她的信息被你指定的修改了。

1
http://127.0.0.1/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=girl&phonenum=15988767673&add=CHina&email=kobe%40pikachu.com&submit=submit

这个链接很长,我们还可以使用短链接
短链接平台
在这里插入图片描述
使用此平台缩短后,钓鱼成功率更高了

http://c.nxw.so/dcbbh