Pikachu靶场之CSRF漏洞详解

这篇具有很好参考价值的文章主要介绍了Pikachu靶场之CSRF漏洞详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

本篇文章用于巩固对自己csrf漏洞的学习总结,其中部分内容借鉴了以下博客。
链接: pikachu CSRF(跨站请求伪造) (皮卡丘漏洞平台通关系列)

链接: Pikachu漏洞靶场系列之CSRF

漏洞简述

CSRF是什么

CSRF全称为跨站请求伪造(Cross-site request forgery),是一种网络攻击方式,在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接),然后欺骗目标用户进行点击,用户一旦点击了这个请求,整个攻击就完成了。也被称为 one-click attack 或者 session riding

CSRF攻击原理

CSRF攻击利用网站对于用户网页浏览器的信任,挟持用户当前已登陆的Web应用程序,去执行并非用户本意的操作。

CSRF攻击防护

1.只使用JSON API
2.验证HTTP Referer字段
3.在请求地址中添加token验证

如何确认一个web系统存在CSRF漏洞

1.对目标网站增删改的地方进行标记,并观察其逻辑,判断请求是否可以被伪造
例如修改管理员账号时,不需要验证旧密码,导致请求容易被伪造;对于敏感信息的修改并没有使用安全的token验证,导致请求容易被伪造

2.确认凭证的有效期
虽然退出或关闭了浏览器,但cookie仍然有效,或者session并没有过期,导致CSRF攻击变得简单

第1关 CSRF(get)

进入靶场发现是一个登陆界面,所以我们直接点击提示得到账号密码进行登录。
Pikachu靶场之CSRF漏洞详解
发现有这么多账号,直接选择一个登陆。
我这里使用allen这个账号登录,登录后是一个个人信息页面
Pikachu靶场之CSRF漏洞详解
点击修改个人信息进入修改界面点击submit进行修改
Pikachu靶场之CSRF漏洞详解
发现url没有变化,点击提交之后就跳转到上图这个显示个人信息的页面了,信息也修改成功了
Pikachu靶场之CSRF漏洞详解
所以这时候我们可以使用burpsuit进行抓包修改,在提交修改个人信息的时候,可以抓包,看到下面的内容
Pikachu靶场之CSRF漏洞详解
从上面的url可见,修改用户信息的时候,是不带任何不可预测的认证信息的。那么,这里应该是可以被利用的。

在allen登录状态下(其实这个链接里面是不包含用户名的,谁登录都无所谓,只要有人登录着就行,登录着的用户的信息就会被改成url提供的那些),试试改一改上面的链接,比如把电话号码改一改。浏览器地址栏输入payload:

http://www.pikachu.com:90/vul/csrf/csrfget/csrf_get_edit.php?sex=boy&phonenum=123456789&add=nbaluckhouse&email=allen%40qq.com&submit=submit

Pikachu靶场之CSRF漏洞详解
如果被攻击者此时登录状态或cookie/session没有过期,则她的信息被修改。

跳转到显示用户信息的地方,手机号已经被成功修改,攻击成功。

如下图:
Pikachu靶场之CSRF漏洞详解
如果觉得这个url过于明显,网上有很多短链接网站可以修饰url(百度搜索“短链接”就有很多)

比如下图这样(印象中似乎见过一个网站可以自己定义生成的短链接的部分特征,比如以某个知名网站名开头。没找到,要是哪位大神知道,欢迎分享)
Pikachu靶场之CSRF漏洞详解

浏览器地址栏输入这个短链接之后,allen成功变成女孩啦
Pikachu靶场之CSRF漏洞详解

第2关 CSRF(post)

进入第二关,也是一个登陆界面,登陆的账号密码和第一关一样,依旧登陆allen账号进行修改
Pikachu靶场之CSRF漏洞详解
进入修改信息界面,点击submit进行抓包
可以看到下图
Pikachu靶场之CSRF漏洞详解
从上图的请求报文来看,和前一关一样,没有不可预测的认证信息,可以被利用。

