CSRF攻击-苏醒的巨人-附带靶场

Posted lovesec

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CSRF攻击-苏醒的巨人-附带靶场相关的知识,希望对你有一定的参考价值。


CSRF攻击-苏醒的巨人-附带靶场

     CSRF是Web应用程序的一种常见漏洞,其攻击特性是危害性大但非常隐蔽,尤其是在大量Web 2.0技术的应用背景下,攻击者完全可以在用户毫无察觉的情况下发起CSRF攻击。本文将对其基本特性、攻击原理、攻击分类、检测方法及防范手段做一个系 统的阐述,并列举攻击实例。


一.1.1  CSRF漏洞简介

    CSRF(Cross-Site Request Forgery,跨站点伪造请求)是一种网络攻击方式,该攻击可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击站点,从而在未授权的情况下 执行在权限保护之下的操作,具有很大的危害性。具体来讲,可以这样理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请 求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账 等。

 

    CSRF攻击方式并不为大家所熟知,实际上很多网站都存在CSRF的安全漏洞。早在2000年,CSRF这种攻击方式已经由国外的安全人员提出,但在国 内,直到2006年才开始被关注。2008年,国内外多个大型社区和交互网站先后爆出CSRF漏洞,如:百度HI、NYTimes.com(纽约时报)、 Metafilter(一个大型的BLOG网站)和YouTube等。但直到现在,互联网上的许多站点仍对此毫无防备,以至于安全业界称CSRF为“沉睡 的巨人”,其威胁程度由此“美誉”便可见一斑。

 

一.1.2  CSRF攻击原理及实例

当 我们打开网站或者登陆某个网站后,就会产生一个会话(这里指用户登陆后),这个会话可能是SESSION,Cookie控制,但是这是无关紧要的。唯一的 重点是浏览器与服务器之间是在会话之中,在这个会话没有结束时候,你可以利用你的权限对网站进行操作,如进行发表文章,发邮件,删除文章等操作。当这个会 话结束后,你在进行某些操作时候Web应用程序通常会来提醒你,您的会话已过期,或者是请重新登陆等提示。

 

这 非常好理解,就像我们登陆网上银行后,Web浏览器已经跟可信的站点建立了一个经认证的会话。之后,只要是通过该Web浏览器这个认证的会话所发送的请 求,都被视为可信的动作,例如转账,汇款等操作。当我们在一段时间内不进行操作后,在来重新做转账,或者汇款操作,那么这个站点可能会提示你:您的身份已 过期,请重新登陆或者会话结束等消息。

        而CSRF攻击则是建立会话之上的攻击。比如当你登陆了网上银行,正在进行转账业务,这时你的某个QQ好友(攻击者)发来一条消息(URL),这条消息是 攻击者精心构造的转账业务代码。而且与你所登录的网站是同一个银行,你可能认为这个网站是安全的,并不是什么钓鱼网站之类的,然后打开了这条URL,那么 你的账户的钱可能就在你的这一次小小点击上全部丢失。

怎么可能这么神奇呢?其实这并不神奇。主要是因为你的浏览器正处于与此网站的会话之中,那么一些操作都是合法的,而入侵者构造的这段代码只不过是正常的转账操作代码而已。比如说你想给用户spisec转账1000元,那么点击提交按钮之后,可能会发送以下请求:

 

 

而攻击者仅仅是改变一下user参数与money参数即可完成一次“合法”的攻击,如:

 

       

 

当你访问了这条URL之后,就会自动向hack这个账户里面转入10000元。而这是你亲手造成的,并没因为有人去破解你的密码或者是Web服务器被入侵所导致的你的金钱丢失。下面以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的恶意代码被执行。

 

        通过以上的攻击原理描述个人总结CSRF两个侧重点:

 

        1、CSRF的攻击建立在浏览器与Web服务器的会话之中。

        2、欺骗用户访问URL

一.1.3  CSRF攻击分类

    CSRF漏洞一般分为站外和站内两种类型。

 

    CSRF站外类型的漏洞本质上就是传统意义上的外部提交数据问题。通常程序员会考虑给一些留言或者评论的表单加上水印以防止SPAM问题(这里,SPAM 可以简单的理解为垃圾留言、垃圾评论,或者是带有站外链接的恶意回复),但是有时为了提高用户的体验性,可能没有对一些操作做任何限制,所以攻击者可以事 先预测并设置请求的参数,在站外的Web页面里编写脚本伪造文件请求,或者和自动提交的表单一起使用来实现GET、POST请求,当用户在会话状态下点击 链接访问站外Web页面,客户端就被强迫发起请求。

 

    CSRF站内类型的漏洞在一定程度上是由于程序员滥用$_REQUEST类变量造成的。在一些敏感的操作中(如修改密码、添加用户等),本来要求用户从表 单提交发起POST请求传递参数给程序,但是由于使用了$_REQUEST等变量,程序除支持接收POST请求传递的参数外也支持接收GET请求传递的参 数,这样就会为攻击者使用CSRF攻击创造条件。一般攻击者只要把预测的请求参数放在站内一个贴子或者留言的图片链接里,受害者浏览了这样的页面就会被强 迫发起这些请求。

