概念
跨站点请求伪造,跟XSS攻击一样,存在巨大的危害性
攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成1了攻击者所期望的一个操作,比如以你的名义发送邮件,发消息,盗取你的账号,添加系统管理员,甚至于购买商品,虚拟货币转账等。
实例
李华在第三方机构有一笔存款,通过对银行的网站发送请求 http://bank.com/tran?
user=lihua&count=100&aim=daming 可以给他的朋友转账 100 元。
通常情况下,该请求发送到网站后,服务器会先验证该请求是否来自一个合法的 session ,并且该
session 的用户 李华已经成功登陆。
黑客 Xuanhun 自己在该银行也有账户,他知道上文中的 URL 可以把钱进行转帐操作。 Xuanhun 可以
自己发送一个请求给银行: http://bank.com/tran?user=lihua&count=100&aim=xuanhun 。但是这
个请求来自 xuanhun 而非 lihua ,他不能通过安全认证,因此该请求不会起作用。
这时, xuanhun 想到使用 CSRF 的攻击方式,他先自己做一个网站,在网站中放入如下代码:
src=”http://bank.com/tran?user=lihua&count=100&aim=xuanhun” ,并且通过美女 qq 进行社工
攻击,诱使李华首先去登陆账户,随后访问指定 url 。当李华访问该网站时,上述 url 就会从李华的浏览
器发向银行,而这个请求会附带李华浏览器中的 cookie 一起发向银行服务器。
大多数情况下,该请求会失败,因为他要求李华的认证信息。但是,因为李华刚访问他的银行后不久,他的
浏览器与银行网站之间的 session 尚未过期,浏览器的 cookie 之中含有李华的认证信息。
这时,悲剧发生了,这个 url 请求就会得到响应,钱将从李华 的账号转移到 xuanhun 的账号,而李华当
时毫不知情。等以后 李华发现账户钱少了,即使他去银行查询日志,他也只能发现确实有一个来自于他本
人的合法请求转移了资金,没有任何被攻击的痕迹。而 xuanhun 则可以拿到钱后逍遥法外。