(保姆级教学)跨站请求伪造漏洞

1. CSRF漏洞

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

我本身有一个网站 我自己能操作修改密码 你有一个同样的网站 我搞了一个其他的点击按钮 那你点了一下 ,你在当前的浏览器上有这个网站的登录状态 ,(并且你是在当前浏览器中)这个时候可能触发csrf漏洞

测试方法:

安全扫描;使用burpsuite进行抓包,将参数中的token删除,或者设置为空,重放请求,若正常访问则说明有漏洞;

同个浏览器打开两个页面,一个页面权限失效后,另一个页面是否可操作成功,如果仍然能操作成功即存在风险。

使用工具发送请求,在http请求头中不加入referer字段,检验返回消息的应答,应该重新定位到错误界面或者登录界面。

检测csrf漏洞一般是看每一个操作是否有验证码验证,是否有token或者referer,可以注册多个账户然后利用A用户生成的poc去检测B用户

csrf 客户端请求伪造 ,该漏洞通常由攻击者构造的请求传递给服务端,服务器端对传回的请求未作特殊处理直接执行而造成的。

攻击者通过跨站请求,以合法的用户的身份进行非法操作

CSRF的攻击过程两个条件:

1。目标用户已经登录了网站,能够执行网站的功能

2、目标用户访问了攻击者构造的URL.

3、熟悉网站数据包构造(CSRFTester)

CSRF安全问题黑盒怎么判断(防御)

1、看验证来源不-修复(同源策略referer,两个相同的链接,一个是网站直接点过去的,一个是连接访问效果不一样,就是有同源策略,一样就没有)

2、看凭据有无token--修复

3、看关健摄作有无验证-修复(密码验证、验证码)

CSRF安全问题白盒怎么审计:

同黑盒思路一样,代码中分析上述三看

流程

1、获取目标的触发数据包

2、利用CSRFTester构造导出

3、诱使受害者访问特定地址触发

2. 漏洞简介

跨站请求攻击,简单地说,是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并执行一些操作(如发邮件、发消息、甚至财产操作:转账、购买商品等)。由于浏览器曾经认证过,所以被访问的网站会认为是真正的用户操作而去执行。这利用了web中用户身份认证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。

3. CSRF的成因

CSRF攻击利用网站对于用户网页浏览器的信任,挟持用户当前已登陆的Web应用程序,去执行并非用户本意的操作。CSRF漏洞能够做的事情包括:以目标用户的名义发送邮件、发消息、盗取目标用户的账号,甚至购买商品、虚拟货币转账,这会泄露个人隐私并威胁到了目标用户的财产安全

Csrf漏洞的攻击过程有两个重点:

1.目标用户已经登录了网站,能够执行网站的功能

2.目标用户访问了攻击者构造的URL

4. CSRF攻击实例

1、角色

正常浏览网页的用户:User

正规的但是具有漏洞的网站:WebA

利用CSRF进行攻击的网站:WebB。

2、流程

(1)步骤一

用户登录、浏览并信任正规网站WebA,同时,WebA通过用户的验证并在用户的浏览器中产生Cookie。

(2)步骤二

攻击者WebB通过在WebA中添加图片链接等方式诱导用户User访问网站WebB。

(3)步骤三

在用户User被诱导访问WebB后,WebB会利用用户User的浏览器访问第三方网站WebA,并发出操作请求。

(4)步骤四

用户User的浏览器根据WebB的要求,带着步骤一中产生的Cookie访问WebA。

(5)步骤五

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

二、CSRF原理

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

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

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

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

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

5. CSRF与XSS漏洞区别

**CSRF:**利用网站对用户网页浏览器的信任(没有盗用用户的cookie,直接利用浏览器存储的cookie让用户去执行某个操作。)
**XSS:**利用用户对指定网站的信任

6. CSRF漏洞检测

1.检测CSRF漏洞是一项比较繁琐的工作,最简单的方法就是抓取一个正常请求的数据包,去掉Referer字段后再重新提交,如果该提交还有效,那么基本上可以确定存在CSRF漏洞。

2.随着对CSRF漏洞研究的不断深入,不断涌现出一些专门针对CSRF漏洞检测的工具,若CSRFTester,CSRF Request Builder等

7. CSRF的高危触发点

  1. 论坛交流
  2. 用户中心
  3. 反馈留言
  4. 交易管理
  5. 后台管理

8. CSRF漏洞的危害

  • 伪造HTTP请求进行未授权操作
  • 篡改、盗取目标网站上的重要用户数据
  • 未经允许执行对用户名誉或者资产有害的操作,比如:散播不良信息、进行消费等
  • 如果通过使用社工等方式攻击网站管理员,会危害网站本身的安全性
  • 作为其他攻击向量的辅助攻击手法,比如配合XSS
  • 传播CSRF蠕虫

