Cookie和session
同源策略
CSRF原理
CSRF原理总结
Cookie:存储在本地浏览器(客户端), 帮助验证身份。一般情况保持用户的登录状态。
Session:存储在服务器端
XSS漏洞是盗取我们cookie,CSRF是利用Cookie这个技术去实现。(Cookie就是让服务器知道你是谁,他会对你操作有记忆,他的目的也是让服务器知道这个请求是谁发出来的)
同源策略:就是在同一文件内的所有访问资源都是同源,就是一个网页。一个应用程序,他只能够来自于同源的一个网页。或则是应用程序,进行交互。
同源策源(协议,域名,端口) 都相同,他负责确保我们不同网页之间的交互是安全可靠的
目的:同源策略是浏览器最核心也是最基本的安全功能,现在所有支持JavaScript的浏览器都会使用这个策略。如果缺少了同源策略,浏览器很容易收到CSRF和XSS等攻击
同源策略的目的为了保证用户信息的安全,防止恶意的网站窃取数据
CSRF原理
CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF,是一种对网站的恶意利用。
CSRF是通过伪装用户的请求来利用网站。利用网站漏洞从用户那里恶意盗取信息
攻击者盗用了你的身份,以你的名义发送恶意请求
首先,这个A是存在有CSRF的漏洞的一个正常服务器,如果我们用户点进去,并且登录并且信任了这个网站,登录完之后服务器会给用户生成一个Cookie,那么接下来服务端(web A)和用户(user(c))所有操作都是会携带这个Cookie。就是服务器在你用户c这里,他就会认为这样的一些操作都是你用户c的操作。我作为一个恶意的攻击者,写了一个网站,他如果说用户C没有登出这个网站的情况,在没有登出服务器A的情况。(意思就是,用户C登陆了A网站的页面,没有退出,也没有删除,然后用户C来访问了我的网站,我的网站那里面可能有一个点击的内容,假设用户C点击了这个链接,它就会发送一个请求。这个请求就是向我们的服务器A所发出的请求,那么服务器接收到了这个请求之后,这个请求是携带了用户C的Cookie。服务端就会认为这是用户C的操作的事情)
CSRF攻击就是利用网站对用户网页浏览器的信任,挟持用户当前已登录的web应用程序,去执行并非用户本意的操作
在浏览器中cookie在一段时间内是不会过期(不关闭或者退出浏览器),再次访问都会默认登录这个应该都有体验。如果在cookie存在期间,通过构造csrf脚本或包含csrf脚本的链接发送给用户,得到信息后,再伪造成用户身份,执行相关操作
要完成一次CSRF攻击,受害者必须依次完成两个步骤:
1. 登录受信任网站A,并在本地生成Cookie。
2.在不登出A的情况下,访问危险网站B
CSRF原理总结
一个CSRF漏洞攻击的实现,需要三个部分构成
1. 漏洞风险存在
3. 伪装数据操作请求的恶意链接或者页面
4. 诱使用用户主动访问或登录恶意链接,出发非法操作
漏洞风险的存在
如果需要CSRF攻击能够成功,首先就需要目标站点或系统存在一个可以进行数据修改或者新增操作,且此操作被提交到后台的过程中,其未提供任何身份识别到校验的参数。后台只要收到请求,就立即下发数据修改或新增的操作;
以上漏洞情况的存在
出现比较多的场景有用户密码的修改、购物地址的修改或后台管理账户的新增等等操作过程中。
漏洞利用的伪装
CSRF漏洞风险存在了,如果需要真正的被利用,还需要对"修改或新增"数据操作请求的伪装,此时恶意攻击者只要将伪装好的"数据修改或新增"的请求发送给被攻击者,或者通过社工的方式诱使被攻击在其Cookie还生效的情况下点击了此请求连接,即可触发CSRF漏洞,成功修改或新增当前用户的数据信息
用户非本意的操作
当前用户在不知情的情况下,访问了黑客成黑客想完成的“非法操作”实现了对构造的页面或在链接,即在非本意的情况下完成黑客想完成的“非法操作”,实现了对当前用户个人信息的恶意操作