CSRF: 不要低估了我的危害和攻击能力

从XSS漏洞到浏览器会话劫持:BeEF框架实战攻防解析 跨站脚本攻击(XSS)是Web安全领域的常见漏洞,其原理在于攻击者能够将恶意脚本注入到受信任的网页中,当用户浏览该页面时,脚本会在其浏览器端执行。这一机制不仅威胁用户数据安全,更可演变为持续性的客户端控制。在工程实践中,传统XSS利用方式如Cookie窃取,常受限于同源策略和HttpOnly等防护措施,功能单一且难以持久。而通过集成化的攻击框架,可实现从信息收集、网络探测到权限提升的完整攻击链,极大提升了攻击的深度与广度。其中,BeEF(The Browser Exploitation Framework) 阅读详情

CSRF这种攻击方式虽然提出来很久(在2006年的时候就有了)了,但是这个沉睡的攻击巨人直到前不久才逐渐走入我们的视线,到底CSRF是啥,危害到底有多大?常见的利用方式是如何的,今天作为“安全相关 | Security”分类的第一篇文章,我按照自己的理解告诉你,不要低估了CSRF危害性和攻击能力。

一、什么是CSRF
先看看CSRF的原文说明,如下:

Cross Site Reference Forgery works by including malicious code or a link in a page that accesses a web application that the user is believed to have authenticated. If the session for that web application has not timed out, an attacker may execute unauthorized commands.


二、CSRF案例说明和分析
自然,这里拿Rails程序来举例子说明这些问题,大家知道Rails2之前是把session放在服务器端(文件或者DB或者缓存中),客户但在 cookie中保存sessionid;而到了Rails2后,还有一种方式是把session放在基于cookie的客户端中。当然这两样都各有道理, 各有优劣,不在我们这次说的范围之内。我们继续说,当我们向一个域名发送一个请求的时候,如果本店存在这个域名的cookie,浏览器会自动的把 cookie附带上。这样本来没有啥问题,也是我们为了解决http无状态记录的解决方案,但是有个问题出现了,如果出现一个到其他域名的请求,浏览区在 加载的时候,也把cookie给带上了,会有什么问题?我们举个简单的也很常见的例子来说明这个问题。
—————————–案例——————————
1、Bob在自己的电脑上刚刚查看完自己的银行A账户余额,然后比较无聊就跑到一个公开的BBS上灌水,当他看到一篇“银行A的内部照片”的帖子,很有兴趣的打开这个帖子想看看自己信任的银行A的内部图片是啥样子的,殊不知,这其实是一个attacker精心设计的骗局。
2、在这个帖子中确实有几个图片,看上去真的像是银行A的照片,但是其中有个图片没显示出来,Bob以为是自己网速太慢,导致这个图片没有加载进来,也没在意。只是对这些并不是十分满意的照片摇摇头,就关了这个帖子。
3、几天后,Bob猛然发现自己在银行A的账户上少了1000元,到底是怎么了?

分析:
为什么钱少了呢?我们得分析一下上面这个案例,好记得当时Bob说有个图片没显示么,是的,我们来看看这个图片的地址,惊奇的发现是:,这是一个什么地址?聪明的您一定很快就能明白,这个地址是邪恶的,看上去,他的意思是打开这个地址的人,给attacker转了1000元。
这怎么可能?你肯定急了,我怎么能随便给一个人转1000元呢,而且我都不知道呀!但是,注意了,这其实是完全有可能的。还记得当时Bob刚刚查看完整及的帐号信息,基于银行A的cookie并不过期,当出现如上链接出现在src的时候(note that .src is meant to be src),浏览器尝试着按照本地的cookie去加载上面这个URL,而银行A验证了来源请求的cookie是可以的,所以就这样事情就悄悄的发生了。
——————————-案例结束—————————

