CSRF(跨站请求伪造)
1.基本知识概述CSRF英文全称(Cross-Site Request Forgery)常常被称为“One Click
Attack”或者“Seession Riding”,通常缩写为CSRF,XSRF大家可能对XSS有过一定的了解,可能大家会觉得CSRF是不是与XSS差不多?其实区别还是很大的,下面我给大家来讲讲CSRF的原理
2.原理
(1)我们在讲原理之前,先来讲一个东西——‘’浏览器会话‘’,当你在一个网站上面登录了你的帐号,就会通过浏览器与网站成立一个会话。在这个会话没有结束之前,网站就会知道你是谁,你应该可以进行什么样的操作。打个比方,你在浏览器上打开了银行的网站,并且登陆了上去,这个时候你用你的密码帐号在网站上成立了一个会话,网站就知道你是某某,它就允许你对自己的账户进行操作(转账等),当我们一段时间不进行操作或者推出浏览器你和他的会话也就会结束。而CSRF攻击正是建立在会话之上的。
(2)我们来举个小列子来更好的理解一个人叫XX,一个黑客叫BB。XX一天登陆了他的银行网站,并且建立了会话。这个时候BB发现了你的行为,想要利用CSRF攻击从XX的帐号上转走钱。于是BB采取了行动。我们先来看一下这个网站的规则。现在XX和网站建立了会话,所以XX可以对自己帐号上的钱进行转账等,任何操作都是合法的,网站是允许的。当XX向别人转账的时候会发送以下请求:www.yinghang.com/pay.asp?user=moan&money=10000。这段请求是XX向用户名(也就是链接参数user)moan转账10000元(参数money),因为XX建立了会话,这个提交是合法的,是可以的。于是黑客BB构造了这样一个链接www.yinghang.com/pay.asp?user=BB&money=100000,并且利用社会工程学使XX点击了该链接。就这样,XX亲手将1000元转到了BB的帐号。并不是黑客BB破解了XX的帐号或者入侵了银行的服务器网站
总结:
1.CSRF的攻击是建立在浏览器与Web服务器(网站)的会话中的 2.利用社会工程学欺骗用户访问URL
3.事例展示
www.111.com是全球最大的微博平台,一次偶然的机会,黑客Tom对微博的收听功能进行了抓包,发现收听某个人的时候主要依靠两个参数——第一个是UID,第二个是LISTENIN。 黑客Tom想试试让别人都访问自己的文章,增加浏览量。于是他构造了一个链接:wwww.111.com/LISTENID=Tom(黑客Tom的博客ID就是Tom)于是他准备在这个微博平台上制造一次蠕虫攻击。想要链接生效,就必须去诱导用户访问这个URL,于是Tom想,挨个欺骗那么累,不如让别人也给他转发。于是他有抓包了微博的转发模块,发现只要用户访问wwww.111.com/LISTENID=Tom就会自动转发这条微博。 但是如何让用户同时点击这两个链接呢?于是Tom做了一个单页 [刚才发现乐乎会直接屏蔽HTML代码,所以就不打了,有需要的可以联系我] 通过这段Html我们可以看到通过iframe这个标签来偷偷的加载了URL,当用户打开这个界面就会不知情的访问这两个“正常”的链接,达到黑客收听并且转发的目的。从上面的这个事例可以知道,所以说CSRF攻击是黑客借助受害者的Cooike骗取服务器的信任,从而达到黑客的目的。
4.检测CSRF漏洞
在检测CSRF漏洞的时候,首先要确定的是:CSRF只能通过用户的正规操作进行攻击,实际上就是在劫持用户操作。所以,在检测之前首先要确定的是Web应用上的所有功能,以及确定哪些是敏感的。比如转账,修改密码等确定了这个以后,使用其中的一项功能,并且拦截HTTP请求,分析确定参数的含义之后,就可以验证该功能是否存在CSRF漏洞。在检测CSRF的时候一般都是用工具进行半自动检测。 下面介绍一款工具——CSRFTester。这个工具是OWASP组织提供的一款半自动CSRF漏洞检测器,它可以拦截所有请求,方便渗透人员进行分析。怎么使用的在这里就不多说了。
5.结束语
今天我们来详细的分析了CSRF漏洞的原理,以及如何利用,如何检测CSRF的漏洞方法。虽然CSRF不太流行,但却更加难以防范,所以CSRF比XSS更危险,CSRF在业内称为“苏醒的巨人”。 简单总结一下,CSRF攻击就是建立在被害者与网站的会话之上,黑客使被害者点击构造好的链接,以被害者的身份向服务器提交请求,达到黑客的攻击目的。检测漏洞就是通过拦截HTTP请求来分析并且尝试。