【web | CTF】BUUCTF [BJDCTF2020]Easy MD5

天命:好像也挺实用的题目,也是比较经典吧

天命:把php的MD5漏洞都玩了一遍

第一关:MD5绕过

先声明一下:这题的MD5是php,不是mysql的MD5,把我搞迷糊了

一进来题目啥也没有,那么就要看源码和抓包了

在响应头发现sql语句

经分析,这sql语句半真半假,应该是这样子的

$sql = "select * from test.admin where password='".md5($str,true)."'";

大坑:里面的md5函数是php的

参加加个true就是输出16位的二进制,正常显示绝逼是乱码的,所以也不需要echo看了

这里就是需要经过md5加密后,依旧可以进行sql注入

网上说:ffifdyop 的MD5加密结果是 276f722736c95d99e921722cf9ed621c

经过MySQL编码后会变成'or'6xxx,使SQL恒成立,相当于万能密码,可以绕过md5()函数的加密

其实一开始还不理解,然后自己写了一个测试真假

现在mysql测试

然后放入php代码测试

居然是真的,原理就是这样子,只要有东西,就算是true,那就忽略密码直接判断为true

这里好像说是MySQL特性,只有数字在开头才算有东西,字母在前面是没东西的,所以6xxx刚好算是有东西,判定为 true

所以只需要把 ffifdyop 输入进去就完事

第二关:弱比较MD5绕过

来到第二个页面,啥也没有,照旧两步骤,看源码和抓包

看到了隐藏的php源码

$a = $_GET['a'];
$b = $_GET['b'];if($a != $b && md5($a) == md5($b)){echo "wow, glzjin wants a girl friend";
}

这里难点就是不一样的情况下都采用md5加密,并比较,还好有个漏洞,就是弱比较大漏洞

两个等号的情况下 == ,只要是0e开头,都会当成科学计数法,无论是0的多少次方,通通都是0

那么找两个md5加密后是0e开头的内容就可以了

一搜一大堆,搞掂,下一关

第三关:php特性绕过MD5

这关已经超出我认知范围了,原来MD5这个函数只比较字符串,其他一律不管

我们传进去的是数组,那么两个变量就肯定不相等,但md5函数识别不了数组,当成是同一个数组进行加密,那得到的结果肯定一样啊,这个属于php的md5漏洞了吧

flag{a2a7fba8-9c7d-4ffa-8d1f-47781db64c89}

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

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

相关文章

物理机安装kali

ventoyU盘,ventoy做好后把kali的iso拷贝到U盘,设置U盘启动,选择kali.iso启动。 安装包 文件SHA256发布日期大小ventoy-1.0.97-windows.zip44fb53f26872c6304e1cb3d47b65d0613665666100c48deeee4cd87901fb500f2024-01-2415 MBventoy-1.0.97-linux.tar.g…

Python OpenCV 牛刀小试(练习)

BGR与RGB OpenCV在读取图像时,默认的颜色空间是BGR(蓝绿红),而在大多数其他的图像处理库和图像格式中,使用的颜色空间是RGB(红绿蓝)。因此,当你需要使用OpenCV处理图像,然…

python系统学习Day3

section4 python function part one:函数的参数 python函数的参数共有五种类型 #位置参数 def power(x):return x * x#默认参数 def power(x, n 2) #设置默认值(可省略)s 1while n > 0:n n - 1s s * xreturn s#note print(默认参数必…

人工智能学习与实训笔记(十五):Scikit-learn库的基础与使用

人工智能专栏文章汇总:人工智能学习专栏文章汇总-CSDN博客 本篇目录 一、介绍 1. 1 Scikit-learn的发展历程及定义 1.2 理解算法包、算法库及算法框架之间的区别和联系 二、Scikit-learn官网结构 三、安装与设置 3.1 Python环境的安装与配置 3.2 Scikit-lea…

【leetcode刷题之路】面试经典150题(1)——数组/字符串

文章目录 1 数组/字符串1.1 【排序】合并两个有序数组1.2【双指针】移除元素1.3 【双指针】删除有序数组中的重复项1.4 【双指针】删除有序数组中的重复项 II1.5 【数学】多数元素1.6 【数组】轮转数组1.7 【动态规划】买卖股票的最佳时机1.8 【贪心】买卖股票的最佳时机 II1.9…

【Windows】MacOS制作纯净版Windows10安装U盘