9. CSRF挖掘技巧

9.1漏洞产生的条件

  1. 被害用户已经完成身份认证
  2. 新请求的提交不需要重新身份认证或确认机制
  3. 攻击者必须了解Web APP请求的参数构造
  4. 诱使用户触发攻击的指令(社工)

9.2 漏洞产生的位置

密码修改处、点赞、转账、注销、删除等,有交互个数据传输的地方就可能有存在CSRF,但是注意,挖掘时最好通过判断有无二次验证(修改密码需要旧密码验证)或着通过有无token等来快速判断。

10. CSRF防御措施

(1)验证用户

当用户发送重要的请求时需要输入原始密码或验证码

(2)限制请求方式

限制请求方式只能为POST

(3)只使用JSON API

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

  1. Referer验证

根据HTTP协议,在HTTP头中有一个字段叫Referer,它记录了该HTTP请求的来源地址。在通常情况下,访问一个安全受限页面的请求必须来自于同一个网站。比如某银行的转账是通过用户访问http://bank.test/test?page=10&userID=101&money=10000页面完成,用户必须先登录bank.test,然后通过点击页面上的按钮来触发转账事件。当用户提交请求时,该转账请求的Referer值就会是转账按钮所在页面的URL(本例中,通常是以bank. test域名开头的地址)。而如果攻击者要对银行网站实施CSRF攻击,他只能在自己的网站构造请求,当用户通过攻击者的网站发送请求到银行时,该请求的Referer是指向攻击者的网站。因此,要防御CSRF攻击,银行网站只需要对于每一个转账请求验证其Referer值,如果是以bank. test开头的域名,则说明该请求是来自银行网站自己的请求,是合法的。如果Referer是其他网站的话,就有可能是CSRF攻击,则拒绝该请求

  1. Token验证

CSRF攻击之所以能够成功,是因为攻击者可以伪造用户的请求,该请求中所有的用户验证信息都存在于Cookie中,因此攻击者可以在不知道这些验证信息的情况下直接利用用户自己的Cookie来通过安全验证。由此可知,抵御CSRF攻击的关键在于:在请求中放入攻击者所不能伪造的信息,并且该信息不存在于Cookie之中。鉴于此,系统开发者可以在HTTP请求中以参数的形式加入一个随机产生的token,并在服务器端建立一个拦截器来验证这个token,如果请求中没有token或者token内容不正确,则认为可能是CSRF攻击而拒绝该请求。

  1. 增加验证码验证

Spring security的表单验证是通过过滤器链中的 UsernamePasswordAuthenticationFilter 来完成的,我们增加的验证码过滤器应该插在 UsernamePasswordAuthenticationFilter 之前,如果验证码校验不通过,直接返回,无需进行账户密码的校验。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/670.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构和算法:动态规划

初探动态规划 动态规划(dynamic programming)是一个重要的算法范式,它将一个问题分解为一系列更小的子问题,并通过存储子问题的解来避免重复计算,从而大幅提升时间效率。 例题:爬楼梯 给定一个共有 &…

电机控制专题(三)——Sensorless之有功磁链Active Flux电压模型

文章目录 电机控制专题(三)——Sensorless之有功磁链Active Flux电压模型前言理论推导仿真验证总结参考文献 电机控制专题(三)——Sensorless之有功磁链Active Flux电压模型 前言 总结下电机控制中的有功磁链Active Flux(AF)模型。 纯小白,如有不当,轻…

OpenHarmony实战开发-Web自定义长按菜单案例。

介绍 本示例介绍了给Webview页面中可点击元素(超链接/图片)绑定长按/鼠标右击时的自定义菜单的方案。 效果预览图 使用说明 长按Web页面中的图片或者链接元素,弹出自定义的Menu菜单,创建自定义的操作,如复制图片、使…

【NLP练习】使用Word2Vec实现文本分类

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 一、数据预处理 1. 任务说明 本次加入Word2Vec使用PyTorch实现中文文本分类,Word2Vec则是其中的一种词嵌入方法,是一种用于生成词向量…

2001-2022上市公司数字化转型数据(含原始数据+计算代码+计算结果)

2001-2022上市公司数字化转型数据(含原始数据计算代码计算结果) 1、时间:2001-2022年 2、来源:原始数据整理自wind 3、指标:证券代码、证券简称、统计截止日期、是否发生ST或*ST或PT、是否发生暂停上市、行业代码、…

戴尔电脑怎么关闭开机密码?

1.同时按键盘上是“window键”(一般是键盘最下面一排第二个)和“R键“,并在弹出的窗口输入“netplwiz”然后确定。 2.然后会弹出的“用户账户”窗口,接下来取消勾选“要使用本计算机,用户必须输入用户名和密码” 3.上面…

