Web渗透-CSRF跨站请求伪造

跨站请求伪造(Cross-Site Request Forgery,CSRF)是一种网络攻击,通过利用受害者的身份认证状态在不知情的情况下执行恶意操作。通常,这种攻击会诱使用户点击恶意链接或访问一个特制的网站,从而触发不被用户所知的请求,导致用户意图之外的行为,如更改用户设置、转账等。

CSRF漏洞原理

CSRF攻击利用了Web应用程序在用户已经登录且保持会话状态下,对来自同一会话的所有请求都信任的特点。具体来说,攻击者会构造一个恶意请求,并诱使受害者浏览这个请求,使得请求在用户的身份上下文中执行。

CSRF的攻击步骤
①用户登录受信任网站:用户登录一个网站,并获得一个会话Cookie。
②攻击者构造恶意请求:攻击者构造一个包含恶意操作的请求,并将该请求嵌入到第三方网站或直接发送给用户。
③诱使用户执行恶意请求:用户在登录状态下,访问了包含恶意请求的第三方网站或点击了攻击者发送的恶意链接。
④受信任网站执行请求:受信任网站收到这个恶意请求,并因为用户已经认证,通过了请求,执行了恶意操作。
示例

此时我们拿pikachu靶场中的CSRF漏洞页面来进行演示:

1.打开页面后发现是一个登录框,这个时候可以使用爆破手法尝试进入,也可以直接点击右上角的提示获取登录账号密码(因为重点是CSRF漏洞,所以这边就不浪费时间了直接使用提示的账号密码进行登录)

2.登录成功后发现底下有修改个人信息的按钮,点击按钮进行修改

3.来到修改页面后,我们随便做一个修改,打开burpsuite进行抓包然后点击提交,获得这个请求数据包。

4.这个时候获得到数据包后,我们提取处数据包头部中的url部分

/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=boy&phonenum=15988767673&add=nba+lakes1212&email=kobeaow%40pikachu.com3&submit=submit

可以看到我们刚才修改用户信息的数据在数据包中的url部分都体现出来了,这个时候我们可以测试其是否存在CSRF漏洞,测试之前我们需要先根据这个部分url和当前站点的域名/IP进行拼接获得完整的请求URL。(笔者这边靶场部署在本地电脑中,不具备通用性,所以这个域名部分我就使用www.domain.com替代)

http://www.domain.com/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=boy&phonenum=15988767673&add=nba+lakes1212&email=kobeaow%40pikachu.com3&submit=submit

5.攻击实施:

这个为了方便理解,我打开虚拟机,并且访问部署在我本机的站点,且进行登录,登录的账户为vince/123456。

此时账户信息如上;接着我将④在本地修改信息产生的url放至虚拟机中进行访问(www.domain.com需要根据情况修改,网络基础问题就不做过多赘述了),我的URL为:

http://192.168.8.1/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex=boy&phonenum=15988767673&add=nba+lakes1212&email=kobeaow%40pikachu.com3&submit=submit

将url放到虚拟机中的地址栏中进行访问后,查看情况:

此时vince的基本信息都被修改,攻击成功,这个时候我们使用一张图片来阐述思路:物理机对应着攻击者,虚拟机对应着受害者

至此CSRF原理与利用方法阐述完毕,看到这边也希望各位兄弟要有安全意识,陌生的链接不要随便乱点!!!

在这里有些师傅可能会说,这个URL这么明显,看着就很危险肯定不会点不会上当;那么作为攻击者我们又该如何去掩饰我们URL的危险性呢?搜索引擎搜索短链接,随便选一个短链接生成平台;将恶意URL放入平台进行短链接生成:

得到URL:https://a.d4t.cn/gvSFDF这个时候我们在虚拟机(受害者)中访问这个URL:

发现页面自动跳转至该页面,攻击成功!

源码刨析:

