【web安全】csrf攻击原理是什么

2020-12-30 09:46发布

8条回答
小猪仔
2楼 · 2020-12-30 10:36

CSRF攻击利用网站对于用户网页浏览器的信任,挟持用户当前已登陆的Web应用程序,去执行并非用户本意的操作。

1234
3楼 · 2020-12-30 11:25

csrf 是一个可以发送http请求的脚本。可以伪装受害者向网站发送请求,达到修改网站数据的目的。


当你在浏览器上登录某网站后,cookie会保存登录的信息,这样在继续访问的时候不用每次都登录了,这个大家都知道。而CSRF就利用这个登陆态去发送恶意请求给后端。


aijingda
4楼 · 2020-12-30 11:39

CSRF是一种对网站的恶意利用,CSRF比XSS更具危险性,攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账等。

CSRF攻击的主要目的是让用户在不知情的情况下攻击自己已登录的一个系统,类似于钓鱼。如用户当前已经登录了邮箱,或bbs,同时用户又在使用另外一个,已经被你控制的站点,我们姑且叫它钓鱼网站。这个网站上面可能因为某个图片吸引你,你去点击一下,此时可能就会触发一个js的点击事件,构造一个bbs发帖的请求,去往你的bbs发帖,由于当前你的浏览器状态已经是登陆状态,所以session登陆cookie信息都会跟正常的请求一样,纯天然的利用当前的登陆状态,让用户在不知情的情况下,帮你发帖或干其他事情。

要完成一次CSRF攻击,受害者必须依次完成两个步骤:

1.登录受信任网站A,并在本地生成Cookie。

2.在不登出A的情况下,访问危险网站B。

我想吃肉
5楼 · 2020-12-30 13:32
依靠用户标识危害网站
利用网站对用户标识的信任
欺骗用户的浏览器发送HTTP请求给目标站点
另外可以通过IMG标签会触发一个GET请求,可以利用它来实现CSRF攻击。
CSRF攻击依赖下面的假定:
攻击者了解受害者所在的站点
攻击者的目标站点具有持久化授权cookie或者受害者具有当前会话cookie
目标站点没有对用户在网站行为的第二授权
这里要说的解决办法是利用Token
以下信息来自:Sinesafe官方
Token,就是令牌,最大的特点就是随机性,不可预测。一般黑客或软件无法猜测出来。
那么,Token有什么作用?又是什么原理呢?
Token一般用在两个地方:1)防止表单重复提交、2)anti csrf攻击(跨站点请求伪造)。
两者在原理上都是通过session token来实现的。当客户端请求页面时,服务器会生成一个随机数Token,并且将Token放置到session当中,然后将Token发给客户端(一般通过构造hidden表单)。下次客户端提交请求时,Token会随着表单一起提交到服务器端。然后,如果应用于“anti csrf攻击”,则服务器端会对Token值进行验证,判断是否和session中的Token值相等,若相等,则可以证明请求有效,不是伪造的。不过,如果应用于“防止表单重复提交”,服务器端第一次验证相同过后,会将session中的Token值更新下,若用户重复提交,第二次的验证判断将失败,因为用户提交的表单中的Token没变,但服务器端session中Token已经改变了。
上面的session应用相对安全,但也叫繁琐,同时当多页面多请求时,必须采用多Token同时生成的方法,这样占用更多资源,执行效率会降低。因此,也可用cookie存储验证信息的方法来代替session Token。比如,应对“重复提交”时,当第一次提交后便把已经提交的信息写到cookie中,当第二次提交时,由于cookie已经有提交记录,因此第二次提交会失败。不过,cookie存储有个致命弱点,如果cookie被劫持(xss攻击很容易得到用户cookie),那么又一次gameover。黑客将直接实现csrf攻击。
所以,安全和高效相对的。具体问题具体对待吧。
也可以通过安全公司来解决,国内也就Sinesafe和绿盟等安全公司比较专业.


三岁奶猫
6楼 · 2020-12-30 13:50

网站是通过隐式认证认证用户时,只要不关闭浏览器或者退出,以后访问相同网站时,浏览器会自动在请求中附带上认证信息。如果浏览器被其它网页控制请求了这个网站的URL,可能会执行一些用户不希望的功能。

