CSRF常见攻防姿势总结
来源:互联网 发布:mirna引物设计软件 编辑:程序博客网 时间:2024/05/29 12:29
攻击点
referrer绕过
- 无验证
- http: //xxx.weibo.com(.cdxy.me)
- (http: //cdxy.me?)http: //xxx.weibo.com
新浪微博CSRF之点我链接发微博(可蠕虫)
捕捉token
如token通过get方法在url中显示时,常见方法是通过referrer偷token
利用
本身来说CSRF漏洞是广泛存在的,一般将其归类为“低危”,但只要利用的姿势够牛,CSRF也会有大作为。除了常见的“刷粉丝”“发消息”“改信息”“蠕虫”等,还可以配合其他漏洞解锁更多好玩的利用姿势。
账号关联
如果绑定请求未做csrf防护,攻击者可以构造恶意请求让用户绑定了攻击者的账号。这样攻击者登录他自己的账号后就可以得到用户在其他平台的权限。
网易某处点开我的链接就会被盗号
一种蠕虫
ACFUN所有接口未加验证 可实现完美蠕虫
第三方登录
点我的链接我就可能会进入你的果壳账号
XSS+CSRF
使用XSS+AJAX自动触发CSRF,免除了CSRF里“用户打开链接之后才会触发”的利用缺陷
防护
核心思想
有关CSRF的防御的核心思想可以总结为一句话:
在请求里cookies以外的位置,放入攻击者所不能伪造和复现的信息
三个条件
该“信息”需要满足以下三个条件:
- 随机性——不可预测
- 一次性——每次请求后要更新,不能共用、复用
- 保密性——敏感操作使用post,防止参数在url中泄露
针对2 3两条的理解,请参考这个漏洞:
聊着聊着我就上了你……的微信(两处都可以劫持微信登录的漏洞)
防护方法
服务端
- 检查referrer
- 验证token
- 在html头自定义属性并验证
其中第三项原理和token类似,只是位置不同,它在HTTP头中自定义的属性里。比如:通过XMLHttpRequest这个类,可以一次性给所有该类请求加上csrftoken这个HTTP头属性,并把token值放入其中。这种方式的另一个好处是不必担心参数值在url中泄露
客户端
可使用js做一定程度上的防御,可以提高攻击成本,详细请参考
利用Window.Opener绕过CSRF保护
其他逻辑策略
在执行关键操作时(如修改密码,修改绑定邮箱手机等),除了要做CSRF的token防护之外,还应该要求重新输入当前账号密码,并加入验证码。
关键操作只接受post请求,只接受https请求
- CSRF常见攻防姿势总结
- CSRF攻防 - 很棒的文章
- Web攻防之SQL注入,XSS,CSRF
- Web攻防之XSS,CSRF,SQL注入
- Web攻防之XSS,CSRF,SQL注入
- Web攻防之XSS,CSRF,SQL注入
- Web攻防之XSS,CSRF,SQL注入
- Web攻防之XSS,CSRF,SQL注入
- 前端攻防篇-CSRF攻击及防御
- web攻防之SQL注入、XSS、CSRF
- web攻防之SQL注入、XSS、CSRF
- Web攻防之XSS,CSRF,SQL注入
- Web攻防之XSS,CSRF,SQL注入
- 姿势总结
- 网站攻防学习总结
- 网站常见漏洞攻防进阶
- 网站常见漏洞攻防进阶
- 常见web漏洞攻防杂谈
- hdoj 1058 Humble Numbers 【思维】
- iOS生成pem证书(简易版)
- 用magent 为memcached集群
- 删除字符串中的子串 PAT
- gulp 疑似缓存的问题,watch更新不及时
- CSRF常见攻防姿势总结
- history
- 引力波,你果真懂了吗?
- python中的闭包
- sqlite
- reflux+react web 第三种写法
- ubuntu MYSQL添加远程用户
- Apple Pay接入详细教程
- 代码判断发布的是debug版本还是release版本