逻辑漏洞测试靶场实验

任务一:
突破功能限制漏洞,要求突破查询按钮disabled限制,获取编号:110010的查询内容(弹框中的flag)
任务二:用户信息泄露漏洞,通过回显信息,以暴力破解法方式猜测系统中存在的两个用户名(提示:用户名以u开头),并暴力破解这两个用户对应的密码)
任务三:越权漏洞,通过上一步破解的用户名密码登录,利用越权漏洞获取admin和admin1的个人信息。
任务四:遍历漏洞。一直当前系统中存在一个学号为:20190504035XA01.利用遍历漏洞获取其他学号对应的成绩(不少于5条)
任务五:暴力破解攻击。获取系统中另一个六位数字编号对应弹框的flag内容。

任务一:
Step1:搭建环境

docker-compose build
docker-compose up -d
docker ps

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Step2:输入110010,很明显查询按钮按不了
在这里插入图片描述

Step2:我们去查看一下源码,发现查询按钮部分有一个disabled,我们将disabled改成abled就可以执行了。
enabled = “enabled”
在这里插入图片描述

Step3:用web tools里面的inspector,然后把disabled=“disabled”修改为enabled=“enabled”,发现按键可以按下,即为成功。
在这里插入图片描述

Step4:flag出来了,是
flag{byp4ss1s_ez}

在这里插入图片描述

任务二:
step1:提示了是暴力破解,并且是u开头,我们先试一下u开头的,看回显是什么。(因为u,想到了user,直接试了user)。当我们输入user的时候,回显是密码不正确。说明我们的用户名输入正确了。因为如果输入u,显示的是用户名不正确。
u
user
在这里插入图片描述

在这里插入图片描述

Step2:破出了一个用户名,user,然后我们猜测应该另外一个是user后面加数字也不会差特别多,我直接就试了user1,然后直接试出来了。另外一个用户名就是user1.
user1

在这里插入图片描述

Step3:然后就是破解密码,这个是要求我暴力破解。我先猜123456,第一个用户user不对,猜user1的时候猜出来了(我真会猜emmm)。所以我们得到user1的密码是123456。
123456

在这里插入图片描述

Step4:另外一个自己猜的话没猜出来,所以我们选择用工具来爆破,这里使用的是burpsuite,首先抓包
在这里插入图片描述

Step5:然后send to intruder,然后选择sniper,然后选择payloads,然后导入字典(这里是自己从网上找的一个弱密码字典)
在这里插入图片描述
在这里插入图片描述

Step6:然后开始攻击,查看长度888888的长度是2315和其他的完全不一样长,所以我们找到密码了,user密码888888.
888888

在这里插入图片描述

在这里插入图片描述

任务三:
step1:先抓个包看看有什么参数。发现是post方式传递用户名和密码。然后在cookie里面看到了uid,然后后面带一块参数,然后右边的框解密发现是base64编码,解码是user,我们尝试改成admin
YWRtaW4=
在这里插入图片描述
在这里插入图片描述

step2:修改一些参数
在这里插入图片描述
在这里插入图片描述

Step3:失败了,后来仔细看了返回的包,然后我看到set-cookie一直是user1,就算修改了,还是user1,这让我很奇怪。
在这里插入图片描述
在这里插入图片描述

Step4:然后我去用了edit the cookie,我发现,我改了以后如果我不使用锁定,他会自己把我改的又改回来。所以我用edit the cookie把我改了进行了锁定(把那个user1的地方改成了admin的base64加密和url编码)。然后得到了admin的个人信息。
YWRtaW4=
在这里插入图片描述
在这里插入图片描述

Step5:同理,我们将admin1进行base64编码后再进行url编码。然后得到admin1的个人信息。(这个想法主要是基于,最开始进行抓包然后修改成admin的时候编码啥的都做了,然后发送,应该是要变了的,但是cookie就是不变,然后想起来我有一个直接edit the cookie的插件,然后我怕失败,特意锁定了,然后结果成功了,虽然我也不知道为什么bp会失败)。
YWRtaW4x

在这里插入图片描述

在这里插入图片描述

任务四:
Step1:先查询一条之后,仔细查看这个学号的信息
在这里插入图片描述

