pikachu靶场验证码绕过详解

news2024/11/24 20:52:35

今天继续给大家介绍渗透测试相关知识,本文主要内容是pikachu靶场验证码绕过详解。

免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!

一、Client端验证码绕过

client端验证码登录页面如下所示:
在这里插入图片描述
我们可以查看当前网页源代码,看到登录处提交时,会触发validate()函数,如下所示:
在这里插入图片描述
validate()函数也是在页面中的一个JavaScript脚本中的函数,其作用是验证用户输入的验证码是否正确,该函数内容如下所示:
在这里插入图片描述
此外,页面中还有一个createCode()函数,用于生成页面验证码,代码如下所示:
在这里插入图片描述
综上所述,这里的验证码验证采取的是客户端验证的方式,因此我们可以使用BurpSuite抓包后,不管验证码具体信息,或者是采用本地禁用JavaScript的方式,来达到绕过client端验证的效果。
BurpSuite抓包如下所示:
在这里插入图片描述
从上图可以看出,我们发送的数据包尽管是含有验证码变量的,但是当我们打开页面后台源代码后,其处理流程却如下所示:
在这里插入图片描述
从上图可以看出,尽管我们提交了验证码参数,但是后台却并没有对验证码进行处理,更没有进行验证。

二、Server端验证码绕过

Server端验证码提交页面如下所示:
在这里插入图片描述
与之前Client端验证不同的是,这里的验证码是采用PHP后台源代码验证的逻辑。我们可以打开该页面源代码,结果如下所示:
在这里插入图片描述
从上图中可以看出,我们的验证码在完成验证失败后,根本没有对session内验证码进行修改。因此,我们的验证码是可以复用的。那么session中的验证码变量是哪里来的呢?
我们查看以下PHP代码中关于验证码的生成处,其代码如下所示:
在这里插入图片描述
从上图可以看出,当我们访问该页面或者点击验证码图片时,就会使得浏览器自动访问showvcode.php的文件,该文件源代码如下所示:
在这里插入图片描述
从上图可以看出,该文件又调用了function.php文件中的vcodex()函数,function.php文件中vcodex()函数如下所示:
在这里插入图片描述
从上图可以看出,vcodex()函数生成了验证码,而showvcode.php中又把生成的结果放到了session中进行存储。此外,showvcode.php中还存在一个问题,即把验证码以明文cookie的方式,发送给了客户端。
综上所述,pikachu靶场server端验证码存在两个逻辑漏洞。
第一个是验证码复用问题,我们可以使用BurpSuite抓包,然后使用上次的验证码,就可以无限制的发送数据包,验证用户名和密码的正确性了,如下所示:
在这里插入图片描述
由于这样做,既不会点击图片,也不会触发该图片,因此不会引起验证码变动。
第二个问题是服务端将验证码以明文的方式发送到了客户端,我们可以使用BurpSuite抓包,结果如下所示:
在这里插入图片描述
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

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

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

相关文章

endo-BCN-PEG3-Biotin,endo-BCN三聚乙二醇-生物素

