首页 > 其他分享 >【8月摸鱼计划】初识CSRF

【8月摸鱼计划】初识CSRF

时间:2023-08-23 11:36:21浏览次数:42  
标签:浏览器 CSRF 用户 站点 初识 cookie 摸鱼 请求

CSRF(Cross-site request forgery)跨站请求伪造,也被称为"One Click Attack"或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装成受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。

基本信息

  • 中文名称
    跨站请求伪造
  • 外文名称
    CSRF
  • 类型
    概念

 

  • 类别
    网络
  • 缩写
    CSRF


目录

1示例特性

2风险提示

3相关威胁

4防范措施

5影响因素

折叠编辑本段示例特性

攻击通过在授权用户访问的页面中包含链接或者脚本的方式工作。例

【8月摸鱼计划】初识CSRF_多窗口

CSRF 如:一个网站用户Bob可能正在浏览聊天论坛,而同时另一个用户Alice也在此论坛中,并且后者刚刚发布了一个具有Bob银行链接的图片消息。设想一下,Alice编写了一个在Bob的银行站点上进行取款的form提交的链接,并将此链接作为图片src。如果Bob的银行在cookie中保存他的授权信息,并且此cookie没有过期,那么当Bob的浏览器尝试装载图片时将提交这个取款form和他的cookie,这样在没经Bob同意的情况下便授权了这次事务。

CSRF是一种依赖web浏览器的、被混淆过的代理人攻击(deputy attack)。在上面银行示例中的代理人是Bob的web浏览器,它被混淆后误将Bob的授权直接交给了Alice使用。

下面是CSRF的常见特性:

依靠用户标识危害网站

利用网站对用户标识的信任

欺骗用户的浏览器发送HTTP请求给目标站点

另外可以通过IMG标签会触发一个GET请求,可以利用它来实现CSRF攻击。

折叠编辑本段风险提示

风险在于那些通过基于受信任的输入form和对特定行为无需授权的已认证的用户来执行某些行为的web应用。已经通过被保存在用户浏览器中的cookie进行认证的用户将在完全无知的情况下发送HTTP请求到那个信任他的站点,进而进行用户不愿做的行为。

使用图片的CSRF攻击常常出现在网络论坛中,因为那里允许用户发布图片而不能使用JavaScript。

折叠编辑本段相关威胁

贴图只是GET的方式,很多时候我们需要伪造POST的请求。一个办法是利用跨站,当然目标站点可能不存在跨站,这个时候我们可以从第三方网站发动攻击。

比如我要攻击一个存在问题的blog,那就先去目标blog留言,留下一个网址,诱其主人点击过来(这个就要看你的忽悠本事咯:p),然后构造个HTML表单提交些数据过去。

多窗口浏览器就帮了一点忙。

多窗口浏览器(firefox、遨游、MyIE……)便捷的同时也带来了一些问题,因为多窗口浏览器新开的窗口是具有当前所有会话的。即我用IE登陆了我的Blog,然后我想看新闻了,又运行一个IE进程,这个时候两个IE窗口的会话是彼此独立的,从看新闻的IE发送请求到Blog不会有我登录的cookie;但是多窗口浏览器永远都只有一个进程,各窗口的会话是通用的,即看新闻的窗口发请求到Blog是会带上我在blog登录的cookie。

想一想,当我们用鼠标在Blog/BBS/WebMail点击别人留下的链接的时候,说不定一场精心准备的CSRF攻击正等着我们。

折叠编辑本段防范措施

对于web站点,将持久化的授权方法(例如cookie或者HTTP授权)切换为瞬时的授权方法(在每个form中提供隐藏field),这将帮助网站防止这些攻击。一种类似的方式是在form中包含秘密信息、用户指定的代号作为cookie之外的验证。

另一个可选的方法是"双提交"cookie。此方法只工作于Ajax请求,但它能够作为无需改变大量form的全局修正方法。如果某个授权的cookie在form post之前正被JavaScript代码读取,那么限制跨域规则将被应用。如果服务器需要在Post请求体或者URL中包含授权cookie的请求,那么这个请求必须来自于受信任的域,因为其它域是不能从信任域读取cookie的。

与通常的信任想法相反,使用Post代替Get方法并不能提供卓有成效的保护。因为JavaScript能使用伪造的POST请求。尽管如此,那些导致对安全产生"副作用"的请求应该总使用Post方式发送。Post方式不会在web服务器和代理服务器日志中留下数据尾巴,然而Get方式却会留下数据尾巴。

