什么是CSRF漏洞?
简单的说,是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己以前认证过的站点并运行一些操作(如发邮件,发消息,甚至财产操作(如转账和购买商品))。因为浏览器之前认证过,所以被访问的站点会觉得这是真正的用户操作而去运行。
1.Gmail CSRF漏洞(设置邮件转发)
假设你注册了很多邮箱,有网易qq等,但你没办法每天都打开这么多邮箱查询有没有邮件,这时候我们就可以设置邮件转发,将其他的邮箱收到邮件后都自动转发到QQ邮箱中,这样我们只需要打开QQ邮箱就能查看所有邮件。
这时候在设置邮件转发的接口上发生CSRF漏洞,就会造成很大的危害,例如现在很多软件,网站要找回密码的时候,都可以选择通过邮箱找回密码,所以这个危害程度不亚于手机短信验证码的泄露。
假设邮箱中的设置邮件转发存在CSRF漏洞,那黑客就可以把你的邮箱账号改成自己的,那所有的邮件都会发到黑客邮箱里,会造成资产的损失。
2.Weibo CSRF(自动关注账号)
假设黑客将一些恶意请求放在黑客自己的网站里面,然后这个人刚好也在登录着weibo或者刚退出不久,这时候点击黑客的恶意请求的时候,就会自动关注Weibo账号中某个博主的账号,在那个时候,很多僵尸粉都是这么来的。
3.CSRF漏洞的危害
修改账户信息
利用管理员账号 ,上传木马文件
传播蠕虫病毒(点击,扩散...)
和其他攻击手段配合,实现攻击,比如XSS,SQL注入
4.XSS漏洞的危害
获取cookie,实现冒充身份的后续操作
刷点击
弹广告
传播蠕虫病毒
5.CSRF与XSS区别
CSRF的流程是我们的用户在登录了之后,访问了一个第三方网站,第三方的网站代码里包含了对于被攻击的服务器的接口的调用,然后直接利用用户原有的cookie请求成功了。
XSS的流程是我们用户把恶意代码发送的服务器,有可能是将恶意代码存储起来,也有可能是没有存储而是直接反射到浏览器导致恶意代码的执行。
区别CSRF与XSS的不同,主要是看几个关键点。1.在这个攻击的流程里有没有一个第三方网站,有的话就是CSRF的攻击,有一个第三方去调用接口。2.能不能获取到明文的cookie,能的话就是XSS的攻击,同样是冒充身份,CSRF不需要知道明文的cookie,因为它能让浏览器自动去匹配,去携带上。3.在我们攻击的时候,是否需要将恶意请求注入到网站上,如果是,就是XSS攻击,难度会高一些,需要网站,服务器有这样的漏洞才能注入进去,但是CSRF漏洞,只要它本身出问题的接口,它没有经过校验,我们就可以直接在第三方网站发起调用,不需要将恶意代码注入到目标网站里,只需要将恶意代码请求放在黑客事先准备好的第三方网站中。
6.CSRF手段
1)通过图片的img src属性,自动加载发起GET请求
<img
src= "http://superbank.com/bank/transfer.php?nameid=2002&amount=1000" width="O" height="O">
2)构建一个超链接,诱导用户点击,用户点击以后,发起GET请求
<a
href="http://superbank.com/transfer.php?amount=1000&to=jiangang" taget=" _blank" >
小姐姐在线视频聊天!!
<a/>
3)如果是POST的请求也有办法,构建一个隐藏的表单,用户访问,自动提交 ,发起POST请求
<form action="http://superbank.com/withdraw" method=POST>
<input type="hidden" name="account" value="xiaoming" /><input type="hidden" name="amount" value="1000"/><input type="hidden" name="to" value="jiangang"/></form>
<script> document.forms[0].submit(); </script>
直接将请求的地址和参数值放在表单中,在用户访问这个表单的时候 ,不知不觉中就能将表单自动提交。