特别声明:该文章只运用于学习安全测试交流之用,请勿用于其他
CSRF(Cross-site request forgery)漏洞也被称为One Click Attack或者Session Riding。通常缩写为CSRF或者XSRF,是一种对
网站恶意利用。
CSRF听起来和CSS攻击听起来有些像,但是它与XSS非常不同
XSS利用站点内的信任用户发起工具,需要获取到用户cookie值然后进行下一步攻击
CSRF则是通过伪装成受信任用户请求受信任的网站
CSRF攻击原理
下面我们利用一张网上解释CSRF的攻击原理
可间CSRF有以下两个重点
1)目标用户访问了登录网站,能够执行网站的功能
2)目标用户访问了攻击者构造的URL
笔者举个例子以便加深大家的印象
目标用户登录了一个银行网站可以进行转载操作,比如目标用户通过以下这样一个请求向
朋友转账了1000
http://www.game.com/Transfer.php?toUserId=20&vMoney=1000#toUserID为攻击的账号ID
而此时目标用户又打开了一个tab访问了黑客控制的网站,网站中构造了
http://www.game.com/Transfer.php?toUserId=20&vMoney=1000#toUserID这样一个请求,目标用户
访问之后请求被发送,因为此时浏览器中还存储着前次用户访问银行网站的Session所以会验证通过
这样黑客就可以利用目标用户的合法身份给自己转账啦
CSRF漏洞利用
CSRF修复建议
1)验证请求的Referer值在白名单内,这种方法存在被绕过的可能
2)在HTTP请求头中加入一个随机生成的token,服务器端验证token中没有token或者token的内容不正确,则认为该请求可能是CSRF攻击从而拒绝请求