ok,看明白了么,这就是CSRF,一句话给他下个定义就是:借你的cookie在你不知道的时候悄悄的做了一些你不愿意做 的事情。恶日期这里有个更要命的是,这个包含上述URL的图片或者链接,并不需要一定是放在银行A的服务器上,相反可以在任一地方,比如blog,公开的 BBS,或者一些群发的Mail中等等,如此多的场合下,这些都有可能存在陷阱。
再看一副图片吧,其说明的正是CSRF的攻击原理。

三、CSRF的预防
看上去很恐怖吧,是的,确实恐怖,意识到恐怖是个好事情,这样会促使你接着往下看如何改进和防止类似的漏洞出现。
总体来说,预防CSRF主要从2个方面入手,分别是:
1、正确使用GET,POST和Cookie;
2、在non-GET请求中使用Security token;

一般上,大家知道的浏览器发送请求的方式有GET或者POST,但是还有一种比较常用的是Cookie,至于其他的HTTP协议请求方式,你可以google,一般按照W3C的规范:
1、GET常用在查看,列举,展示的时候;
2、POST常用在下达订单,改变一个资源的属性或者做其他一些事情;

ok,我们这里拿Rails按照前面列举的2种预防手段做说明,首先,我们可以在Rails的控制权中(controller)将一些方法(action)限定(verify)为只能使用POST或者GET,例如:
Ruby代码

verify :method => :post, :only => [ :transfer ], :redirect_to => { :action => :list }

恩,很好,这样做下限制以后,前面案例中的方法就失效了,因为这里我们限定了transfer必须使用POST来提交请求,当GET请求来的时候并不会被响应。
万事大吉了?NO!因为POST的请求也是可以被构造出来后自动发送的,如何实现,看下面吧,你肯定会吃惊的。
XML/HTML代码

<a .href="http://www.1sters.com/" onclick="var f = document.createElement('form'); f.style.display = 'none'; this.parentNode.appendChild(f); f.method = 'POST'; f.action = 'http://www.example.com/account/destroy'; f.submit();return false;">点我试试</a>

是的,这就是一个活生生的例子(.href is meant to be href),使用link的href或者img的src都可以的,再想想一个Attacher放了一个图片,然后写了一个onmouseover方法,执行上述的那段JS,如下,或者使用AJAX。
XML/HTML代码

<img .src="http://www.harmless.com/img" width="400" height="400" onmouseover="…" />

所以,限定为POST后还不是非常的保险,怎么办?不急,我们还有第二步,给non-GET的请求设置 security token,如何实现,在Rails2以后非常简单(也是默认的),我们只需要在environment.rb中添加如下代码:
Ruby代码

config.action_controller.session = {
	 :session_key => '_csrf_session',
	 :secret => 'ae4b43dda38ff78bb50898b2935da76d1e224061ab72a9399d34cea4c6178eee6dae815fff920a20642f27abda83b793da4e9b6cf20c4838805e80abf53e318a'
	}

然后在application controller中包含如下security token设置:
Ruby代码

protect_from_forgery :secret => '053cef294a333f72c3584311799c69d2'

ok,基本上安全了,如果这时POST请求过去,但是security token和session计算出来的secret和服务端的secret匹配不上的话,就会返回一个ActionController::InvalidAuthenticityToken错误,防止该类缺陷的出现。
安全了,也许你要说,那我如果能破解出protect_from_forgery,不进OK了么,按照理论上是,但是实际是破解是基本上不可能的,因为有人曾计算过,暴力破解该串大概需要2的11次方时间,后续我将再写一篇文章详细的介绍,这里不再赘述。

四、总结
总的来说,CSRF的兴起刚刚开始,网络上肯定会有一股热潮,Railser们一定要注意自己的程序的安全性,CSRF比你我能想到的更有威胁,千万别小瞧了它。

别再只用BurpSuite抓包了!社区版Intruder模块实战:从暴力破解到参数枚举的保姆级教程 本文深入解析BurpSuite社区版Intruder模块的高阶应用,从暴力破解到参数枚举的实战技巧。通过四大攻击模式对比、密码爆破策略及参数枚举技巧,帮助安全测试人员突破社区版限制,实现专业级渗透测试。文章还提供了结果分析方法和创造性解决方案,提升测试效率与精确度。 阅读详情

