csrf漏洞原理

什么是csrf漏洞

CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。

csrf漏洞的危害

你这可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的问题包括:个人隐私泄露以及财产安全。

经常入选owasp漏洞列表Top10,在当前web漏洞排行中,与XSS和SQL注入并列前三。与前两者相比,CSRF相对来说受到的关注要小很多,但是危害却非常大

csrf攻击实例

CSRF 攻击可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击站点,从而在并未授权的情况下执行在权限保护之下的操作。比如说,受害者Bob 在银行有一笔存款,通过对银行的网站发送请求http://bank.example/withdraw?account=bob&amount=1000000&for=bob2 可以使 Bob 把 1000000 的存款转到 bob2 的账号下。通常情况下,该请求发送到网站后,服务器会先验证该请求是否来自一个合法的session,并且该session 的用户Bob 已经成功登陆。黑客Mallory 自己在该银行也有账户,他知道上文中的URL 可以把钱进行转帐操作。Mallory可以自己发送一个请求给银行:http://bank.example/withdraw?account=bob&amount=1000000&for=Mallory。但是这个请求来Mallory 而非 Bob,他不能通过安全认证,因此该请求不会起作用。这时,Mallory想到使用 CSRF 的攻击方式,他先自己做一个网站,在网站中放入如下代码:src=”http://bank.example/withdraw?account=bob&amount=1000000&for=Mallory”,并且通过广告等诱使Bob 来访问他的网站。当Bob 访问该网站时,上述url 就会从Bob 的浏览器发向银行,而这个请求会附带Bob 浏览器中的cookie 一起发向银行服务器。大多数情况下,该请求会失败,因为他要求Bob 的认证信息。但是,如果Bob 当时恰巧刚访问他的银行后不久,他的浏览器与银行网站之间的session 尚未过期,浏览器的cookie 之中含Bo的认证信息。这时,悲剧发生了,这个url 请求就会得到响应,钱将从Bob 的账号转移到Mallory 的账号,而Bob 当时毫不知情。等以后Bob 发现账户钱少了,即使他去银行查询日志,他也只能发现确实有一个来自于他本人的合法请求转移了资金,没有任何被攻击的痕迹。而Mallory 则可以拿到钱后逍遥法外。

csrf攻击的对象

在讨论如何抵御 CSRF 之前,先要明确 CSRF 攻击的对象,也就是要保护的对象。从以上的例子可知,CSRF 攻击是黑客借助受害者的 cookie 骗取服务器的信任,但是黑客并不能拿到 cookie,也看不到 cookie 的内容。另外,对于服务器返回的结果,由于浏览器同源策略的限制,黑客也无法进行解析。因此,黑客无法从返回的结果中得到任何东西,他所能做的就是给服务器发送请求,以执行请求中所描述的命令,在服务器端直接改变数据的值,而非窃取服务器中的数据。所以,我们要保护的对象是那些可以直接产生数据改变的服务,而对于读取数据的服务,则不需要进行 CSRF 的保护。比如银行系统中转账的请求会直接改变账户的金额,会遭到 CSRF 攻击,需要保护。而查询余额是对金额的读取操作,不会改变数据,CSRF 攻击无法解析服务器返回的结果,无需保护。

通过dvwa-讲解csrf漏洞的挖掘及利用

首先上传一个2.html文档到自己的一台公网服务器上,编辑内容如下:

<img src="http://192.168.174.151/dvwa/vulnerabilities/csrf/?password_new=admin888&password_conf=admin888&Change=Change#" alt="network error">

将自己公网上的http://www.xxx.com/2.html文件通过短网址平台缩短以后,通过邮件发送给靶机用户,靶机用户访问该url后,密码会被自动修改为admin888

访问后如图所示,但是此时密码已经修改为了admin888

此时将dvwa退出登录,然后使用密码admin888登录成功。

原文地址:https://www.cnblogs.com/v01cano/p/10425022.html

时间: 2024-08-30 14:41:11

csrf漏洞原理的相关文章

CSRF攻击原理以及防御

一.CSRF是什么? CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF. 二.CSRF可以做什么? 你这可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求.CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的问题包括:个人隐私泄露以及财产安全. 三.CSRF漏洞现状 CSRF这

CSRF 攻击原理和防御方法

