WEB安全

沉睡的巨人CSRF

字号+ 作者:万年死宅 来源:i春秋社区 2016-11-25 09:20 我要评论( )

从这篇paper开始,小宅就开始为大家 介绍CSRF攻击,CSRF这种攻击方式在2000年已经被国外的安全人员提出,但在国内,直到06年才开始被关注,08年,国内外的多个大型......

* 本文原创作者:万年死宅,本文属i春秋原创奖励计划,未经许可禁止转载

前言
从这篇paper开始,小宅就开始为大家 介绍CSRF攻击,CSRF这种攻击方式在2000年已经被国外的安全人员提出,但在国内,直到06年才开始被关注,08年,国内外的多个大型社区和交互 网站分别爆出CSRF漏洞,如:NYTimes.com(纽约时报)、Metafilter(一个大型的BLOG网站),YouTube和百度 HI......而现在,互联网上的许多站点仍对此毫无防备,以至于安全业界称CSRF为“沉睡的巨人”。
所以CSRF的威 力绝对不可小嘘,CSRF可以做到什么不是取决于CSRF漏洞本身,而是取决于CSRF漏洞存在的环境,例如,一个修改密码的请求存在CSRF漏洞,那么 我们就可以通过这个CSRF修改别人密码,或者一个评论的请求存在CSRF漏洞,那么我们就能用这个CSRF来帮别人发评论。
这是一个问题,我们再来说深层次的,我们如果将CSRF与XSS结合起来?再或者将Hijacking和CSRF结合起来?这些都能做到意想不到的事。这一切就要看你的基础有多扎实,脑洞有多大了。


正文
CSRF原理

我们今天就来学习CSRF这个沉睡的巨人,我们先来说下它的原理。嘿嘿,我们还是以实验的方式来讲明原理,首先我们先运行apache服务:





接着,我们进到web根目录,新建一个demo.php文件,接着,我们再建立一个demo2.php文件,将如下代码写入demo.php中:





然后再demo1.php中写入如下代码:





我们先来到浏览器,直接访问demo.php,如下:





此时,我们来看我们的cookie信息:





可以看到,并没有任何的cookie,我们接着进入这个if分支,set这个cookie:





直接访问demo.php带上GET参数cmd=set就可以了:





我们再次刷新页面,如下输出:





根据代码,我们知道,我们获取了COOKIE_["token"],也就是说,这个Cookie已经set上了,我们来看一下:





我们到chrome管理Cookie的地方来看:





我们可以看到,在localhost域下确实被set了一个生命周期为600秒的cookie,此时,我们是在demo.php文件下被set的cookie,我们此时来访问demo2.php,如下:





我们可以看到,在demo2.php下,我们也获取到了cookie,也就是说在我们在同域中的Cookie是在被该域下的文件共用的。如果我们存在如下这样一个请求用来发评论:





我们可以看到,这个POST请求,请求了www.example.com域下的msg.php文件,带上的POST参数是msg=hello%20world,好滴,评论的内容是知道了,但是网站怎么知道这是谁评论的呢?这是就用到了之前用户登录的时候set的cookie,也就是这里的uid。
这个uid就相当与这个用户在这个网站上的凭证,用户拿出uid的时候,网站程序才会承认用户的身份。
我们知道,当我们的域下有set了cookie的话,在该cookie的生命周期之内对于该域下任意文件的访问,浏览器都会吧cookie带上,例如说我们构造如下一个页面demo3.php:





我们现在删除刚才的token这个cookie,然后直接访问demo3.php,如下:





可以看到输出了Bad,我们假设正确的用户访问此页面就能给好友发个私信,此时呢,又有一个攻击者想要让用户发送一条特殊的私信。
但是呢,攻击者并没有用户的cookie,不能去发送这个请求,于是就有了如下这张CSRF原理图:







小宅的涂鸦水平大概还在幼儿园,阿西吧。。。别嘲笑我。。。这张图,相信能够让你大呼一声,我靠了吧,原来如此。。。
好吧,那我们就来试试,他是怎么攻击的,我们就拿此时的demo3.php来做测试。
我们构造如下PoC:





接着,我们用demo.php?cmd=set来吧cookie给set上,然后访问我们的POC.html:





成功借刀杀人,借到了用户的COOKIE做成了用户能做的事。今天,我们就说到这里,我们下篇paper再见!

本文来自: 蜗蜗侠's Blog-关注网络安全 http://blog.icxun.cn/Web/252.html

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 浅谈如何防止csrf攻击

    浅谈如何防止csrf攻击

    2017-03-08 14:37

  • 如何挖掘CSRF漏洞与CSRF漏洞修补

    如何挖掘CSRF漏洞与CSRF漏洞修补

    2016-11-24 20:07

网友点评
暂时未开启评论功能~