一.1.4  CSRF 漏洞检测

    检测CSRF漏洞是一项比较繁琐的工作,最简单的方法就是抓取一个正常请求的数据包,去掉Referer字段后再重新提交,如果该提交还有效,那么基本上可以确定存在CSRF漏洞。

随 着对CSRF漏洞研究的不断深入,不断涌现出一些专门针对CSRF漏洞进行检测的工具,如CSRFTester,CSRF Request Builder等。以CSRFTester工具为例,CSRF漏洞检测工具的测试原理如下:使用CSRFTester进行测试时,首先需要抓取我们在浏览 器中访问过的所有链接以及所有的表单等信息,然后通过在CSRFTester中修改相应的表单等信息,重新提交,这相当于一次伪造客户端请求。如果修改后 的测试请求成功被网站服务器接受,则说明存在CSRF漏洞,当然此款工具也可以被用来进行CSRF攻击。

一.1.5  CSRF 实例

一.1.5.1  CSRF 快速拖库案例

  ‘拖库’本来是数据库领域的术语,指从数据库中导出数据。到了黑客攻击泛滥的今天,它被用来指网站遭到入侵后,黑客窃取其数据库。

    网站数据库被拖,直接导致用户信息泄露,造成的危害很大,比如:CSDN明文密码泄露事件、小米800W用户信息泄露事件等等。他所造成的危害极高,直接影响网站用户数据(包括金钱、个人信息等)!

Œ 首先,我们先登录一下discuz的后台,模拟管理员进行周期性的数据库备份。如图1:

 

CSRF攻击-苏醒的巨人-附带靶场


                               

 

备份完之后的数据库备份在图2: 

CSRF攻击-苏醒的巨人-附带靶场


 

   也就是在。 然后,我们将数据库备份删除掉。现在,backup这个目录下没有任何备份。 

 

 其次我们换个浏览器,注册一个新普通用户,如:图3

CSRF攻击-苏醒的巨人-附带靶场


 

    接着,我们模拟正常用户发帖。如图4 

CSRF攻击-苏醒的巨人-附带靶场


 

注意: 

    发帖时,一定要添加一个网络图片,链接设置为: 

 

  如图5: 

CSRF攻击-苏醒的巨人-附带靶场



 

                                   

    我们再使用原来有管理员登陆的浏览器访问这个帖子(在访问论坛这个帖子之前,刷新一下后台页面,保证没有因为长时间未操作而引起登陆会话超时造成实验失败)。 

    如图6所示: 

CSRF攻击-苏醒的巨人-附带靶场



 

                          

    访问之后,我们只看到了一张没有正常显示的图片,并没有其他的问题。 我们之前在模拟管理员进行数据库备份的时候,已经把备份好的数据拷走并删除掉,backup这个文件夹里面是空的。现在让我们来看一下这个文件夹,是不是像图7里面一样呢? 

CSRF攻击-苏醒的巨人-附带靶场



Ž 最后,我们可以访问这个链接,将我们拖下来的数据库下载到本地。 图8:

CSRF攻击-苏醒的巨人-附带靶场


 

案例总结分析:

    打开chrome浏览器,然后按一下键盘上的F12,然后访问那张图片的链接,接着点击network这个按钮,然后我们可以找到这张图片9的请求。 


 

1、网页加载图片的URL,前面已经说过,就是管理员在数据备份时所访问的URL,由于不是正常的图片格式,所以不能正常解析。 

2、虽然图片不能正常解析,但是浏览器还是回去访问一下这个URL,由于当前账户是管理员,有数据库备份的操作权限,且数据在传输到服务端,服务端根据请求的URL、参数、动作进行了处理,从而造成了数据库被拖。 

3、很明显,攻击者在我们不知情的情况下盗用了我们的身份,来完成他们想要做的事情。



==============

https://yunpan.cn/cRsF5ZKCU4TNS  访问密码 ca10

================




以上是关于CSRF攻击-苏醒的巨人-附带靶场的主要内容,如果未能解决你的问题,请参考以下文章

pikachu靶场(CSRF篇)

CSRF — “沉睡的巨人”

CSRF靶场练习

CSRF漏洞的概念利用方式防御方案

DVWA v1.10 靶场记录 -CSRF(Low)

深入解析跨站请求伪造漏洞:原理剖析