每日算法练习(1)

开一个新坑,记录下自己每天的算法练习,希望自己通过1个多月的学习,能够成为算法大神。 下面正式开始新坑。 两个数组的交集 这是牛客上的题,根据题意,我们有多种解法,这题用哈希比较好写。我们可以弄一个…

Java 变得越来越像 Rust?

随着编程技术的增强和复杂性的提升,许多编程语言也纷纷效仿,Java 也不例外。 另一边,尽管社区内部问题重重,但 Rust 仍逐年获得开发人员的喜爱。这背后都是有原因的:Rust 的编译器让开发人员避免了各种问题。编译器对…

【GlobalMapper精品教程】074:从Lidar点云创建3D地形模型

本文基于地形点云数据,基于泊松方法、贪婪三角形测量方法和阿尔法形状创建3d地形模型。 文章目录 一、加载地形点云数据二、创建三维地形模型1. 泊松方法2. 贪婪三角形测量方法3. 阿尔法形状注意事项一、加载地形点云数据 加载配套案例数据包中的data074.rar中的地形点云数据…

3D地图大屏 附源码(Three.js + Vue3)

目录 👋 前言 🚀 项目包 ⚒️ 字体制作 🌐 地图制作 💡 参考视频 & 项目 开源项目(Vue3tsWindcssEchartThree.js大屏案例) 开源(教程) UI风格学习( www.shuzixs.com …

java调用讯飞星火认知模型

前往讯飞开发平台选择产品,获取appId、apiKey、APISecret,这里我选择的是v3.0模型。 java后端实现 本项目以及实现了基本的会话功能,小伙伴可以自己扩充其他的例如绘画功能。 注意:星火模型的api使用的是websocket协议&#xf…

c 多文件编程

1.结构目录 声明类:用于声明方法,方便方法管理和调用; 实现类:用于实现声明的方法; 应用层:调用方法使用 写过java代码的兄弟们可以这么理解: 声明类 为service层 实现类 为serviceimpl层 应用层 为conlloter层 2.Dome 把函数声明放在头文件xxx.h中&…

与上级意见不合时如何恰当地表达自己的观点?

在工作中与上级意见不合时,恰当表达自己的观点并寻求共识是一个需要谨慎处理的问题。以下是一些建议: 1. **尊重与礼貌**:在任何情况下,都应保持对上级的尊重和礼貌。即使在意见不合时,也要避免情绪化,保持…

200页图解国标《数据分类分级规则》正式稿,强化重要数据识别

GB/T 43697-2024《数据安全技术 数据分类分级规则》正式稿发布,并于2024年10月1日实施。2024年4月17日,国家标准全文公开系统公布了国标最终版。《数据分类分级规则》是全国网安标委更名后,发布的第一部以“数据安全技术”命名的国家标准&…

Python-VBA函数之旅-enumerate函数

目录 1、enumerate函数: 1-1、Python: 1-2、VBA: 2、相关文章: 个人主页:非风V非雨-CSDN博客 enumerate函数在Python中是一个强大的内置函数,用于将一个可迭代对象转换为一个索引序列,同时返…

java-spring 图灵 04 doscan

01.本次的重点依旧是扫描函数,这次是spring中的源码: 02.第一步,构造AnnotationConfigApplicationContext 主方法: public static void main(String[] args) {// 创建一个Spring容器AnnotationConfigApplicationContext applica…

C#基础|Debug程序调试学习和技巧总结

哈喽,你好啊,我是雷工! 在程序的开发过程中,可能绝大部分时间是用来调试程序, 当完成了某个功能的编程,都需要调试一下程序,看编程是否存在问题。 01 为什么需要程序调试 无论是电气工程师还…

深入探究图像增强(C语言实现)

我们将从基础出发使用C语言进行图像处理与分析,重点讨论图像增强和平滑技术。图像增强技术旨在通过增加对比度、亮度和整体清晰度来改善图像的视觉质量。另一方面,图像平滑方法则用于减少噪声并减少图像中的突变,使图像更加均匀和视觉上吸引人…

2024新版淘宝客PHP网站源码

源码介绍 2024超好看的淘客PHP网站源码,可以做优惠券网站,上传服务器,访问首页进行安装 安装好了之后就可以使用了,将里面的信息配置成自己的就行 喜欢的朋友们拿去使用把 效果截图 源码下载 2024新版淘宝客网站源码

高精度算法(1)

前言 今天来讲一讲高精度算法,我们说一个数据类型,有它的对应范围比如int类型最多 可以包含到负2的31次方到2的31次方减一 其实大概就是20亿左右那么其他的类型也同样如此 那么,如何解决一个很大很大的数的运算呢? 我们今天介…