你所不知道的CSRF攻击,DWVA手把手教程

作者: 金沙澳门官网网址  发布:2019-11-21

 

CSRF到底是什么?

跨站请求伪造(Cross-site request forgery):是一种挟制用户在当前已登陆的Web应用程序上执行非本意操作的网络攻击方法,也被称为one-click attack或者session riding,通常缩写为CSRF或者XSRF。

那么请说人话:CSRF是一种网络攻击方式,可以在用户毫不知情的情况下以用户的名义伪造请求发送给受攻击站点(指的是我们日常通过账号密码等授权登陆的网站),从而使用户在不知情或非本意的情况下执行权限内的操作,比如以你的名义发送邮件、发消息、盗取你的账号、添加系统管理员,甚至于购买商品、虚拟货币转账等等,具有很大的危害性。
由于浏览器曾今被认证过,所以被访问的网站会认为是真正的用户操作而去执行。这就利用了web中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。

图片 1

CSRF攻击原理

CSRF攻击原理如下图所示。其中Web A为存在CSRF漏洞的网站,Web B为攻击者构建的恶意网站,User C为Web A网站的合法用户,同时User C也是倒霉蛋受害者。

图片 2

CSRF攻击原理

从上图可以看出,要完成一次CSRF攻击,倒霉蛋受害者必须依次完成以下几个步骤:
1. 用户C打开浏览器,访问受信任网站A,输入用户名密码请求登陆网站A;
2. 在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;
这时候你如果问我什么是Cookie,麻溜的去google好吗!我知道我这样说你一定会打我,那么我还是告诉你吧 :)

图片 3

图片 4

什么是Cookie:是浏览器访问服务器后,服务器传给浏览器的一段数据,用来记录某些当页面关闭或者刷新后仍然需要记录的信息。浏览器会将这段数据保存,不会轻易删除。此后每次浏览器访问该服务器,都必须带上这段数据。Cookie一般有两个作用:

  • 识别用户身份
  • 记录历史

3. 用户未退出网站A之前,在同意浏览器中,打开一个Tab页访问网站B;
4. 网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方网站A;
5. 浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发送请求。网站A并不知道该请求实际上是由B发起的,所以会根据用户C的Cookie信息以C的权限处理该请求,导致来自网站B的恶意代码被执行。

你千万不要问我是不是如果不登录A网站或者不在登录A网站的同时去访问B网站就不会受到CSRF攻击了。你当人坏蛋傻?
首先,你不能保证你登录了一个网站之后,不在打开另一个Tab页面并访问其他网站。
其次,你不能保证你关闭浏览器之后,你本地的Cookie立刻过期,你上次的会话已经结束。
最后,上述中所谓的攻击网站,很可能就是一个钓鱼网站或者黄色网站。
如果你拍着胸脯保证,那么请你赶紧的Alt f4关闭这个窗口 :)

欢迎来到CSRF漏洞章节,在此,请允许作为#灵魂画师!!#的我图文并茂的为大家简单介绍一下CSRF漏洞:

采取什么样的防范措施?

来来来,我们先从根源出发,anti-csrf-token方案(校验token)

  1. 服务端在收到路由请求时,生成一个随机数,在渲染请求页面是把随机数埋入页面(一般埋入form表单内)。
  2. 服务端设置setCookie,把该随机数作为cookie或者session种入用户浏览器。
  3. 当用户发送GET或POST请求时带上_csrf_token参数(对于form表单直接提交即可,因为会自动把当前表单内所有的input提交给后台,包括_csrf_token)。
  4. 后台在接受到请求后解析请求的cookie获取_csrfz-token的值,然后和用户请求提交的_csrf_token做个比较,如果相等表示请求合法。
    建议:少用GET方法。假如攻击者在我们的网站上传了一张图片,用户在加载图片时实际上是向攻击者的服务器发送了请求,这个请求会带有referer表示当前图片所在页面的URL。而如果使用GET方式接口的话攻击者会轻易的获取_csrf_token,短时间可以使用这个token来操作其他GET接口。

CSRF跨站点请求伪造(Cross—Site Request Forgery)

结语:

请大家养成良好上网习惯,不要轻易点击链接或图片,及时退出长时间不使用的已登录账户,安装防护软件并及时更新:)

你可以这样来理解:
       攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,

       但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账等。 

如下:其中Web A为存在CSRF漏洞的网站,Web B为攻击者构建的恶意网站,User C为Web A网站的合法用户。

图片 5

 

       CSRF攻击攻击原理及过程如下:

       1. 用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A;

       2.在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;

       3. 用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B;

       4. 网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A; 

       5. 浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。网站A并不知道该请求其实是由B发起的,所以会根据用户C的Cookie信息以C的权限处理该请求,导致来自网站B的恶意代码被执行。 

 

图片 6

在此处DWVA的CSRF漏洞中,我们可以看到重置密码操作就是一个网站认为完全合理同时也是攻击者意图的一个操作。

敲黑板,划重点:CSRF漏洞的判定:修改referer头或直接删除referer头,看网站是否正常响应。

此处的结论很显然:存在CSRF漏洞!

下面我们简单探讨下CSRF漏洞的利用,

(我才没有教坏大家的意思,如果你想,请先学好社工)

通过上述抓包我们构造一个url。生成一个网页并放到网上用来调用,这里我放到了个人服务器上(才不会暴露的说)

<img src="************************/vulnerabilities/csrf/?password_new=admin&password_conf=admin&Change=Change HTTP/1.1" border="0" style="display:none;"/>

我们采用<image>标签来提高我们的隐蔽性。

这里我放到了个人网站的根目录下,直接IP/文件名执行。

图片 7

通过FTP上传至服务器,要学server-U构造FTP服务器的,请网络自寻资源,需要破解工具和教程的可以私信我(mark,非广告,大不了后面出教程)

图片 8

给你们偷看一样,手动滑稽~

图片 9

登陆DWVA,当前用户密码password,开new Tab,进入我们构造好的url~

图片 10

然后回到我们的登陆界面,使用旧密码password登陆

图片 11

使用新密码admin登陆

图片 12

欢迎回了,CSRF漏洞利用,密码修改成功。

DWVA中此处的漏洞为get方法提交

在此我简单讲一下post方法提交时csrf漏洞的利用

步骤与get方法基本一致,只是构造html的操作全权丢给burpsuite

(什么?为什么是灰的?因为我偷懒没抓包)

使用Generate CSRF PoC功能

burpsuite会为你生成html文件源码

复制粘贴保存,即为我们所需html文件

像上述get方法一样上传第三方网站就可以啦

图片 13

在此给大家留一个我也不知道答案(对呀,我!不!会!)的讨论:

burpsuite 自动生成post方法的csrf漏洞利用代码,其中的中文编码问题,导致的漏洞利用失败,

失败情况:被服务器认为编码(乱码)处存在威胁,返回报错信息

解决方法:删除乱码,或者替换乱码为纯数字

本文由金沙澳门官网发布于金沙澳门官网网址,转载请注明出处:你所不知道的CSRF攻击,DWVA手把手教程

关键词: 金沙澳门官网