方法一、在window系统中更新win10(不更新引导程序) cp -rp /Volumes/Windows10专业版\ 64位/* /Volumes/WIN10/https://baijiahao.baidu.com/s?id1760695844372493842&wfrspider&forpc 方法二、在window系统中更新win10(更新引导程…

《Docker极简教程》--Docker容器--Docker容器的创建和使用

一、创建Docker容器 1.1 使用现有镜像创建容器 当使用现有镜像创建容器时,通常会涉及以下步骤: 获取镜像:首先,需要从Docker Hub或其他镜像仓库获取所需的镜像。可以使用docker pull命令来获取镜像,语法如下&#x…

45. 跳跃游戏 II(难度:中等)

题目链接:https://leetcode.cn/problems/jump-game-ii/ 题目描述: 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳…

软件实例分享,洗车店系统管理软件会员卡电子系统教程

软件实例分享,洗车店系统管理软件会员卡电子系统教程 一、前言 以下软件教程以 佳易王洗车店会员管理软件V16.0为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 1、会员卡号可以绑定车牌号或手机号 2、卡号也可以直接使用手机号&a…

【Java万花筒】优雅配置,从容应对:Java配置管理库深度解读

灵活应对变化:Java配置管理库全景解析 前言 在构建现代化的Java应用时,配置管理是一个至关重要的方面。精心设计的配置管理能够为应用提供灵活性、可维护性和适应性,而Java社区提供了多种优秀的配置管理库。本文将深入探讨一些主流的Java配…

优秀的电机驱动MCU:MM32SPIN360C

DC-DC电源布局注意点: 电源模块布局布线可提前下载芯片的datasheet(数据表),按照推荐的布局和布线进行设计。 1) 芯片电源接近原则: 对于为芯片提供电压的开关电源,应确保它尽量靠近芯片放置。这样可以避…

2024 CKS 题库 | 8、沙箱运行容器 gVisor

不等更新题库 CKS 题库 8、沙箱运行容器 gVisor Context 该 cluster 使用 containerd 作为 CRI 运行时。containerd 的默认运行时处理程序是 runc 。 containerd 已准备好支持额外的运行时处理程序 runsc (gVisor)。 Task 使用名为 runsc 的现有运行时处理程序,…

【打工日常】使用docker部署可视化工具docker-ui

一、docker-ui介绍 docker-ui是一个易用且轻量化的Docker管理工具,透过Web界面的操作,方便快捷操作docker容器化工作。 docker-ui拥有易操作化化界面,不须记忆docker指令,仅需下载镜像即可立刻加入完成部署。基于docker的特性&…

幻兽帕鲁新手游戏攻略分享

在幻兽帕鲁中,提高实力是玩家不断追求的目标。以下是一些提高实力的攻略: 1、升级和进化:通过战斗和完成任务,玩家可以获得经验值,提升自己的等级。随着等级的提升,玩家可以获得技能点,用于提升…

AGAST角点检测

一、AGAST角点检测 C #include <iostream> #include <pcl/io/pcd_io.h> #include <pcl/point_types.h> #include <pcl/common/io.h> #include <pcl/visualization/pcl_visualizer.h> #include <boost/thread/thread.hpp> #include <p…

支付交易——跨境交易

摘要 老王兢兢业业经营生意多年&#xff0c;一步步从小杂货店做到现在&#xff0c;成立大型贸易公司。在做大做强的过程中&#xff0c;老王觉得国内市场已经饱和&#xff0c;竞争处处是红海。老王留意海外很多年了&#xff0c;决定走出去&#xff0c;转向海外:将国外的商品引进…

【51单片机】AD模数转换DA数模转换(江科大)

1.AD/DA介绍 AD(Analog to Digital):模拟-数字转换,将模拟信号转换为计算机可操作的数字信号 DA(Digital to Analog):数字-模拟转换,将计算机输出的数字信号转换为模拟信号 AD/DA转换打开了计算机与模拟信号的大门,极大的提高了计算机系统的应用范围,也为模拟信号数字化处理…

RestTemplate自定义设置

增加类&#xff1a;RestTemplateConfig import org.apache.http.client.HttpClient; import org.apache.http.impl.client.DefaultConnectionKeepAliveStrategy; import org.apache.http.impl.client.DefaultHttpRequestRetryHandler; import org.apache.http.impl.client.Htt…

GB28181 2022 下联检测项

序号 检测项目 技术要求 1平台注册 (下联) 视频监控联网测试软件注册到受测平 台,并在注册到期前进行刷新注册; 宜支持注册重定向功能。 2平台注销 (下联) 视频监控联网测试软件从受测平台注 销 3平台校时 (下联) 视频监控联网测试软件获取受测平台 的时间。 4平…

Java面向对象案例之打印机对象Printer(一)

类主要结构图 抽象类&#xff1a;Printer&#xff08;打印机作为父类&#xff09;子类&#xff1a;DotMatrixPrinter&#xff08;针式打印机类&#xff09;、InkpetPrinter&#xff08;喷墨打印机类&#xff09;、LaserPrinter&#xff08;激光打印机类&#xff09;测试类&…