尽管CSRF是web应用的基本问题,而不是用户的问题,但用户能够在缺乏安全设计的网站上保护他们的帐户:通过在浏览其它站点前登出站点或者在浏览器会话结束后清理浏览器的cookie。

折叠编辑本段影响因素

CSRF攻击依赖下面的假定:

攻击者了解受害者所在的站点

攻击者的目标站点具有持久化授权cookie或者受害者具有当前会话cookie

目标站点没有对用户在网站行为的第二授权

标签:浏览器,CSRF,用户,站点,初识,cookie,摸鱼,请求
From: https://blog.51cto.com/u_15950621/7200331

相关文章

  • 【8月摸鱼计划】OpenMV寻找色块
    OpenMV的官方教程:寻找色块;single_color_rgb565_blob_tracking示例讲解;视频讲解需要提前看的文章:程序烧录;颜色阈值设置目录threshold_index和thresholds解析固定代码部分死循环部分clock.tick()讲解sensor.snapshot()讲解for...in...部分image.find_blobs()函数讲解blob.elongati......
  • IP地址是唯一的吗?是可以改变的吗?(IP地址初识的几个关键点)
    IP地址初识目录IP地址的简单背景知识IP地址是唯一的吗IP地址可以改变吗如何查询本机内网IP地址和对应外网公共IP地址内容1.IP地址的简单背景知识IP地址(InternentProtocolAddress)是IP(InternetProtocol,中文名称“网际互连协议”,简称“网际协议”)提供的......
  • 初识计算机
    今日内容概要Typora软件的使用编程与编程语言计算机基础计算机的五大组成部分计算机的三大核心硬件操作系统今日内容详细Typora软件的使用它不是国产软件的,它是国外的,官方网站是国外,在国内下载国外的软件,就会出现下载速度慢的问题#1.下载:https://typoraio.cn/这......
  • 原来你是这样的SpringBoot--初识SpringBootAdmin
    简介SpringBootAdmin(SBA)是一个针对spring-boot的actuator接口进行UI美化封装的监控工具。它可以:在列表中浏览所有被监控spring-boot项目的基本信息,详细的Health信息、内存信息、JVM信息、垃圾回收信息,还可以直接修改logger日志的level。SBA分为server端和client端,下面来看一个......
  • 【8月摸鱼计划】看完这篇,请不要再说不懂MOSFET!
    功率半导体器件在工业、消费、军事等领域都有着广泛应用,具有很高的战略地位,下面我们从一张图看功率器件的全貌:功率半导体器件又可根据对电路信号的控程度分为全型、半控型及不可;或按驱动电路信号性质分为电压驱动型、电流驱动型等划分类别电流驱动型等划分类别电流驱动型......
  • 【2.0】Linux初识
    【一】虚拟环境搭建详解虚拟环境搭建是一种在计算机上创建和模拟多个独立操作系统实例的技术,从而使得一个物理计算机能够同时运行多个虚拟的操作系统环境。这种技术可以提供更好的资源利用、隔离性、灵活性和可移植性。【1】KVM(Kernel-basedVirtualMachine)KVM是一个基于......
  • 【8月摸鱼计划】python不支持的数据类型
    python不支持的数据类型是:char、byte类型。python支持的数据类型有:文本类型:str数值类型:int,float,complex序列类型:list,tuple,range映射类型:dict集合类型:set,frozenset布尔类型:bool二进制类型:bytes,bytearray,memoryview......
  • 【8月摸鱼计划】linux修改主机名
    linux通过修改配置文件/etc/sysconfig/network的HOSTNAME对应的值,可实现修改主机名。[root@localhost~]#vi/etc/sysconfig/networkNETWORKING=yesHOSTNAME=localhost.localdomaintext如:把localhost.localdomain改为其他名字。更新hosts文件[root@localhost~]#vi/etc/hosts......
  • 【安卓】安卓逆向-初识0x0
    环境搭建面具(magisk)介绍Magisk是一套用于定制Android的开源软件,支持高于Android5.0的设备关于面具有如下的优点:MagiskSU:为应用程序提供root访问权限Maisk模块:通过安装模块修改只读分区MagiskHide:从根目录/系统完整性隐藏面具(防止一些软件的检查)MagiskBoot:目前最完......
  • 计算机萌新的成长历程——初识C语言3
    今天我将继续分享数据类型的相关内容,本篇的主要内容将围绕short/int/long/longlong——整型数据类型的区别。在介绍他们的区别前,首先我们要先了解计算机中的单位,计算机的单位有以下几种单位:bit——比特位,计算机中最小的单位,1个比特位只能存放一个“1”或一个“0”byte——字节,1字......