是你的小甜心呀
7楼 · 2020-12-30 14:54

一、CSRF是什么
CSRF全称为跨站请求伪造(Cross-site request forgery),是一种网络攻击方式,也被称为 one-click attack 或者 session riding。

二、CSRF攻击原理
CSRF攻击利用网站对于用户网页浏览器的信任,挟持用户当前已登陆的Web应用程序,去执行并非用户本意的操作。

三、CSRF攻击实例
角色:
正常浏览网页的用户:User
正规的但是具有漏洞的网站:WebA
利用CSRF进行攻击的网站:WebB

流程:

步骤一
用户登录、浏览并信任正规网站WebA,同时,WebA通过用户的验证并在用户的浏览器中产生Cookie。
在这里插入图片描述

步骤二
攻击者WebB通过在WebA中添加图片链接等方式诱导用户User访问网站WebB。
在这里插入图片描述

步骤三
在用户User被诱导访问WebB后,WebB会利用用户User的浏览器访问第三方网站WebA,并发出操作请求。
在这里插入图片描述

步骤四
用户User的浏览器根据WebB的要求,带着步骤一中产生的Cookie访问WebA。
在这里插入图片描述

步骤五
网站WebA接收到用户浏览器的请求,WebA无法分辨请求由何处发出,由于浏览器访问时带上用户的Cookie,因此WebA会响应浏览器的请求,如此一来,攻击网站WebB就达到了模拟用户操作的目的。
在这里插入图片描述

四、CSRF攻击防护
上文简单的叙述了CSRF攻击的原理,接下来将要介绍几种CSRF攻击的防护方法。

1. 只使用JSON API

使用JavaScript发起AJAX请求是限制跨域的,并不能通过简单的 表单来发送JSON,所以,通过只接收JSON可以很大可能避免CSRF攻击。

2. 验证HTTP Referer字段

根据 HTTP 协议,在 HTTP 头中有一个字段叫 Referer,它记录了该 HTTP 请求的来源地址。在通常情况下,访问一个安全受限页面的请求来自于同一个网站,比如上文中用户User想要在网站WebA中进行转账操作,那么用户User

必须先登录WabA
然后再通过点击页面上的按钮出发转账事件

这时该转帐请求的 Referer 值就会是转账按钮所在的页面的URL,而如果黑客要对银行网站实施 CSRF攻击,他只能在他自己的网站构造请求,当用户User通过黑客的网站发送请求到WebA时,该请求的 Referer 是指向黑客自己的网站。
因此,要防御 CSRF 攻击,网站WebA只需要对于每一个转账请求验证其 Referer 值,如果是以网站WebA的网址开头的域名,则说明该请求是来自WebA自己的请求,是合法的。如果 Referer 是其他网站的话,则有可能是黑客的 CSRF 攻击,拒绝该请求。

3. 在请求地址中添加takon验证

CSRF 攻击之所以能够成功,是因为黑客可以完全伪造用户的请求,该请求中所有的用户验证信息都是存在于 cookie 中,因此黑客可以在不知道这些验证信息的情况下直接利用用户自己的 cookie 来通过安全验证。要抵御 CSRF,关键在于在请求中放入黑客所不能伪造的信息,并且该信息不存在于 cookie 之中。可以在 HTTP 请求中以参数的形式加入一个随机产生的 token,并在服务器端建立一个拦截器来验证这个 token,如果请求中没有 token 或者 token 内容不正确,则认为可能是 CSRF 攻击而拒绝该请求。
这种方法要比检查 Referer 要安全一些,token 可以在用户登陆后产生并放于 session 之中,然后在每次请求时把 token 从 session 中拿出,与请求中的 token 进行比对。


是开心果呀 - 热爱生活
8楼 · 2020-12-30 15:18

包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的问题包括:个人隐私泄露以及财产安全。

小小李兆佳
9楼 · 2021-01-08 11:24

 1. 用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A;

 2.在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;

 3. 用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B;

 4. 网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A;

 5. 浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。网站A并不知道该请求其实是由B发起的,所以会根据用户CCookie信息以C的权限处理该请求,导致来自网站B的恶意代码被执行。


