常见漏洞总结---CSRF(跨站伪造请求)

1、定义(服务器信任用户)
跨站伪造请求,是指利用受害者尚未失效的身份认证消息(cookie,会话等),诱骗其点击恶意链接或访问包含攻击代码的页面,在受害人不知情的情况下以受害者向(身份认证信息所对应的)服务器发送请求,从而完成非法操作。

2、原理:
常见漏洞总结---CSRF(跨站伪造请求)_第1张图片
网站A存在csrf漏洞。
攻击者:B
受害者:A/C
CSRF属于业务逻辑漏洞,在服务器看来,所有的请求都是合法正常的。而XSS和SQL注入都属于技术漏洞。

实行csrf攻击的前提:
1)用户必须登录(身份认证成功)
2)攻击者要懂得发包请求
3)服务器不具有二次认证
4)被害者是不知情的

XSS与CSRF结合起来攻击:
攻击者向正常网站A(存储型)上传一个具有重定向功能的js脚本,普通用户访问网站A并验证通过,A返回给用户cookie值,这时触发了存储型XSS,被重定向到了攻击者构造的网站B,B通过A的cookie去访问网站A。剩下与csrf同理。
此方式是通过XSS主动重定向到第三方。单纯的CSRF是被动的等待用户点击访问。效率低下。

3、绕过方法:
token验证:记录cookie值,和csrf-token值一起发送给服务器。

4、防御方法:
1)浏览器增加二次认证功能。
2)验证token值。
3)验证http头的referer,正则表达式限制完善。
4)用XMLHttpRequest附加在header里。

你可能感兴趣的:(常见漏洞总结---CSRF(跨站伪造请求))