Step2:我们选择用burpsuite抓包之后一个一个遍历,send to intruder,然后选择载荷的位置,然后设置载荷的内容,设置为数字,从00到99,一次加1,数字的位数是2位。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Step3:开始攻击之后,得到的结果里面,因为已知01的长度,然后只筛选和01的长度一样的就可以得到有02。目前只得到一条,这时候发现,payload应该在多个地方,我们需要设置多个载荷。
在这里插入图片描述

Step4:在仔细看了一下啊,发现应该是年月日身份证后四位一个大写字母带两位数字,应该是,感觉有点难加说真正。我加了三个攻击载荷,但是感觉爆出来的可能性不高。后面老师说了爆破点,直接设置.(因为用的虚拟机,才4核根本跑不动,直接去数据库看的结果,然后设置的范围)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Step5:最后跑出来的一些长度2345,2344的就是我们要的。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

任务五:
step1:按照任务一一样修改,然后抓个包
在这里插入图片描述

Step2:设置攻击载荷(看了结果设置的直接从后面几位开始了,本人还不会写python脚本)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Step3:开始攻击,明显发现,735142的长度大很多。
在这里插入图片描述

Step4:输入735142,修改还是按照任务一一样修改enabled。然后查询,得到flag。
flag{d1ct_1s_v3ry_1mp0rt4nt}

在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Shell循环:expect(二)

expect实战:公钥推送 一、准备工作:安装expect,装备公钥 二、通过shell循环判断主机在线 #!/bin/bash #脚本编写 #创建一个IP地址文件 >ip.txt #使用for循环ping测试主机是否在线 for i in {3..254} do{ip192.168.151.$iping -c1 -W…

docker搭建rabbitmq、配置延迟队列插件

docker搭建rabbitmq、配置延迟队列插件 消息队列的作用:消峰、解耦、异步 rabbitmq安装 查询 [rootlocalhost ~]# docker search rabbitmq安装 [rootlocalhost ~]# docker pull rabbitmq准备工作 创建文件夹:/usr/local/software/rabbitmq/data 运…

【设计模式-4.3】行为型——责任链模式

说明:本文介绍设计模式中行为型设计模式中的,责任链模式; 审批流程 责任链模式属于行为型设计模式,关注于对象的行为。责任链模式非常典型的案例,就是审批流程的实现。如一个报销单的审批流程,根据报销单…

Android CardView基础使用

目录 一、CardView 1.1 导入material库 1.2 属性 二、使用(效果) 2.1 圆角卡片效果 2.2 阴影卡片效果 2.3 背景 2.3.1 设置卡片背景(app:cardBackgroundColor) 2.3.2 内嵌布局,给布局设置背景色 2.4 进阶版 2.4.1 带透明度 2.4.2 无透明度 一、CardView 顾名…

麒麟系统添加环境变量

环境变量添加方法 方法一:用户主目录下的.profile或.bashrc文件(推荐) 登录到你的用户(非root),在终端输入: sudo vim ~/.profile 或者 sudo vim ~/.bashrc 翻到该文件最后&#xff0c…

字符串转换整数

字符串转换整数 描述 : 请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C 中的 atoi 函数)。 函数 myAtoi(string s) 的算法如下: 读入字符串并丢弃无用的前导空格检查下一个字符&am…

[ 云计算 | AWS 实践 ] 使用 Java 检查指定的密钥是否存在于给定的 Amazon S3 存储桶中

本文收录于【#云计算入门与实践 - AWS】专栏中,收录 AWS 入门与实践相关博文。 本文同步于个人公众号:【云计算洞察】 更多关于云计算技术内容敬请关注:CSDN【#云计算入门与实践 - AWS】专栏。 本系列已更新博文: [ 云计算 | …

【C++】异常处理 ① ( 异常概念引入 | 抛出异常语法 | 捕获异常语法 | 异常捕获流程 | 异常处理代码示例 )

文章目录 一、异常处理1、异常概念引入2、抛出异常语法3、捕获异常语法4、异常捕获流程 二、异常处理代码示例1、错误代码示例 - 抛出异常 / 不捕获异常2、正确代码示例 - 抛出异常 / 捕获异常3、正确代码示例 - 抛出异常 / 捕获异常不处理继续抛出异常 一、异常处理 1、异常概…