【中文名称】endo-BCN三聚乙二醇-生物素 【英文名称】 endo-BCN-PEG3-Biotin,BCN-PEG3-Biotin (endo) 【CAS号】1263166-92-2 【分子式】C29H46N4O7S 【分子量】594.77 【基团部分】BCN 【纯度标准】95% 【外观颜色】 白色固体 (具体由其分子量大小决定…

MyBatis学习 | 简介HelloWord

文章目录一、简介二、HelloWord2.1 环境搭建2.2 创建全局配置文件2.3 创建工具类2.4 创建数据库表和对应的JavaBean2.5 创建SQL映射文件2.6 非接口式与接口式编程2.6.1 非接口式编程2.6.2 接口式编程⭐2.7 简单总结学习地址🔗 https://www.bilibili.com/video/BV1mW…

动态规划问题——换钱的方法数

题目: 给定数组arr,arr中所有的值都为正数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个整数aim,代表要找的钱数,求换钱有多少种方法。 举例: arr [5, 10, 2…

【PCL1.11.0+win10+vs2019】环境配置/ 点云格式转换及可视化

文章目录一、安装1.1 下载PCL1.2 安装PCL1.3 安装OSGeo4W二、配置2.1 配置环境变量2.2 配置VS2019三、点云格式转换以及可视化参考一、安装 1.1 下载PCL 首先我们需要下载pcl1.11.0 ,这个版本与vs2019对应。 有两种下载方法:百度网盘、官网下载。二选一…

docker原理及服务编排

一、什么是docker Docker 是一个开源项目,诞生于2013年初,最初是dotCloud公司内部的一个业余项目。它基于Google公司推出的Go语言实现。项目后来加入了Linux基金会,遵从了Apache 2.0协议,项目代码在GitHub上进行维护。 Docker 项…

【毕业设计_课程设计】基于Spark网易云音乐数据分析

文章目录0 项目说明1 系统模块2 分析内容3 界面展示4 项目工程0 项目说明 基于Spark网易云音乐数据分析 提示:适合用于课程设计或毕业设计,工作量达标,源码开放 1 系统模块 包含爬虫,Scala代码,Spark,Hadoop,ElasticSearch,logstash,Flume…

基于ChatGPT实现微信智能机器人

ChatGPT近期以强大的对话和信息整合能力风靡全网,可以写代码、改论文、讲故事,几乎无所不能,这让人不禁有个大胆的想法,能否用他的对话模型把我们的微信打造成一个智能机器人,可以在与好友对话中给出意想不到的回应&am…

汇编语言笔记——接口技术与编程

文章目录传送门储存系统与技术材料高速储存器缓冲储存器(Cache)材料,局部性,访问方式Cache全相联映射Cache交换与一致性单核CPU一致性处理多核CPU的MESI协议主储存器(内存)主要技术指标容量带宽内存模组与内…

【JavaWeb】Servlet

Servlet简介 Servlet是sun公司开发动态web的一门技术Sun在这些API中提供一个接口叫做:Servlet,如果想开发一个Servlet程序,需要编写一个类,实现Servlet接口把开发好的Java类部署到web服务器中 把实现了Servlet接口的Java程序叫做…

【Anime.js】——Anime.js源码核心理解

一、Anime.js整体结构 Anime.js的强大之处在于代码量非常少,但功能却非常强大。让我们一起来探索Anime.js源码的核心吧~ Anime.js之所以能如此强大主要是因为它的代码结构设计的非常巧妙合理,所以我们想要掌握Anime.js的核心,首先我们要了解…

Linux内核基础篇——动态输出调试

文章目录配置内核编译选项debugfs文件系统挂载动态输出使用实际案例动态输出(dynamic print)是内核子系统开发者最喜欢的输出技术之一。 上篇说到printk调试,但printk是全局的,只能设置输出等级。而动态输出可以动态选择打开某个…

Tensorflow Serving部署推荐模型

Tensorflow Serving部署推荐模型 1、找到当前模型中定义的variables,并在此定义一个saver用于保存模型参数 def saveVariables(self):variables_dict {}variables_dict[self.user_embedding.op.name] self.user_embeddingvariables_dict[self.item_embedding.op…

【LeetCode】1971. 寻找图中是否存在路径

题目描述 有一个具有 n 个顶点的 双向 图,其中每个顶点标记从 0 到 n - 1(包含 0 和 n - 1)。图中的边用一个二维整数数组 edges 表示,其中 edges[i] [ui, vi] 表示顶点 ui 和顶点 vi 之间的双向边。 每个顶点对由 最多一条 边连…

犀牛插件开发-基础核心-技术概览-总体架构-教程

文章目录1.概述2.基础核心2.1.C Rhino 核心2.2.openNURBS2.3.C SDK3.C Stack3.1.C Plugins3.2.RhinoScript4.NET Stack4.1.C API4.2.NET Framework4.3.RhinoCommon4.4.Eto4.5.net插件4.6.Grasshopper组件4.7.Python脚本5.相关主题1.概述 《Rhinoceros》由许多层组成——用多种…

细说OA系统的繁荣发展

改革开放以来,科技发展突飞猛进,我们生活的方方面面都受到了巨大影响。随着信息化时代的到来,企业的办公方式也发生了巨大的改变,OA系统随之走进了大众的视野。细数这四十几年,OA办公系统已经由一个异想天开的想法变成…

centos7.8离线安装pg和postgis

安装包下载地址: 链接:https://pan.baidu.com/s/1MxJc-5Ws6OPTRAoC-2srJw 提取码:is2q 1.centos7.8 离线安装pg操作步骤 这里基于centos7.8空白系统操作实践写的文档,系统一致的情况下可以照搬教程操作安装,镜像为…

1.0、Hibernate-快速入门初体验

1.0、Hibernate-快速入门初体验 Hibernate 和 mybatis 一样是 ORM (Object Relation Mapping) 对象关系映射框架,将面向对象映射成面向关系。 如何使用呢? 1、导入依赖; 2、创建 Hibernate 配置文件; 3、创建实体类; 4…

Allegro172版本多人协同在线设计操作指导

Allegro172版本多人协同在线设计操作指导 Allegro升级到172版本,可以支持多人协同设计,并且实时同步,具体操作如下 首先用户需要在同一个局域网下,并且Allegro172的版本必须一致,比如都是S082的版本 第一个用户打开PCB,选择Symphony Team design 选择 Start Symphony …

2022年度总结

自我介绍 大家好,我又回来了!我在一年之前在 CSDN 写了第一篇文章,到现在也有一年时间了。这次回来呢,也是因为 CSDN 官方发的消息,让写一篇年度总结的文章。在离开的这几个月里,主要是因为工作繁忙&#…

ASO优化:总结APP被下架的5点原因

随着苹果的App Store的监管力度的不断加强,每个APP都会有被下架的风险,而对于开发者来说,APP被下架是一件很严重的事情,不仅会造成用户的流失,还会降低用户对APP 的信任。所以,我们要了解APP被下架的原因&a…