代码编织梦想

知识点

  • CVE-2020-7245 CTFd v2.0.0 – v2.2.2 account takeover

WP

进入环境稍微看一下,发现就是比赛常用的ctfd平台,感觉直接日平台不太现实,可能就是类似打CMS那样,直接去查已有的洞。去查一下,果然有:
CVE-2020-7245漏洞分析

基本利用步骤如下:

  1. 注册一个账号,和想要修改的那个用户名同名,但在注册时加上空格

  2. 点击修改密码,在邮箱确认,即可修改指定用户密码

第一步是利用验证用户名是否重复的时候用的是原始输入,但是存入数据库的时候会把空格去除的漏洞。

第二步是因为将用户名序列化之后,拼接到相应URL后面,发送给邮箱。(通过前面的分析,我们知道数据库中的账号有两个是同名,那么进行修改密码操作时,就会修改第一个用户的密码)。

确实有很多文章说重置密码前需要把用户名改成非admin,我这里试了不改,确实仍然可以成功改admin的密码。

但是有一个坑,就是靶机发不了外网的邮件。。。要用buu自己的邮箱系统:

http://mail.buuoj.cn/admin/ui/user/signup/mail.buuoj.cn

然后就很简单了,重置一下admin的密码,然后登录进入。进去找找,会发现有一个challenge被隐藏了:
在这里插入图片描述
但是这题有一个附件,下载下来就可以得到flag了:
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/rfrder/article/details/111059759

KW50/20刷题总结:使用Python-哈希表——字符串中的第一个唯一字符、单词替换-爱代码爱编程

KW50/20:学习了哈希表的知识,一共练习1个题目,现在总结如下。 第一题:字符串中的第一个唯一字符,给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。 思路:首先想到的是使用字典存储每个字符出现的次数,然后再次遍历字符串,找到出现次数为1的字符并返回索引。代码如下:class Solution: def

JAVA专精:一看就会一遍就懂,如何快速记住Java常用的八种排序算法与代码实现!你学会了吗?-爱代码爱编程

1.直接插入排序 经常碰到这样一类排序问题:把新的数据插入到已经排好的数据列中。 将第一个数和第二个数排序,然后构成一个有序序列将第三个数插入进去,构成一个新的有序序列。对第四个数、第五个数……直到最后一个数,重复第二步。 如何写成代码: 首先设定插入次数,即循环次数,for(int i=1;i<length;i++),1个数的那次

报数,报数啦!(讲义)-爱代码爱编程

1. Counter的创建和基本用法 from collections import Counter # 传列表创建:统计大家的出生年份分布情况 a = Counter([1991, 1993, 1992, 1992, 1993, 1993]) # 传字符串创建:统计选择题选项分布情况 b = Counter('AADCABDDAC') print(

Python 基础篇+提高篇+笔记-爱代码爱编程

01第零回(免费预览)莫叹琐事催白发,且学Python省年华.mp4 02第一回(免费预览)梧桐长成鸾凤至,环境搭好代码来.mp4 03第二回(免费预览)算术符号遵循惯例,版本差异务必当心.mp4 04第三回(免费预览)单条语句独占单行代码,多种函数分属多个模块.mp 05第四回:变量命名须知种种惯例,数据存储要靠层层关联.mp4 06第五回:文章无非字符

Python子进程执行系统命令,并实时获取输出数据和返回结果-爱代码爱编程

背景 最近在用Python写一个小程序,需要调用系统命令,需要获取执行之后的返回结果。由于任务执行时间较长,为便于观测任务执行过程,需要实时打印执行过程中产生的数据。经过一番摸索,封装了个通用的工具包。 代码 easy_subprocess.py """ author: lixk description: 本工具包用于执行子进程,实时获取子进程执行

使用PyTorch实现目标检测与跟踪!这不有趣多了!-爱代码爱编程

引言 在昨天的文章中,我们介绍了如何在PyTorch中使用您自己的图像来训练图像分类器,然后使用它来进行图像识别。本文将展示如何使用预训练的分类器检测图像中的多个对象,并在视频中跟踪它们。 图像中的目标检测 目标检测的算法有很多,YOLO跟SSD是现下最流行的算法。在本文中,我们将使用YOLOv3。在这里我们不会详细讨论YOLO,如果想对它有更多了解

Web服务应用开发(基于J2EE)表单学习-爱代码爱编程

表单--HBuilderX编写 综合实例表单概述表单标记定义域和域标题表单信息输入单行文本输入框、密码框文本框复选框、单选按钮图像按钮提交按钮、重置按钮和普通按钮文件选择框及隐藏框多行文本输入框下拉列表框 综合实例 代码: 代码: 表单概述 表单是较为复杂的HTML元素,经常与脚本、动态网页、后台数据处理等结合在一起使用,是设计动态网页

Spring架构下中文乱码问题-爱代码爱编程

Spring架构下乱码问题 页面请求乱码解决代码: 页面请求代码在web.xml下设置,使用过滤器CharacterEncodingFilter,/*代表全部请求 <!-- 乱码问题,过滤器--> <filter> <filter-name>CharacterEncodingFilte

[HITCON 2017]SSRFme-爱代码爱编程

知识点 代码审计SSRFWP 其实是一道很简单的SSRF的题目,但是自己又没完完全全的做出来,卡在了一些奇奇怪怪的地方。 首先进入环境审一下代码: <?php if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $http_x_headers = explode(',', $_SERVER['

JSP介绍以及JSP基本语法-爱代码爱编程

Servlet开发的缺点 静态HTML与动态Java代码混合在一起,难以维护Servlet利用out.println()语句输出,开发效率低下Eclipse很难在开发过程中发现错误,调试困难JSP介绍 JSP全称为java Sever Pages, Java服务器页面JSP是J2EE的功能模块,由Web服务器执行(比如Tomcat)JSP的作用就是降低

HTTP的请求连接过程-爱代码爱编程

不管是日常的web开发还是准备面试题的时候,http的请求过程都是必须要了解的一个知识点,这篇文章就来和大家一起学习了解一下HTTP通信机制的请求过程。 原理 众所周知,HTTP协议是建立在TCP网络连接协议基础之上的一种web通信协议,它有“四个基于”的特点: 请求与响应:客户端发送请求,服务器端响应数据 无状态的:协议对于事务处理没有记忆能力,

Shiro 实践记录-爱代码爱编程

1.Shiro 什么是Shiro 官网 Shiro是一款主流的Java安全框架,不依赖任何容器,可以运行在Java SE和Java EE项目中 ,它的主要作用是对访问系统的用户进行身份认证、授权、会话管理、加密登操作。 2.Shiro核心组件 用户、角色、权限 会给角色赋予权限,给用户赋予角色。 运行机制流程图