ctfshow-web9(奇妙的ffifdyop绕过)

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

尝试扫描目录,这里不知道为啥御剑什么都扫不到,使用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.hqwc.cn/news/129515.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

直线模组的应用场景

直线模组是一种由直线导轨、滑块、驱动部件等组成的直线运动系统,具有高精度、高速度、高效率等特点。直线模组被广泛应用于各种机械设备中,以下是其主要的应用场景: 1、数控机床:直线模组是数控机床中的重要组成部分,…

Bootstrap对溢出内容的两种处理:滚动条和隐藏两种方式

Bootstrap中定义了以下两个类来处理内容溢出的情况: 类overflow-auto:在固定宽度和高度的元素上,如果内容溢出了元素,将生成一个垂直滚动条,通过滚动条可以查看溢出的内容。 类overflow-hidden:在固定宽度和高度的元素…

多路彩灯控制器LED流水灯花型verilog仿真图视频、源代码

名称:多路彩灯控制器LED流水灯花型verilog 软件:Quartus 语言:Verilog 代码功能: 用quartus和modelism,设计一个多路彩灯控制器,能够使花型循环变化,具有复位清零功能,并可以选择…

蓝牙技术|Matter或能改变中国智能家居市场,蓝牙技术将得到进一步应用

近年来,智能家居开放协议标准Matter(目前版本 1.1)由连接标准联盟发布,该联盟是一个由数百家公司组成的全球性机构,旨在提供与物联网 (IoT) 相关的标准。例如,Matter 用于允许 Amazon Alexa、Apple Home、G…

1.3.OpenCV技能树--第一单元--图像的基础操作(进阶篇)

目录 1.文章内容来源 2.图像的进阶操作 2.1.边界填充 2.2.数值计算 2.3.图像融合 2.4.图像保存 2.5.视频读取 3.课后习题代码复现 3.1.问题一图像像素颜色 3.2.问题二图片黑客帝国化 3.3.问题三梅西的足球轨迹 4.易错点总结与反思 1.文章内容来源 1.题目来源:https://edu.c…

排序算法——直接插入排序

一、介绍 插入排序就是将前两个元素排好,再将第三个元素通过与前边的元素比较后插入适当的位置,再将第四个元素插入,不断重复插入与前边元素比较的操作,直到将元素都排列好。 演示如下: 视频演示:…

GB28181学习(六)——实时视音频点播(数据传输部分)

GB28181系列文章: 总述:https://blog.csdn.net/www_dong/article/details/132515446 注册与注销:https://blog.csdn.net/www_dong/article/details/132654525 心跳保活:https://blog.csdn.net/www_dong/article/details/132796…

千兆以太网传输层 UDP 协议原理与 FPGA 实现(UDP接收)

文章目录 前言心得体会一、 UDP 协议简单回顾二、UDP接收实现三、完整代码展示四、仿真测试(1)模拟电脑数据发送,(2)测试顶层文件编写(3)仿真文件(4)仿真波形前言 在前面我们对以太网 UDP 帧格式做了讲解,UDP 帧格式包括前导码+帧界定符、以太网头部数据、IP 头部数…

断点测试怎么做,一文教你用Charles 工具做好接口测试!

在测试工作过程中,我们经常会在程序的某一行或者某一环节设置断点,在程序请求的过程中,修改断点处的参数、请求或者响应,这就是所谓的断点测试。这类断点测试主要用于接口测试。 断点测试可以通过查看接口返回数据可以方便定位是前…

大数据—数据透析表常见使用(手把手详解)

我的个人主页:☆光之梦☆_C语言基础语法(超详细),【java入门】语法总结-CSDN博客 创作不易,如果能帮到你就好 注:你的 👍点赞 ⭐收藏 📝评论 是对博主最大的支持与鼓励喔 目录 一、创建数据透…

Stable Diffusion云服务器部署完整版教程

Stable Diffusion云服务器部署完整版教程 2023年07月04日 22:30 3607浏览 18喜欢 22评论 <span class"bili-avatar-icon bili-avatar-right-icon "></span> </div>薯片_AI 粉丝&#xff1a; 1513 文章&#xff1a; 1 设置分组取消关注 已关注 …

Android Studio实现简易计算器(带横竖屏,深色浅色模式,更该按钮颜色,selector,style的使用)

目录 前言 运行结果&#xff1a; 运行截屏&#xff08;p50e&#xff09; apk文件 源码文件 项目结构 总览 MainActivity.java drawable 更改图标的方法&#xff1a; blackbutton.xml bluebuttons.xml greybutton.xml orangebuttons.xml whitebutton.xml layout 布…