ctfshow-web9(奇妙的ffifdyop绕过)

news2024/9/24 1:17:01

尝试万能密码登录,没有任何回显

尝试扫描目录,这里不知道为啥御剑什么都扫不到,使用dirsearch可以扫到robots.txt

查看robots协议

访问下载index.phps

 查看index.phps

 简单审计一下php代码:

$password=$_POST['password'];
if(strlen($password)>10){
    die("password error");
}

首先验证用户提交的密码是否超过10个字符,如果超过,就终止脚本并显示密码错误消息

我们可以去登录页面实际验证一下,输入长度超过10字符的密码,果然报错

接着看sql查询语句:

$sql="select * from user where username ='admin' and password ='".md5($password,true)."'";

这段代码构建了一个 SQL 查询,但是它没有对用户输入进行适当的过滤或净化,很可能存在SQL注入,并且密码在数据库中储存为 MD5 散列值。

继续往后看:

$result=mysqli_query($con,$sql);

关于mysqli_query()函数的定义和用法:

mysqli_query( connection,query,resultmode;

参数描述
connection必需。规定要使用的 MySQL 连接。
query必需,规定查询字符串。
resultmode

可选。一个常量。可以是下列值中的任意一个:

  • MYSQLI_USE_RESULT(如果需要检索大量数据,请使用这个)
  • MYSQLI_STORE_RESULT(默认

这里执行了 SQL 查询并将结果存储在 $result 变量中,然后通过 mysqli_num_rows($result) 检查返回的结果集中是否有行数大于0的数据,如果有,表示登录成功,就会输出flag

关于md5这个函数:md5(string,raw)

参数描述
string必需。规定要计算的字符串。
raw

可选。规定十六进制或二进制输出格式:

  • TRUE - 原始 16 字符二进制格式
  • FALSE - 默认。32 字符十六进制数

如果成功则返回已计算的 MD5 散列,如果失败则返回 FALSE。 

这里用到一个很奇妙的字符串 ffifdyop

经过md5加密后为 276f722736c95d99e921722cf9ed621c 

在转为16进制的字符串时会出现乱码 'or'6É]é!r,ùíb

or后面的第一个字母只要不是0,都会被认为是true,从而实现sql注入的绕过

使用该密码成功登录,拿到flag

ctfshow{eec0857d-9b09-4196-b033-7b0e34f09147} 

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

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

相关文章

Linux——多线程1

目录 一.理解线程的概念 Linux线程概念 二.线程的优点 三.线程的缺点 四.线程用途 五. Linux进程VS线程 一.理解线程的概念 教材观点: 线程是一种执行分支,执行粒度比进程更细,调度成本更低。线程是进程内部的一个执行流。 内核观点: …

【Python查找算法】二分查找、线性查找、哈希查找

目录 1 二分查找算法 2 线性查找算法 3 哈希查找算法 1 二分查找算法 二分查找(Binary Search)是一种用于在有序数据集合中查找特定元素的高效算法。它的工作原理基于将数据集合分成两半,然后逐步缩小搜索范围,直到找到目标元素…

python的一些知识点

之前自学过python,学了一些基本语法,但忘得厉害。最近,在努力地写代码,在学代码,写代码中学习python,为此记录一些关于python的知识点。

四、综合——通信系统

文章目录 一、通信系统概述1.1 通信的基本概念1.2 通信系统的组成二、信道的定义和分类三、信源编码四、调制一、通信系统概述 1.1 通信的基本概念 通信是发送者(人或机器)和接收者之间通过某种媒体进行的信息传递。广义来讲。光通信也属于电通信,因为光也是一种电磁波。 …

2023.10.09

#include <iostream>using namespace std;//定义一个类&#xff08;人&#xff09; class Per { private:string name;//姓名int age;//年龄//体重和身高另存堆空间double* height;//身高double* weight;//体重 public://定义构造函数&#xff0c;并且初始化//运用初始化…

【致敬未来的攻城狮计划】第2期 作业汇总贴 + 获奖公布

一、写在前面 时间过得真快&#xff0c;距离 【致敬未来的攻城狮计划】第2期 的发起&#xff0c;已经过去一个多月了&#xff0c;而第2期的真正学习考核期也将在5/13的18点整正式结束。 关于第2期的活动计划&#xff0c;感兴趣的可以参见这里&#xff1a;【重磅推出】《致敬未…

springboot项目中添加大屏页面

在非前后端分离的项目中根据项目需求需要添加一个大屏页面 解决方案&#xff1a; 参考&#xff1a;纯静态引入.vue文件之http-vue-loader.js - 知乎 我是把httpVueLoader.js 下载到本地引入 引入http-vue-loader.js 在vue代码中 components: { // 注意component 下name的命…

【C++】:日期类实现

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家解读一下有关Linux的基础知识点&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a;从入门到精通 数…

Kafka和RabbitMQ的对比

Rabbitmq比kafka可靠&#xff0c;kafka更适合IO高吞吐的处理&#xff0c;比如ELK日志收集 Kafka和RabbitMq一样是通用意图消息代理&#xff0c;他们都是以分布式部署为目的。但是他们对消息语义模型的定义的假设是非常不同的。 a) 以下场景比较适合使用Kafka。如果有大量的事…

C#操作PPT动画窗格并插入音频文件的一些思路

目录 系统环境 基础配置 设计想法 关键代码 组件库引入 基础代码 核心代码 总结 系统环境 在 Windows Server 2019 操作系统上安装Office PowerPoint 2016或以上 安装 .netFramework4.7.1以上 开发工具 VS2019 语言 C# 基础配置 打开控制面板、管理工具、组件服务…

LabVIEW使用VI Package Manager(VIPM)下载和管理附加组件

LabVIEW使用VI Package Manager&#xff08;VIPM&#xff09;下载和管理附加组件 LabVIEW Tools Network和VI Package Manager&#xff08;VIPM&#xff09;使浏览&#xff0c;下载和管理LabVIEW附加组件变得容易。它具有软件包存储库&#xff0c;可以从桌面连接到软件包&…

基于差分进化优化的BP神经网络(分类应用) - 附代码

基于差分进化优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于差分进化优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.差分进化优化BP神经网络3.1 BP神经网络参数设置3.2 差分进化算法应用 4.测试结果…

基于原子搜索优化的BP神经网络(分类应用) - 附代码

基于原子搜索优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于原子搜索优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.原子搜索优化BP神经网络3.1 BP神经网络参数设置3.2 原子搜索算法应用 4.测试结果…

全面分析“找不到XINPUTI_3.dll无法继续执行代码”的5个解决方法总结

电脑已经成为我们生活&#xff0c;娱乐和工作中不可或缺的一部分&#xff0c;电子游戏是许多人的日常娱乐方式。然而&#xff0c;当我们沉浸在游戏的乐趣中时&#xff0c;有时会遇到一些问题&#xff0c;比如“找不到XINPUTI_3.dll”这样的错误提示。这种错误通常会导致游戏无法…

Android学习从入门到放弃(文末有福利)

移动开发早就不是最热门的程序员职业了&#xff0c;而且移动开发也并不是一个能够在短时间内轻松掌握的领域,需要我们有足够的耐心和毅力 作为一个在Android开发领域积累了不少经验的开发者&#xff0c;自己也看了不少书&#xff0c;也和不少前辈交流过&#xff0c;在这里分享一…

98 # jwt

什么是 jwt JSON WEB TOKEN (jwt) 是目前最流行的跨域身份验证解决方案。 解决问题&#xff1a;session 不支持分布式框架&#xff0c;无法支持横向扩展&#xff0c;只能通过数据库来保存会话数据实现共享&#xff0c;如果持久层失效就会出现认证失败。 优点&#xff1a;服务…

强化学习问题(二)--- ERROR: Failed building wheel for box2d-py

错误&#xff1a;Could not build wheels for box2d-py, which is required to install pyproject.toml-based projects pyproject.toml-based projects&#xff1a;意思是缺少依赖包&#xff0c;对于box2d就是缺少swig 注意&#xff1a;安装python对应的swig版本 解决1&…

2023 NewStarCTF --- wp

文章目录 前言Week1MiscCyberChefs Secret机密图片流量&#xff01;鲨鱼&#xff01;压缩包们空白格隐秘的眼睛 Web泄露的秘密Begin of UploadErrorFlaskBegin of HTTPBegin of PHPR!C!E!EasyLogin CryptobrainfuckCaesars SecertfenceVigenrebabyrsaSmall dbabyxorbabyencodin…

CART 算法——决策树

目录 1.CART的生成&#xff1a; &#xff08;1&#xff09;回归树的生成 &#xff08;2&#xff09;分类树的生成 ①基尼指数 ②算法步骤 2.CART剪枝&#xff1a; &#xff08;1&#xff09;损失函数 &#xff08;2&#xff09;算法步骤&#xff1a; CART是英文“class…

【Java 进阶篇】创建 HTML 注册页面

在这篇博客中&#xff0c;我们将介绍如何创建一个简单的 HTML 注册页面。HTML&#xff08;Hypertext Markup Language&#xff09;是一种标记语言&#xff0c;用于构建网页的结构和内容。创建一个注册页面是网页开发的常见任务之一&#xff0c;它允许用户提供个人信息并注册成为…