from https://kavy.iteye.com/blog/2217878
from https://www.cnblogs.com/daxian2012/articles/2568929.html
一、知识点:
1.cookie相关知识点
- 1.1 session cookie
当cookie没有设置超时时间,保存在浏览器内存中,那么cookie会在浏览器退出时销毁,这种cookie是session cookie - 1.2 third-party cookie
第三方cookie的使用场景通常是iframe,例如www.a.com潜入了一个www.ad.com的广告iframe,那么www.ad.com设置的cookie属于不属于www.a.com,被称作第三方cookie。
并且third-party cookie是服务器再set-cookie时,制定了expire时间,只有到了expire时间后cookie才会失效,所以这种cookie时保存在本地的。 - 1.3 persistent cookies/tracking cookie
设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定的过期时间。保存在用户硬盘上面,同一浏览器可以获取。 - 1.4 zombie cookie/evercookie
僵尸cookie是指当用户通过浏览器的设置清除cookie后可以自动重新创建的cookie。原理是通过使用多重技术记录同样的内容(例如flash,silverlight),当cookie被删除时,从其他存储中恢复。 evercookie是实现僵尸cookie的主要技术手段。 了解僵尸cookie和evercookie。
二、CSRF漏洞
2.1 CSRF漏洞概念
- Cross-site request forgery 简称为“CSRF”。攻击者在用户浏览网页时,利用页面元素(例如img的src),强迫受害者的浏览器向Web应用服务器发送一个改变用户信息的HTTP请求。
2.2CSRF漏洞测试方法
- 工具常常会扫描得到CSRF漏洞,但一般常常为误报,还是需要手工进行检测。
- 对目标网站增删改的地方进行标记,并观察其逻辑,判断请求是否可以被伪造
比如修改管理员账号时,并不需要验证旧密码,导致请求容易被伪造
比如对于敏感信息的修改并没有使用安全的token验证导致请求容易被伪造 - 确认凭证的有效期(这个问题会提高CSRF被利用的概率)
虽然退出或者关闭了浏览器,但cookie仍然有效,或者session并没有及时过期,导致csrf攻击变得简单。
2.3CSRF实验演示
2.4CSRF修复方案
- 通过referer判断页面来源进行防护。缺点:无法防止站内CSRF攻击及refereer字段伪造。
- 重要功能使用动态验证码进行防护。缺点:比较麻烦
- 通过token方式进行CSRF防护