1. CSRF攻击原理 CSRF(Cross site request forgery),即跨站请求伪造.我们知道XSS是跨站脚本攻击,就是在用户的浏览器中执行攻击者的脚本,来获得其cookie等信息.而CSRF确实,借用用户的身份,向web server发送请求,因为该请求不是用户本意,所以称为“跨站请求伪造”. 一般而且存在XSS漏洞的网站,也极有可能存在CSRF漏洞.因为CSRF攻击中的那个“伪造的请求”的URL地址,一般是通过XSS攻击来注入到服务器中的.所以其实CSRF是以XSS为基础

浅谈CSRF漏洞

前言: 看完小迪老师的CSRF漏洞讲解.感觉不行 就自己百度学习.这是总结出来的. 歌曲: 正文: CSRF与xss和像,但是两个是完全不一样的东西. xss攻击(跨站脚本攻击)储存型的XSS由攻击者和受害者一同完成.xss详细介绍:点我跳转 CSRF(跨站脚本伪造)完全由受害者完成.攻击者不参与其中.CSRF详细介绍:点我跳转 CSRF原理: 银行转账的数据包:http://jianse.com/zhuanzhang.php?name=lu&[email protected]&monet

CSRF攻击原理及防御

来源于https://www.cnblogs.com/shytong/p/5308667.html 一.CSRF攻击原理 CSRF是什么呢?CSRF全名是Cross-site request forgery,是一种对网站的恶意利用,CSRF比XSS更具危险性.想要深入理解CSRF的攻击特性我们有必要了解一下网站session的工作原理. session我想大家都不陌生,无论你用.net或PHP开发过网站的都肯定用过session对象,然而session它是如何工作的呢?如果你不清楚请往下看. 先

148.CSRF攻击原理分析、防御、装饰器、中间件、IFrame以及js实现csrf攻击

CSRF攻击概述: CSRF(Cross Site Request Forgery 跨站域请求伪造)是一种网站攻击的方式,它在2007年曾被列为互联网20大安全隐患之一.其他的安全隐患,比如SQL脚本注入,跨站域脚本攻击等在近年来已经逐渐为众人熟知,很多网站也都针对他们进行了防御.然而,对于大多数人来说,CSRF还是很陌生的,Gmail在2007年底也存在csrf漏洞,从而被黑客攻击而使Gmail的用户造成巨大的损失. CSRF攻击原理: 网站是通过cookie来实现登录功能的.而cookie只

一次解决存储型xss和csrf漏洞的简单方法

目前我知道的,存储型xss解决方法:过滤转义用户输入的脚本.标签,csrf漏洞解决方法:校验referer.加token.加验证码 而referer校验是针对存在referer的情况,因为某些请求的head里没有referer,这时不能判断请求是非法的:加token,保存在哪是个问题,如果保存在session中,当集群部署时,session不同步会导致客户端的token与处理请求的服务器的token不一致:加验证码同样的道理,而且对用户体验非常不好. 由于xss和csrf都是改变用户请求参数来达

struts2漏洞原理及解决办法

1.原理 Struts2的中心是运用的webwork结构,处置 action时号码大全经过调用底层的getter/setter办法来处置http的参数,它将每个http参数声明为一个ONGL(这里是ONGL的介绍)语句.当关键词挖掘工具咱们提交一个http参数: ?user.address.city=Bishkek&user['favoriteDrink']=kumys ONGL将它转换为: action.getUser().getAddress().setCity("Bishkek&q

sql注入、js注入、csrf漏洞修复

以前没接触过网页安全方面的内容,正好这次碰巧客户有要求,学习了下,现将方案记录于此. Sql注入 解决方案: 服务器访问层的控制: 1.在过滤器,针对后缀为jsp.html.htm的访问进行过滤拦截,判断请求参数中是否包含敏感字符 2.在拦截其中,针对后缀为(.do )的Controller访问进行拦截,判断请求参数中是否包含敏感字符 数据访问层的控制: 1.由于我们采用MyBaties,所以在写Sql时,尽量按#号传参,能有效防止SQL注入 js注入 解决方案: 前端页面控制 1.在输入框中添

【Web安全】文件上传漏洞原理分析

0x01 文件上传漏洞简介 为了让用户将文件上传到网站,就像是给危机服务器的恶意用户打开了另一扇门.即便如此,在今天的现代互联网的Web应用程序,它是一种常见的要求,因为它有助于提高业务效率.企业支持门户,给用户各企业员工有效地共享文件.允许用户上传图片,视频,头像和许多其他类型的文件.向用户提供的功能越多,Web应用受到攻击的风险和机会就越大,这种功能会被恶意用户利用,获得到一个特定网站的权限,或危及服务器的可能性是非常高的.上传文件本身没有错,问题与漏洞在于服务器怎么处理上传的文件. 0x0