但是这一关是post类型,URL不再显示修改参数,所以无法再使用上述办法(即通过URL来伪造请求)进行修改,但是抓包可以知道本页面中有的标签以及name,方便后面构造表单时使用。

此时,黑客可以通过构造恶意站点,将POST请求隐藏在站点中的表单中,然后诱骗用户进行点击,当用户点击后触发表单,数据自然就POST到存在CSRF漏洞的网站,用户的信息则被恶意修改。

Pikachu靶场之CSRF漏洞详解

将写好的表单部署到黑客站点,这里因为是本机做演示,所以我放到Pikachu/vul/csrf/目录下
Pikachu靶场之CSRF漏洞详解

最后,当用户在登录状态下,访问黑客站点http://www.pikachu.com:90/csrf.html并点击提交按钮,那么其个人信息将会被恶意修改,可以在控制台中看到点击按钮后触发的POST请求。
点击前
Pikachu靶场之CSRF漏洞详解
点击后
Pikachu靶场之CSRF漏洞详解

<html>
    <script>                                                                                                       <!-- 这个script是用来自动提交表单的 -->
        window.onload = function() {
        document.getElementById("submit").click();
        }
    </script>              
    <body>
            <form action="http://www.pikachu.com:90/vul/csrf/csrfpost/csrf_post_edit.php" method="POST">    
                <input type="hidden" name="sex" value="girl" />
                <input type="hidden" name="phonenum" value="123456789" />
                <input type="hidden" name="add" value="usa" />
                <input type="hidden" name="email" value="caker@pikachu.com" />
                <input type="hidden" name="submit" value="submit" />
              <input id="submit" type="submit" value="Submit request" style="display:none"/>                    <!-- style设置为display:none起到隐藏submit按钮的作用 -->
            </form>
    </body>
</html> 

第三关 CSRF Token

这关是防范CSRF的常用方法的一个演示。

token验证原理

CSRF的主要问题是敏感操作的链接容易被伪造
每次请求,都增加一个随机码(需要够随机,不容易伪造),后台每次对随机码进行验证

网页接受从后台发过来的token,类型不可见。将其一并提交给后台进行验证。每次刷新,后台发送过来的token都不一样,起到了防止伪造的作用。

修改用户信息并提交,在burpsuite的proxy模块可以看到报文中包含token(如下图红框中所示)
Pikachu靶场之CSRF漏洞详解
试了一下,这关删除token是无法修改用户信息的,多抓几个包之后也没有看出token有什么规律。
在一个浏览器上以allen登录,到修改信息的页面,查看网页源代码获取token,再到另一个浏览器以lili登录,构造payload包含此token也是无法攻击成功的。

看一下代码,修改用户信息时,服务器会比较url中的token字段和session中的token字段,如果相同才能修改用户信息。

修改完用户信息之后,会用set_token()函数生成新的token,将其返回到html表单中并隐藏起来,以便下次用户修改信息时代入url。
Pikachu靶场之CSRF漏洞详解
Pikachu靶场之CSRF漏洞详解
set_token()函数如下图所示,在生成新token之前会先销毁老token,避免token重复使用。
Pikachu靶场之CSRF漏洞详解

其他防范措施

Pikachu靶场之CSRF漏洞详解文章来源地址https://www.toymoban.com/news/detail-459478.html