nodejs微信小程序+python+PHP问卷调查系统的设计与实现-计算机毕业设计推荐

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…

java源码-Java方法的定义和使用详解

1、 方法定义 如果我们想定义一个方法,基本语法如下: 修饰符:方法的修饰符是可选的,用于定义该方法的访问类型,可用的修饰符包括public/private/protected/默认的。 返回值:方法可以有返回值,…

《Junit单元测试》

目录 SpringBoot2.2.0版本之前的单元测试模式 SpringBoot2.2.0版本之后的单元测试模式 SpringBoot2.4以上版本移除了默认对Vintage的依赖 SpringBoot2.2.0版本之前的单元测试模式 SpringBooot 2.2.0 版本开始引入Junit5作为单元测试默认库,之前的版本是使用Junit…

[二分查找双指针]LeetCode881: 救生艇

作者推荐 [二分查找]LeetCode2040:两个有序数组的第 K 小乘积 本文涉及的基础知识点 二分查找算法合集 题目 给定数组 people 。people[i]表示第 i 个人的体重 ,船的数量不限,每艘船可以承载的最大重量为 limit。 每艘船最多可同时载两人&#xff0…

Ubuntu系统配置深度学习环境之nvidia显卡驱动和cuda安装

前言 NVIDIA 显卡驱动是为了确保 NVIDIA 显卡能够正确运行而开发的软件。显卡驱动负责与操作系统通信,管理显卡的各种功能,并提供性能优化和兼容性保证。安装适用于特定显卡型号和操作系统版本的最新驱动程序是确保显卡能够正常工作的重要步骤。 CUDA 是…

如何缓解可观察性挑战?

可观察性正在成为当代 DevOps 实践的基石。即使传统上不属于 DevOps 的部门也看到了在可观察性团队的支持下带来的好处。然而,到 2023 年,组织发现采用之路比预期更加崎岖。以下是 DevOps 团队在可观察性方面面临的七个最大挑战以及一些缓解这些挑战的建…

严蔚敏数据结构题集 p18(2.25——2.30)(c语言代码实现)

目录 2.25假设以两个元素依值递增有序排列的线性表A和B分别表示两个集合(即同一表中的元素值各不相同),现要求另辟空间构成一个线性表C,其元素为A和B中元素的交集,且表C中的元素也依值递增有序排列。试对顺序表编写求C的算法。 2.26要求同2.25题。是对单链表编写求C的算法 2.…

Linux socket编程(9):IO复用之poll和epoll详解

在之前的文章中,我们学习了IO复用模型之select原理及例子,但是select有监听描述符个数的限制,而且select的效率并不高,所以这篇文章就来学习效率更高的poll和Linux特有的epoll方法。 文章目录 1 select/poll/epoll对比2 poll2.1 p…

【开源项目】Windows串口通信组件 -- Com.Gitusme.IO.Ports.SerialPort

目录 1、项目介绍 2、组件集成 1)下载地址: 2)添加项目依赖 3、使用方法 4、GitHub项目地址 1、项目介绍 Com.Gitusme.IO.Ports.SerialPort 是一款 Windows 串口通信组件,基于.Net Core 3.1 开发,支持 Console、Wi…

PostgreSQL有意思的现象:支持不带列的表

1、前言 以前从没有试过建一张表,不带任何列。在PG中却支持这种语法。这是个什么鬼? 最近,把PG源码扒了下,简单浏览了下最近的一些merge。其中有一个fix: eeb0ebad79 ("Fix the initial sync tables with no columns.&qu…

CRM简单小结

思想 对于三层架构,一个模块对应一个controller,controller实际就是Servlet;一张表对应一个domain类对应一个dao接口对应一个mapper文件;service层没有严格规定,如果两张表内容相近,用一个service接口也可以…

【C++练级之路】【Lv.2】类和对象(上)(类的定义,访问限定符,类的作用域,类的实例化,类的对象大小,this指针)

目录 一、面向过程和面向对象初步认识二、类的引入三、类的定义四、类的访问限定符及封装4.1 访问限定符4.2 封装 五、类的作用域六、类的实例化七、类的对象大小的计算7.1 类对象的存储方式猜测7.2 如何计算类对象的大小 八、类成员函数的this指针8.1 this指针的引出8.2 this指…