初识CSRF

概述

跨站请求伪造(Cross-site request forgery)通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。CSRF并不是攻击网站服务器,而是冒充用户在站内的正常操作

在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接)然后欺骗目标用户进行点击,用户一旦点击了这个请求,整个攻击就完成了。所以CSRF攻击也成为"one click"攻击

CSRF包括三个角色:

  • 正常浏览网页的用户

  • 正规的但是具有漏洞的网站

  • 利用CSRF进行攻击的第三方网站

初识CSRF_第1张图片

CSRF的危害

  • 修改账户信息

  • 传播蠕虫病毒(发邮件,盗取用户信息,转账等)

  • 上传木马文件等

XSS与CSRF区别

跟跨网站脚本攻击(XSS)相比,xss是利用脚本获取到网站cookie伪装成站点内的信任用户,而CSRF则通过在用户登录的状态下伪装成受信任用户执行用户操作,不会获取cookie

CSRF漏洞的攻击需要满足条件:

  • 目标用户已经登录了网站,能够执行网站功能

  • 目标用户访问了攻击者构造的第三方网页

实战

这里采用pikachu的靶场实战深入了解CSRF

GET

根据题目描述,应该是GET请求相关的题目

初识CSRF_第2张图片

登半天登不上去哦,最后试了一下admin+123就上去了,也不知道为啥

登录进去之后就叫我们修改信息,上面关于CSRF漏洞的危害也了解过是可以更改用户信息的

初识CSRF_第3张图片

但是url栏里并没有关于修改的变化,采取burp抓包看看

初识CSRF_第4张图片

可以看到这里确实是GET请求修改用户信息,我们可以直接改包修改,也可以利用CSRF漏洞

初识CSRF_第5张图片

我们将数据包中的GET请求复制下来并更改参数,利用它和http的a标签制作一个新的第三方网页

点我抽奖!

导入新建文件中,更改后缀

初识CSRF_第6张图片

双击打开,至于这里为啥会乱码,应该是字符编码的问题,不过没事,能做出来就好

初识CSRF_第7张图片

点击访问连接可以看到这里的数据已经变成了,我们新建第三方网页的数据了,只需要发包就可以直接更改用户的信息

但是这里需要注意的是,修改用户信息的请求数据每一项都要添上,我第一次尝试的时候就只填了一行数据,结果修改不成功 ,也可能有不同的情况

发包之后就可以发现我们的数据已经被修改掉了

初识CSRF_第8张图片

POST

想也知道不能用上把的方式了,其实抓包后直接更改红框字段也没差,他可以直接更改用户信息

但是我们主要是练习CSRF

初识CSRF_第9张图片

经过查找资料,发现我们可以使用burp自带的功能生成一个POSTpoc

初识CSRF_第10张图片

而且参数也给弄好了,直接更改就行了,虽然看起来这根直接修改参数没有什么区别,但是可能只是因为知识不对等,看不出其中的效果

初识CSRF_第11张图片

运行之后可以看到 其他参数因为属性的原因都隐藏了,只有一个提交按钮,我们点击抓包就会发信POST请求的值发生了改变

初识CSRF_第12张图片

原数据也成功更改

初识CSRF_第13张图片

Token

这关与GET的唯一区别在于多了一个token字段

初识CSRF_第14张图片

经过多次实验也不行,都不行,这关是由Token来识别用户的

通过百度知晓这关是不能解答的,这关会在每次访问的时候生成一个Token值,访问完就会销毁

你可能感兴趣的:(CSRF,csrf,前端,安全)