csrf-基于Pikachu的学习

CSRF-跨站请求伪造

CSRF的原理

CSRF攻击即Cross-site request forgery,跨站请求伪造,直白来说就是恶意网站伪装成用户,向被害网站发起操作请求。

  1. 用户输入账号信息请求登录A网站。
  2. A网站验证用户信息,通过验证后返回给用户一个cookie
  3. 在未退出网站A之前,在同一浏览器中请求了黑客构造的恶意网站B
  4. B网站收到用户请求后返回攻击性代码,构造访问A网站的语句
  5. 浏览器收到攻击性代码后,在用户不知情的情况下携带cookie信息请求了A网站。此时A网站不知道这是由B发起的。那么这时黑客就可以进行一下骚操作了!
两个条件:
1 用户访问站点A并产生了cookie

2 用户没有退出A同时访问了B

Pikachu靶场

CSRF-GET

打开题目,是一个登录框,我们直接提示一下,挑选一下受害者(因为CSRF需要用户已经登录,服务器给了一个cookie),那就allen登录一下吧。

接下来我们修改一下个人信息试试看,修改成:

我试过一次后,url很快变了一下,我们看不到,所以burp启动,捕捉一下吧,发现的确有参数

我们给参数值复制一下,然后把包发了,停止抓包了,我们就刚才那个参数开始去构造payload一下。

(我这里是搭建在本地了,所以你构造的时候需要写你靶场在的url)

http://localhost/pikachu-master/vul/csrf/csrfget/csrf_get_edit.php?sex=hack&phonenum=hack&add=hack&email=hack&submit=submit

然后我们去浏览器拿着payload访问一下:

啊啊啊,我的信息被改了,GG

CSRF-POST

这道题还是一个登录,这次选取受害者vince

点击修改个人信息,然后burp抓包,发现是POST请求,所以不能直接访问链接去触发CSRF,需要我们去构造一个html,这里我们直接用burp的工具生成

生成如下,我们复制粘贴,创一个html文件

点击submit,发现信息被更改了

注意打开这个html文件的时候用的浏览器一定要与账号登陆的那个浏览器一样才行

CSRF-token

这次受害对象我选的kevin

点击修改个人信息,抓包看看怎么个事

加了一个token值,token值每次都会改变,CSRF攻击就不起效了,收拾跑路吧!

CSRF的防御措施

javascript - CSRF是什么?有效的防御措施有哪些? - 前端_风雨开发路 - SegmentFault 思否

什么是CSRF?如何防御CSRF攻击?知了堂告诉你 - 知乎 (zhihu.com)

热门相关:大文豪   天龙剑尊   剑斗九天   盖世双谐   娇妻太甜:禁欲总裁,别太急