CSRF跨站点请求伪造
概述
是社工的一种,不大流行,但如果被成功利用,危害很大。
XSS与CSRF区别
XSS通过盗取网站内的已有的用户的身份,然后再执行相关操作
CSRF通过伪装用户身份,通过服务器身份认证后,然后发送恶意请求
虽然两者有一些区别,但是通常结合使用
原理
在浏览器中cookie在一段时间内是不会过期(不关闭或者退出浏览器)
如果在cookie存在期间,通过构造csrf脚本或包含csrf脚本的链接发送给用户
得到信息后,再伪造成用户身份,执行相关操作
攻击者盗用了受害者的身份,以受害者的名义发送恶意请求
对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作
利用方式
比如发消息、盗号、转账等没有没有需要再次验证身份的基本操作
再要验证身份的话,那就再社工搭建一个一模一样的网站
分类
站外攻击:
用户在攻击者构造的网站中触发伪造请求时,强制用户客户端就会发起请求
站内攻击:
如果开发人员滥用 $_REQUEST 类变量,以Post提交的数据表单,也支持Get传参。
攻击者把预测的请求参数上传到站内贴子或留言的图片链接里
当用户浏览了含有请求参数的页面就强制发出这些请求。
危害
- 对网站管理员进行攻击
- 修改受害网站上的用户账户和数据
- 账户劫持
- 传播CSRF蠕虫进行大规模攻击
- 利用csrf进行拖库
- 利用其他漏洞进行组合拳攻击
- 针对路由器的csrf攻击
防护
- 尽量使用POST,限制GET;
- 浏览器Cookie策略(时间生存周期管理和签名校验管理);
- 加验证码;
- Referer Check;
- Anti CSRF Token;
漏洞利用
- 更改数据包POST/GET
- 修改Referer
- 利用XSS漏洞或其他方法将代码注入目标服务器,诱使受害者触发
- 使用Burp右键tool里生成一个PoC
好像就这么多,CSRF没啥好讲的了。