相关推荐

STM32测测速---编码电机读取速度的计算

速度计算:轮胎每转一圈的脉冲数取决于编码器的分辨率,可由下面公式进行计算:PPR是电机的线数最后可以计算轮胎每转一圈的脉冲数为:轮胎每转一圈的脉冲数 = 9.6 × 11 × 4 = 422.4最后的速度公式简化为:速度 = (0.01 秒内产生的脉冲数 ∗ 0.055 ∗ π )/(0.01 ∗422.4​。

weixin_69414084的博客 3812

Web安全漏洞之CSRF

在了解 CSRF 之前我们需要科普两个前提。首先是登录权限验证的方式有很多种,目前绝大多数网站采用的还是 session 会话任务的方式。session 机制简单的来说就是服务端使用一个键值对记录登录信息,同时在 cookie 中将 session id(即刚才说的键)存储到 cookie 中。另外我们又知道浏览器中 HTTP(s) 请求是会自动帮我们把 cookie 带上传给服务端的。这样在每次请求的时候通过 cookie 获取 session id,然后通过它在服务端获取登录信息即可完成用户权限的校验。

程序员阿飘 的博客 455

LTR-390UV-01对比VEML6075:5个真实项目中的选型避坑指南

本文对比了LTR-390UV-01和VEML6075两款环境光传感器在5个真实项目中的表现,提供了选型避坑指南。通过智能手环、农业温室、紫外线消毒柜等场景的实测数据,分析了动态范围、抗干扰性、温度稳定性等关键差异,帮助开发者在成本与性能间做出最优选择。

weixin_28733777的博客 220

CSRF攻击的危害有什么?怎么预防?

当用户登录一个网站后,该网站会向用户的浏览器中发送一个Cookie,该Cookie中包含了用户的身份验证信息。如果攻击者能够诱导用户访问一个特定的URL,并且该URL包含了恶意的请求参数,那么该URL就会在用户的浏览器中发起一个请求,并且该请求会携带用户的身份验证信息。由于服务器对用户的身份验证信息进行了信任,因此该请求会被认为是合法的,从而对用户的账户或其他敏感数据进行非法操作。这种攻击通常发生在用户在登录状态下访问其他网站时,攻击者通过诱导用户访问特定的URL,利用用户的身份伪造请求,进行非法操作。

dexunjiaqiang的博客 1121

电力电子技术文章:ACOT控制模式在Buck变换器中的频率稳定性分析

本文深入分析了ACOT控制模式在Buck变换器中实现频率稳定性的原理与优势。通过对比传统COT模式,阐述了ACOT如何通过自适应调整导通时间,将开关频率锁定在设定值,从而有效应对输入电压与负载变化。文章还探讨了其在轻载DCM模式下的高效与平滑切换特性,并提供了关键的设计考量与实战指南。

cc789的博客 1155

TI 实时操作系统SYS/BIOS使用总结

1:概述: SYS/BIOS 是一个可扩展的实时的操作系统。具有非常快速的响应时间(在中断和任务切换时达到较短的延迟),响应时间的确定性,强壮的抢占系统,优化的内存分配和堆栈管理(尽量少的消耗和碎片)。能够实现系统的模块化并可裁剪。 最大的特点就是:实时。 2:XDCtools: XDCtools 是SYS/BIOS引用的一种实时的软件组件技术(RTSC),它包括一些有用的工具,标准的AP

带头奋青的博客 5万+

聊聊前端安全之CSRF

本文作者为奇舞团前端开发工程师一、什么是CSRFCSRF(Cross Site Request Forgery,跨站域请求伪造),通常缩写为 CSRF。CSRF攻击是攻击者通过伪装成受信任用户向服务器发起各种请求,达到欺骗服务器接收并执行指令,造成的一系列危害的一种网络攻击方式。二、CSRF的原理原理流程图形化展示如上图所示,下面为原理流程释义:用户正常登录A网站,登录成功后,A网站将Cooki...

奇舞周刊 1165

Cadence Allegro PCB文件对比实战:3分钟搞定两份设计差异(附颜色标注技巧)

本文详细介绍了如何高效使用Cadence Allegro的Design Compare功能进行PCB文件差异对比。通过实战工作流,可在3分钟内精准定位并理解两份设计在布局、布线、元件等方面的关键差异,并分享了自定义颜色标注技巧,帮助工程师快速聚焦重要修改,提升设计评审与团队协作效率。

weixin_29248653的博客 380

【Web 安全】CSRF 攻击详解

文章目录一、CSRF 简介二、CSRF 原理三、CSRF 的危害四、CSRF 的攻击类型五、CSRF 的防御1. 验证 HTTP Referer 字段2. 在请求地址中添加 token 并验证3. 在 HTTP 头中自定义属性并验证参考链接 一、CSRF 简介 CSRF(Cross Site Request Forgery,跨站域请求伪造),也被称为 “One Click Attack” 或者 Session Riding,通常缩写为 CSRF 或者 XSRF 。 尽管听起来像跨站脚本(XSS),但它与X

weixin_44211968的博客 1万+

MOSFET关断尖峰电压的机理与抑制

MOSFET在电力电子系统中存在开关尖峰电压/电流问题,主要源于寄生电感、密勒电容及开关瞬态特性。尖峰会引发过压击穿、功率损耗和EMI干扰。抑制措施包括优化驱动电路、添加缓冲网络(RC/RCD)、降低寄生电感(改进PCB布线/封装)、使用快速二极管及远端负载特殊处理(电抗器/滤波器)。系统性的器件选型与电路设计是确保功率电子稳定运行的关键。

硬核科技 1824

2026年软考信息安全工程师备考指南

信息安全工程师是信息产业部和人事部举办的软考中新增开的一门考试。软考全称全国计算机技术与软件专业技术资格(水平)考试,这门新开的信息安全工程师分属该考试“信息系统”专业,位处中级资格,是信息产业部和人事部在最新的“国人厅发[2007]139号文件中新增的专业。2016年下半年,第一次开考信息安全工程师(中级)考试。 考试科目: 1.信息安全基础知识,考试时间为150分钟,笔试,选择题; ...

鹿鸣天涯 7400

CSRF攻击的危害分析

跨站请求伪造(Cross-Site Request Forgery,简称 CSRF)是一种常见的网络攻击,攻击者通过伪造用户请求,将恶意请求发送到目标网站,从而实现攻击目的。CSRF攻击可以造成严重的危害,本文将从多个方面分析CSRF攻击的危害,并探讨防范CSRF攻击的措施。

stormjun的博客 1406

Android Google 支付接入

1. 从 2023 年 8 月 2 日起,所有新应用都必须使用结算库版本 5 或更高版本。自 2023 年 11 月 1 日起,现有应用的所有新版本都必须使用结算库版本 5 或更高版本。 2. 如果您的应用以 Android 14 或更高版本为目标平台,您必须更新到 PBL 5.2.1 或 PBL 6.0.1 或更高版本。

帅次的博客 9404

如何防止模拟的http的恶意请求?

http://www.dewen.io/q/5511 我有一串URL www.abc.com?para=xxx  在页面中点击按钮后用ajax执行此URL后,后台会执行一些操作,页面通过ajax的响应结果继续完成接下来的操作。这里是没登录的情况下,没有用户标志这种session的。  但是如果遇到懂程序的人,如果发现了这个接口的调用方法,就可以使用一些Http模拟提交的工具来请求这个

mituan1234567的专栏 2万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

BurpSuite Intruder四种攻击模式深度解析:从Sniper到Cluster Bomb实战指南

在Web安全测试领域,自动化漏洞挖掘是提升效率的核心技术。其原理在于通过程序化方式模拟海量请求,对目标系统进行压力测试与模糊测试,从而发现人工难以察觉的安全缺陷。这项技术的核心价值在于将测试人员从重复劳动中解放,实现系统化、规模化的漏洞探测。在渗透测试与安全评估中,它被广泛应用于弱口令爆破、SQL注入检测、逻辑漏洞挖掘等关键场景。作为BurpSuite的灵魂模块,Intruder正是实现这一过程的强大引擎,它通过定义请求模板、载荷位置与载荷列表,自动化生成并发送变体请求。本文将深入解析其四种核心攻击模式——

dianxi0949的博客 384

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

CSRF漏洞危害,防御及其dvwa环境下的利用

1.csrf(用户请求伪造) 1.1原理:(攻击者知道重要操作的所有参数)当A用户使用浏览器访问一个带有csrf漏洞的网站时,并且产生了cookie值存储在浏览器中,在用户A不退出网站的前提下,这时候访问用户B(攻击者)构造的的恶意链接,使其服务器以为是用户A的合理请求以达到攻击者想要的请求。 1.2危害:以受害者名义发送邮件,发消息,盗取受害者的账号,甚至购买商品,虚拟货币转账,修改受害者的网络...

sun_k的博客 5002

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

被领导怼了,CSRF的危害及防御都不知道,你还做啥设计?

CSRF跨站请求伪造,全称Cross-site request forgery,是指利用受害者尚未失效的身份认证信息(cookie、会话等),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的情况下以受害者的身份向(身份认证信息所对应的)服务器发送请求,从而完成非法操作(如转账、改密等)。CSRF是Web安全中最容易被忽略的一种攻击方式,但某些时候却能产生强大的破坏性。

周沐子 805

通过故事搞懂CSRF危害

先看图 后说事: 1:CSRF是什么? CSRF概念:CSRF跨站点请求伪造(Cross—Site Request Forgery)攻击者盗用了你的身份,以你的名义发送恶意请求。 2:上面故事是如何发生攻击的 首先小K是管理员已经登陆了网站,大家都知道登陆网站就会产生一个token。 小B通过某种途径获得了A网站的删除人员的请求URL和参数 小K收到一个邮箱,没有经受住诱惑点击后会已小k登陆的COOKIE发起请求进行删除. 小B通过链接伪造小k的身份进行了攻击 3:故事结尾 小K这一点诱惑链接发送删

qq_43751598的博客 1327

CSRF漏洞

一、CSRF漏洞介绍: CSRF是指利用受害者尚未失效的身份认证信息( cookie、会话 等信息),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的情况下 以受害者的身份向服务器发送请求,从而完成非法操作(如转账、改密、信息修改等操作)。 CSRF与XSS最大的区别就在于,CSRF并没有盗取cookie而是直接利用 二、CSRF类型: get请求型CSRF 只需要构造URL,然后诱导受害者访问利用。 POST请求型CSRF 构造自动提交的...

weixin_39861994的博客 1万+

【网络安全】CSRF

本文介绍了什么是CSRF,CSRF的危害,CSRF的类型及示例,CSRF的防范措施

qq_44845473的博客 1200

CSRF攻击与防御(写得非常好)

转载地址:http://www.phpddt.com/reprint/csrf.html CSRF概念:CSRF跨站点请求伪造(Cross—Site Request Forgery),跟XSS攻击一样,存在巨大的危害性,你可以这样来理解: 攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,

认知 行动 坚持 25万+

CSRF-看似不重要实则是非常危险的,你中招了嘛?攻击与防御

概述 CSRF是Cross Site Request Forgery的缩写,中文是跨站点请求伪造;接下来将和大家分享这种攻击的原理、实施的方法、以及防御的几种方案; CSRF攻击的原理 通过在恶意网站部署好攻击代码和相关数据,然后引导目标网站的已经授权的用户进入恶意网站,由于浏览器已经获得了目标网站的用户授权票据,因此恶意网站就可以执行“事先”部署好的代码向目标网站提交数据使目标网站执行一些...

老余的博客 879
上一篇: 对MS word javascript execution的一些测试
下一篇: 迅雷协议分析–多链接资源获取
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值