前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CTF实战10 CSRF跨站请求伪造漏洞

CTF实战10 CSRF跨站请求伪造漏洞

作者头像
用户1631416
发布2018-07-25 12:07:51
2.5K0
发布2018-07-25 12:07:51
举报
文章被收录于专栏:玄魂工作室玄魂工作室

重要声明

该培训中提及的技术只适用于合法CTF比赛和有合法授权的渗透测试,请勿用于其他非法用途,如用作其他非法用途与本文作者无关

(不是有同学问XSS弹个框框有啥用咩?这时候你就可以有用了~)
我们今天开始学习新的内容
CSRF概述

CSRFCross Site Request Forgery的缩写(也缩写为XSRF

直译过来就是<跨站请求伪造>的意思,也就是在用户会话下对某个CGI做一些<GET/POST>的事情

也可以将CSRF理解成为高级的XSS

网站是通过cookie来识别用户的,当用户成功进行身份验证之后浏览器就会得到一个标识其身份的cookie,只要不关闭浏览器或者退出登录,以后访问 这个网站会带上这个cookie

如果这期间浏览器被人控制着请求了这个网站的url,可能就会执行一些用户不想做的功能(比如修改个人资料)

这个请求并不是用户真正想发出的请求,这就是所谓的<请求伪造>

因为这些请求也是可以从第三方网站提交的,所以前面加上<跨站>二字

CSRF例子

比如我们打算攻击一个存在问题的Blog,那就先去目标Blog留言,留下一个网址,诱其Blog的主人点击(当然,这是一种方法,也可以使用我们上节课讲的XSS),然后构造个HTML表单提交些数据过去。

多窗口浏览器便捷的同时也带来了一些问题,因为多窗口浏览器新开的窗口是具有当前所有会话的

即我用Firefox登陆了我的Blog,然后我想看新闻了,又运行一个Firefox窗口进程(不是打开一个新的标签页,而是重新点击一遍Firefox打开另一个浏览器)

这个时候两个Firefox窗口的会话是彼此独立的,从看新闻的Firefox发送请求到Blog不会有我登录的cookie

但是多窗口浏览器(意指在同一个浏览器进程中打开一个新的标签页)永远都只有一个进程,各窗口的会话是通用的,即看新闻的窗口发请求到Blog是会带上我在Blog登录的cookie(当然,现在的浏览器安全性比以前高很多了,一般不会发生这种事~)

攻击的条件

要进行CSRF攻击

被攻击的受害者必须依次完成以下两个步骤:

  • 用户已经完成身份认证
  • 新请求的提交不需要重新身份认证或确认机制
  • 攻击者必须了解Web APP请求的参数构造
  • 用户会被吸引去点击链接

几种常见的CSRF方式

  • <img>标签属性
  • <iframe>标签属性
  • <script>标签属性
  • JavaScript方法:Image对象、XMLHTTP对象
这里大概简单的用OWASP演示一下CSRF

简单的演示

我们打开OWASP里面关于CSRF的界面

这里题目的大概意思是这样的:

你的目标是向newsgroup发送一个email,其中email中包含URL指向恶意请求的图像

尝试包含网址的1x1像素图片

然后将该URL应该指向CSRF课程页面,并带有一个额外的参数<transferFunds=4000>

您可以从左侧菜单中复制快捷方式,方法是右键单击左侧菜单并选择复制快捷方式

无论谁收到这封电子邮件并恰好在那个时候进行认证,他的资金都将被转移

当您认为攻击成功时,刷新页面,您会在左侧菜单中找到绿色检查

这个攻击思路可以很传统了,而且题目已经提示我们可以加<transferFunds=4000>来进行攻击,也省去了我们分析我们希望被攻击者执行哪个链接的操作

假设现在我们用某宝来做例子

我们在发送给马粑粑的一个email中的<img>属性中包含了一个以恶意的URL,这个URL指向的是一个某宝商品

马粑粑一天没事,用自己账户余额3亿的的某宝账户登录某宝随便逛逛,然后打开邮件查看新的邮件

就在他打开邮件的时候,我们的隐藏在<img>中的代码就执行,瞬间就把马粑粑账户转了5000过来

那我们就来试试这个攻击思路

我们构造如下的Payload

之后我们假设我们现在成了马粑粑

在自己的邮箱里面发现了这个新邮件,然后好奇,打开来看看

在点击这个链接的时候,我们用BurpSuite来截包看看

这是第一个Request

可以看到,我们的第一个Request是要去打开这个邮件

网站返回了一个Response之后,我们下一个Request也就是第二个Request就是这样的

这个流量的逻辑意义是要去加载我们的那个<img>图片,但是这个图片是不存在的,而且我们还在这个地址上加了一个希望马粑粑执行的&transferFunds=5000

也就是让马粑粑给我们转了5000的意思

之后当然会出来一个404error,因为这个图片并不存在

然后我们可以来看看这个加载之后的页面

<img>因为是不存在的,所以是不会显示的

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 玄魂工作室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
多因子身份认证
多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档