CSRF介绍
CSRF是什么
CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。
攻击方式
攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账…造成的问题包括:个人隐私泄露以及财产安全。
攻击原理
从上图可以看出,要完成一次CSRF攻击,受害者必须依次完成两个步骤:
1.登录受信任网站A,并在本地生成Cookie。
2.在不登出A的情况下,访问危险网站B。
CSRF和XSS的区别
XSS
通过盗取网站内的已有的用户的身份,然后再执行相关操作
CSRF
通过伪装(伪造、更改状态的请求)用户身份(即盗用身份),通过服务器身份认证后,然后发送恶意请求(服务器会认为请求是合法的),但是服务器给出响应肯定是给真实的那个用户
防御方式
目前防御 CSRF 攻击主要有三种策略:
-
验证 HTTP Referer 字段;
-
在请求地址中添加 token 并验证;
-
在 HTTP 头中自定义属性并验证。
pikachu靶场练习
CSRF(get)
我们打开靶场,首先看到一个登录页面,根据提示登录kobe用户
登录之后看到可以修改个人信息,那么我们就修改一手
我把地址从湖人改成旧金山,提交能观察到网址栏有一个很快的跳转,跳转后原URL并没有变化
那我们开bp抓包看看,改一下性别,改成girl
从上面的url可见,修改用户信息的时候,是不带任何不可预测的认证信息的。那么,这里应该是可以被利用的。
于是我们直接构造这个URL,修改别的信息,发给登录状态或cookie/session没有过期的被攻击者,则她的信息被你指定的修改了。
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