CTF实战10 CSRF跨站请求伪造漏洞
Posted 玄魂工作室
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CTF实战10 CSRF跨站请求伪造漏洞相关的知识,希望对你有一定的参考价值。
依旧先拜祖师爷~
重要声明
该培训中提及的技术只适用于合法CTF比赛和有合法授权的渗透测试,请勿用于其他非法用途,如用作其他非法用途与本文作者无关
(不是有同学问XSS弹个框框有啥用咩?这时候你就可以有用了~)
我们今天开始学习新的内容
CSRF是Cross Site Request Forgery的缩写(也缩写为XSRF)
直译过来就是<跨站请求伪造>的意思,也就是在用户会话下对某个CGI做一些<GET/POST>的事情
也可以将CSRF理解成为高级的XSS
网站是通过cookie来识别用户的,当用户成功进行身份验证之后浏览器就会得到一个标识其身份的cookie,只要不关闭浏览器或者退出登录,以后访问 这个网站会带上这个cookie
如果这期间浏览器被人控制着请求了这个网站的url,可能就会执行一些用户不想做的功能(比如修改个人资料)
这个请求并不是用户真正想发出的请求,这就是所谓的<请求伪造>
因为这些请求也是可以从第三方网站提交的,所以前面加上<跨站>二字
比如我们打算攻击一个存在问题的Blog,那就先去目标Blog留言,留下一个网址,诱其Blog的主人点击(当然,这是一种方法,也可以使用我们上节课讲的XSS),然后构造个HTML表单提交些数据过去。
多窗口浏览器便捷的同时也带来了一些问题,因为多窗口浏览器新开的窗口是具有当前所有会话的
即我用Firefox登陆了我的Blog,然后我想看新闻了,又运行一个Firefox窗口进程(不是打开一个新的标签页,而是重新点击一遍Firefox打开另一个浏览器)
这个时候两个Firefox窗口的会话是彼此独立的,从看新闻的Firefox发送请求到Blog不会有我登录的cookie
但是多窗口浏览器(意指在同一个浏览器进程中打开一个新的标签页)永远都只有一个进程,各窗口的会话是通用的,即看新闻的窗口发请求到Blog是会带上我在Blog登录的cookie(当然,现在的浏览器安全性比以前高很多了,一般不会发生这种事~)
sdfd
要进行CSRF攻击
被攻击的受害者必须依次完成以下两个步骤:
用户已经完成身份认证
新请求的提交不需要重新身份认证或确认机制
攻击者必须了解Web APP请求的参数构造
用户会被吸引去点击链接
sdfd
<img>标签属性
<iframe>标签属性
<script>标签属性
JavaScript方法:Image对象、XMLHTTP对象
这里大概简单的用OWASP演示一下CSRF
sdfd
我们打开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就是这样的
也就是让马粑粑给我们转了5000的意思
之后当然会出来一个404的error,因为这个图片并不存在
然后我们可以来看看这个加载之后的页面
<img>因为是不存在的,所以是不会显示的,但是我们的账户上已经有了马粑粑转来的5000啦~~~
本文完
下期内容:任意下载漏洞
以上是关于CTF实战10 CSRF跨站请求伪造漏洞的主要内容,如果未能解决你的问题,请参考以下文章