到了这里,关于Pikachu靶场之CSRF漏洞详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Web漏洞-XSS实验-pikachu靶场5个场景(二)

    ★★实战前置声明★★ 文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。 上一篇《Web漏洞-XSS理论和靶场小试牛刀(一)》已经介绍了XSS一些理论知识点,本文

    2024年02月05日
    浏览(46)
  • Web漏洞-XSS绕过和pikachu靶场4个场景(三)

    ★★实战前置声明★★ 文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。 1.1、XSS漏洞挖掘 数据交互(输入/输出)的地方最容易产生跨站脚本,最重要的是考

    2024年02月05日
    浏览(47)
  • pikachu靶场练习——XSS详解

    Cross-Site Scripting 简称为“CSS”,为避免与前端叠成样式表的缩写\\\"CSS\\\"冲突,故又称XSS。 非持久化攻击者事先制作好攻击链接, 需要欺骗用户自己去点击链接才能触发XSS代码(不会存储在服务器,不会经过数据库),一般容易出现在搜索页面。 持久化代码是存储在服务器中的,

    2024年02月09日
    浏览(59)
  • DVWA靶场之CSRF通关详解

    CSRF的形成原因主要是由于Web应用程序没有充分验证请求来源的问题。正常的请求必须携带正确的Cookie信息,而攻击者可以构造一个恶意网站,在其中包含一个发送CSRF请求的链接或表单,当用户访问这个网站时,浏览器会自动发送CSRF请求到被攻击的网站,从而实现攻击。 随机

    2024年02月10日
    浏览(34)
  • 十五、pikachu之CSRF

      Cross-site request forgery 简称为“CSRF”,在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接),然后欺骗目标用户进行点击,用户一旦点击了这个请求,整个攻击就完成了。所以CSRF攻击也成为\\\"one click\\\"攻击。   SRF与XSS的区别:CSRF是借用户的权限完成攻击

    2024年02月10日
    浏览(54)
  • Web漏洞之CSRF(跨站请求伪造漏洞)详解

    我们知道了同源策略可以隔离各个站点之间的 DOM 交互、页面数据和网络通信,虽然严格的同源策略会带来更多的安全,但是也束缚了 Web。 这就需要在安全和自由之间找到一个平衡点,所以我们默认页面中可以引用任意第三方资源 ,然后又引入 CSP 策略来加以限制;默认 X

    2024年02月03日
    浏览(58)
  • 靶场搭建——搭建pikachu靶场

    这里我所运用到的材料有:首先我最终是在虚拟机中环境为 win2012 和主机都搭建完成。 (一个即可) Phpstudy,Phpstorm,pikachu、 外加的话浏览器别太老。 Phpstudy :https://www.xp.cn/ Phpstorm :https://www.jetbrains.com/zh-cn/phpstorm/ pikachu :https://github.com/zhuifengshaonianhanlu/pikachu 这里我并没有

    2024年02月12日
    浏览(46)
  • GitHub Copilot 使用攻略,本篇文章作者是GPT-3.5

    引言: 在软件开发领域,编写高质量的代码是开发者们的永恒追求。然而,传统的编码过程常常耗费大量时间和精力,而且在遇到复杂的问题时,开发者可能会面临困惑和不确定性。为了解决这些挑战,GitHub推出了一款强大的工具——GitHub Copilot,它利用人工智能技术提供智

    2024年02月16日
    浏览(59)
  • pikachu靶场之暴力破解

    目录 一、什么是暴力破解 二、burpsuite四种攻击类型   1. sniper(狙击手模式)  2. battering ram(攻城锤模式) 3. pitchfrk(音叉模式)   4. cluster bomb(集数炸弹模式)    三、pikachu暴力破解 1. 基于表单的暴力破解 2. 验证码绕过(on server)  3. 验证码绕过(on client) 4. on client和on server 5. token防

    2024年02月05日
    浏览(38)
  • pikachu靶场搭建教程

    pikachu靶场下载地址:https://github.com/zhuifengshaonianhanlu/pikachu 搭建过程 将靶场文件夹放到phpstudy的www目录 进入pikach文件夹的inc目录,修改靶场配置文件 config.inc.php ,设置数据库账号密码均为 root 启动phpstudy后访问本机ip目录下的install.php文件,进行安装初始化 点击安装/初始化 初

    2024年01月18日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包