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日
    浏览(45)
  • Web漏洞-XSS绕过和pikachu靶场4个场景(三)

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

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

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

    2024年02月09日
    浏览(57)
  • 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日
    浏览(52)
  • Web漏洞之CSRF(跨站请求伪造漏洞)详解

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

    2024年02月03日
    浏览(54)
  • 靶场搭建——搭建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日
    浏览(45)
  • GitHub Copilot 使用攻略,本篇文章作者是GPT-3.5

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

    2024年02月16日
    浏览(58)
  • pikachu靶场-RCE

    RCE漏洞概述 可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。 远程系统命令执行 命令执行漏洞(Command Execution)即黑客可以直接在Web应用中执行系统命令,从而获取敏感信息或者拿下shell权限 更常见的命令执行漏洞是发生在各种Web组件,

    2024年02月01日
    浏览(42)
  • 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

领红包