$html1='';
if(isset($_GET['submit'])){if($_GET['sex']!=null && $_GET['phonenum']!=null && $_GET['add']!=null && $_GET['email']!=null){$getdata=escape($link, $_GET);$query="update member set sex='{$getdata['sex']}',phonenum='{$getdata['phonenum']}',address='{$getdata['add']}',email='{$getdata['email']}' where username='{$_SESSION['csrf']['username']}'";$result=execute($link, $query);if(mysqli_affected_rows($link)==1 || mysqli_affected_rows($link)==0){header("location:csrf_get.php");}else {$html1.='修改失败,请重试';
​}}
}

可以看到在后端PHP程序在对内容进行修改时就只对各个数据段(性别、段话、地址、邮箱)进行检查,若这些字段都不为空的话则直接可以进行信息修改,等于只要受害者登录了这个网站,攻击者就可以构造恶意代码对其进行攻击。

创作不易,请多多关注!

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

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

相关文章

上交商汤联合提出一种虚拟试穿的创新方法,利用自监督视觉变换器 (ViT) 和扩散模型

上交&商汤联合提出一种虚拟试穿的创新方法,利用自监督视觉变换器 (ViT) 和扩散模型,强调细节增强,通过将 ViT 生成的局部服装图像嵌入与其全局对应物进行对比。虚拟试穿体验中细节的真实感和精确度有了显着提高,大大超越了现有…

创建OpenWRT虚拟机

环境:Ubuntu 2204,VM VirtualBox 7.0.18 安装必备软件包: sudo apt update sudo apt install subversion automake make cmake uuid-dev gcc vim build-essential clang flex bison g gawk gcc-multilib g-multilib gettext git libncurses…

vulnhub靶场之FunBox-11

一.环境搭建 1.靶场描述 As always, its a very easy box for beginners. Add to your /etc/hosts: funbox11 This works better with VirtualBox rather than VMware. 2.靶场下载 https://www.vulnhub.com/entry/funbox-scriptkiddie,725/ 3.靶场启动 二.信息收集 1.寻找靶…

数学建模系列(3/4):典型建模方法

目录 引言 1. 回归分析 1.1 线性回归 基本概念 Matlab实现 1.2 多元回归 基本概念 Matlab实现 1.3 非线性回归 基本概念 Matlab实现 2. 时间序列分析 2.1 时间序列的基本概念 2.2 移动平均 基本概念 Matlab实现 2.3 指数平滑 基本概念 Matlab实现 2.4 ARIM…

Vue 自定义ElementUI的Loading效果

import { loadingText, messageDuration } from "/settings";import { Loading } from "element-ui"; // loadingText、messageDuration 这两个参数我是调的公共配置文件,按自己需求来 const install (Vue, opts {}) > {/* 全局多彩Loading加载层 *…

Open3D点云处理学习

Color ICP Colored point cloud registration — Open3D 0.11.0 documentation Colored point cloud registration - Open3D 0.18.0 documentation 展示了使用color-icp结果 对比gicp错误处理结果 intel自己的论文 Colored Point Cloud Registration Revisited 优化方程 参…

web版的数字孪生,选择three.js、unity3D、还是UE4

数字孪生分为客户端版和web端版,开发引擎多种多用,本文重点分析web端版采用哪种引擎最合适, 贝格前端工场结合实际经验和网上主流说法,为您讲解。 一、数字孪生的web版和桌面版 数字孪生的Web版和桌面版是数字孪生技术在不同平台…

昇思25天学习打卡营第4天|网络构建|函数式自动微分

学AI还能赢奖品?每天30分钟,25天打通AI任督二脉 (qq.com) 网络构建 神经网络模型是由神经网络层和Tensor操作构成的,mindspore.nn提供了常见神经网络层的实现,在MindSpore中,Cell类是构建所有网络的基类,也…

29-Linux--守护进程

一.基础概念 1.守护进程:精灵进程,在后台为用户提高服务,是一个生存周期长,通常独立于控制终端并且周期性的执行任务火处理事件发生 2.ps axj:查看守护进程 3.进程组:多个进程的集合,由于管理…

快捷方式(lnk)--加载HTA-CS上线