相关问题推荐

  • 回答 3

    交换机上面的线可以随便插,但是主线别忘插了,随便怎么插都可以,不是必须插第一个,网速慢不是因为插错孔,而是络没有设置号,希望能解决你的困惑 1M的线.4个人上,不卡才叫见鬼了,最少得3M才能正常上网 你们所有人都慢还是只有一个人慢...

  • 回答 3

    mkdir 目录名         => 创建一个目录rmdir 空目录名      => 删除一个空目录rm 文件名 文件名   => 删除一个文件或多个文件rm –rf 非空目录名 => 删除一个非空目录下的一切touch 文件名        => 创建一个空文件...

  • 回答 7

    根据《国家网络安全事件应急预案》,网络安全事件分为以下七类:(1)有害程序事件分为计算机病毒事件、蠕虫事件、特洛伊木马事件、僵尸网络事件、混合程序攻击事件、网页内嵌恶意代码事件和其他有害程序事件。(2)网络攻击事件分为拒绝服务攻击事件、后门攻...

  • 回答 5

    DNS服务就是应用层的协议。

  • 回答 3

    之前打算申请个CNVD的原创漏洞证书。经过这一个多月的时间证书下来了,现在简单总结一下。原创漏洞审核和处理流程参考此链接:http://www.cnvd.org.cn/webinfo/show/3933然后我就说说我提交过两个后台的文件上传漏洞7.26提交-7.27二审通过,验证通过-9.4三审...

  • 回答 4

    直连路由就是它的接口所连接的网络所能到达的网络,静态路由是指在路由表中指定要到达什么网络下一跳是什么什么接口。动态路由指的是,路由表是通过配置各种动态路由协议,自动生成的路由表。...

  • 回答 5

    路由优先级范围0~255,直连路由优先级为0

  • 回答 7

    RIP协议的优点是:①实现简单;②开销较小。RIP协议的缺点有:①当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器,即坏消息传播得慢。②因为RIP距离的最大值限制为15,所以影响了网络的规模。③由于路由器之间交换的路由信息是路由器中...

  • 回答 16

    网络安全必须要会的软件:1、SolarWinds Log&Event Manager:Windows的日志分析工具,可提供集中的日志监控体验和事件时间检测,拥有超强的响应能力,能够快速找出问题所在。检测到问题之后,自动响应阻止IP,关闭应用,改变访问权限,禁用帐户,USB设备等,...

  • 回答 18

    属于IT~ 信息安全工作不光是技术,还有部分管理的工作,比如对公司IT技术的管理,还有对人员的管理,员工安全意识的培训等,所以不单是技术类的工作,也属于管理类的工作网络安全工程师就业方向:现代信息网络办公师、计算机维修工程师、网络管理员、 售后服...

  • 回答 3

    网络安全的工作内容可以大体上分为甲方和乙方,所做的工作内容会有所不同。在甲方工作的话,知识则需要全面一点儿,不要被自己岗位职业来限制,对web安全、系统、渗透测试都需要了解和深入一点儿的学习。在乙方大多数人都会遇到以下的工作,例如应急响应、加...

  • 回答 8

    C和C++如果是在网络安全领域,C和C++是相对重要的最基础的编程语言,这些语言提供了对底层IT基础设施(如RAM和系统进程)的访问,如果保护不好,黑客可以很容易地利用这些基础设施。...

  • 回答 10

    网络安全还是蛮难的,如果你没有基础的话,不建议你选网络安全,你可以选择一个稍微简单的入行,比如ui,JAVA

  • 回答 1

    有2种方法802.1X  或Port security技术就能解决你的问题。802.1X ,不用其他设备的情况下在交换机上开启802.1X 认证,只有安装了证书的电脑才能连接进内网。Port security简单说下:在接入交换机连接终端的端口下,开启Port security  然后在这个端口下绑...

  • 回答 6

    可以做到,但是这是属于违法的一般只有特殊情况找专门的部门去进行追踪定位

  • 回答 2

    关闭防火墙apt-get更新;修改静态ip和手动修改DNS

没有解决我的问题,去提问