跨站点请求伪造(CSRF)
文章目录
CSRF简介
- 跨站点请求伪造(CSRF)
- CSRF简介
- CSRF攻击原理
- CSRF攻击案例
- 攻击案例
- 代码分析
-
CSRF( Cross-Site Request Forgery)是指跨站请求伪造,也常常被称为“ One Click Attack或者“ Session Riding”,通常缩写为CSRF或是XSRF。
-
虽然CSRF听起来像XSS跨站脚本攻击,但CSRF与XSS的攻击方式完全不同。
-
CSRF与XSS相比,虽然CSRF攻击不太流行,但却更加难以防范,所以被认为CSRF比XSS更具危险性,CSRF在业内具有“苏醒的巨人”的称号。
-
可以这么理解CSRF攻击:
攻击者盗用了你的身份,以你的名义进行某些非法操作。 CSRF能够使用你的账户发送邮件,获取你的敏感信息,甚至盗走你的财产。
会话的产生、使用、结束
- 当我们打开或登录某个网站后,浏览器与网站所存放的服务器将会产生一个会话
- 在这个会话没有结束时,你就可以利用你的权限对网站进行某些操作,如:发表文章、发送邮件、删除文章等。
- 当这个会话结束后,你再进行某些操作的时候,Web应用程序可能会提示你“您的会话已过期”、“请重新登录”等提示。
会话的案例
- 登录网上银行后,浏览器已经跟可信的站点建立了一个经过认证的会话。
- 之后,所有通过这个经过认证的会话发送请求,都被视为可信的动作,例如, 转账、汇款等操作。
- 当我们在一段时间内不进行操作后,经过认证的会话可能会断开,再次进行 转账、汇款操作时,这个站点可能会提示你:您的身份已过期,请重新登录、会话已结束等信息。
CSRF攻击是建立在会话之上的
- 当你登录了网上银行,正在进行转账业务,
- 这时你的某个QQ好友(攻击者)发来一条消息(URL),这条消息是攻击者精心构造的转账业务代码,而且与你所登录的是同一家网络银行,
- 你可能认为这个网站是安全的,然而当你打开了这条URL后,你账户中的余额可能会全部丢失。
总结
- 因为你的浏览器正处于与此网站的会话之中,那么任何操作都是合法的,
- 而攻击者构造的这段代码只不过是正常的转账操作代码而已
bank server的转账代码
- 主要是username、money的值,代表给username转账money
第一步:环境搭建
第二步 test登录bank server,查看自己的金额
第三步 test同时访问hack server服务器上的钓鱼网站
第四步 test用户点击钓鱼网站的链接
第五步 test再次查看自己的金额,发现金额减少
钓鱼网站的首页index.html
屠龙宝刀,点击就送 通道一
屠龙宝刀,点击就送 通道二
通道一:使用get方式提交:get.html
meta charset='utf-8'>
- src=…表示跳转到转账界面
- username=hacker代表转账的对方名称
- money=100代表转账的金额
- submit=submit代表提交
通道二:使用post方式提交:post.html
document.csrf.submit()
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?