免责声明:本文仅做技术交流与学习... 目录 CS: HTA文档 文件托管 借助mshta.exe突破 本地生成lnk快捷方式: 非系统图标路径不同问题: 关于lnk的上线问题: CS: HTA文档 配置监听器 有效载荷---->HTA文档--->选择监听器--->选择powershell模式----> 默认生成一…

Python神经影像数据的处理和分析库之nipy使用详解

概要 神经影像学(Neuroimaging)是神经科学中一个重要的分支,主要研究通过影像技术获取和分析大脑结构和功能的信息。nipy(Neuroimaging in Python)是一个强大的 Python 库,专门用于神经影像数据的处理和分析。nipy 提供了一系列工具和方法,帮助研究人员高效地处理神经影…

Desoutter智能拧紧中枢Connect过压维修

马头智能拧紧中枢过压维修是马头拧紧设备维护中的重要环节。当出现马头拧紧设备中枢过压现象时,会导致设备性能下降,甚至损坏设备,因此及时对过压中枢进行维修是保障设备正常运转的关键。 Desoutter电动螺丝刀控制器过压的原因可能有很多&am…

emqx5.6.1 数据、配置备份与迁移

EMQX 支持导入和导出的数据包括: EMQX 配置重写的内容: 认证与授权配置规则、连接器与 Sink/Source监听器、网关配置其他 EMQX 配置内置数据库 (Mnesia) 的数据 Dashboard 用户和 REST API 密钥客户端认证凭证(内置数据库密码认证、增强认证…

五十六、openlayers官网示例Magnify解析——在地图上实现放大镜效果

官网demo地址: Magnify 这篇讲了如何在地图上添加放大镜效果。 首先加载底图 const layer new TileLayer({source: new StadiaMaps({layer: "stamen_terrain_background",}),});const container document.getElementById("map");const map …

ES6+Vue

ES6Vue ES6语法 ​ VUE基于是ES6的,所以在使用Vue之前我们需要先了解一下ES6的语法。 1.什么是ECMAScript6 ECMAScript是浏览器脚本语言的规范,基于javascript来制定的。为什么会出现这个规范呢? 1.1.JS发展史 1995年,网景工…

Linux中部署MySQL环境(本地安装)

进入官网:http://www.mysql.com 选择社区版本得到MySQL 选择对应的版本和系统进行安装 用wget进行软件包下载 wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.32-1.el9.x86_64.rpm-bundle.tar解压该软件包 tar -xf mysql-8.0.32-1.el9.x86_64.rpm-bu…

Rcmp: Reconstructing RDMA-Based Memory Disaggregation via CXL——论文阅读

TACO 2024 Paper CXL论文阅读笔记整理 背景 RDMA:RDMA是一系列协议,允许一台机器通过网络直接访问远程机器中的数据。RDMA协议通常固定在RDMA NIC(RNIC)上,具有高带宽(>10 GB/s)和微秒级延…

实验13 简单拓扑BGP配置

实验13 简单拓扑BGP配置 一、 原理描述二、 实验目的三、 实验内容四、 实验配置五、 实验步骤 一、 原理描述 BGP(Border Gateway Protocol,边界网关协议)是一种用于自治系统间的动态路由协议,用于在自治系统(AS&…

聚类算法(1)---最大最小距离、C-均值算法

本篇文章是博主在人工智能等领域学习时,用于个人学习、研究或者欣赏使用,并基于博主对人工智能等领域的一些理解而记录的学习摘录和笔记,若有不当和侵权之处,指出后将会立即改正,还望谅解。文章分类在AI学习笔记&#…

SpringMVC系列九: 数据格式化与验证及国际化

SpringMVC 数据格式化基本介绍基本数据类型和字符串自动转换应用实例-页面演示方式Postman完成测试 特殊数据类型和字符串自动转换应用实例-页面演示方式Postman完成测试 验证及国际化概述应用实例代码实现注意事项和使用细节 注解的结合使用先看一个问题解决问题 数据类型转换…