【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}

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

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

相关文章

计算机设计大赛 深度学习中文汉字识别

文章目录 0 前言1 数据集合2 网络构建3 模型训练4 模型性能评估5 文字预测6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习中文汉字识别 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐&#xf…

[leetcode刷题] 组合

对于递归回溯我觉得是需要多写多分析,递归三部曲:1.返回值和参数;2.终止条件;3.单层递归逻辑 1.通常情况下返回值都是void,参数的话根据实际需求设计,如果设置了全局变量那输入参数就可以少写几个&#xf…

PyTorch – 逻辑回归

data 首先导入torch里面专门做图形处理的一个库,torchvision,根据官方安装指南,你在安装pytorch的时候torchvision也会安装。 我们需要使用的是torchvision.transforms和torchvision.datasets以及torch.utils.data.DataLoader 首先DataLoa…

【plt.imshow显示图像】:从入门到精通,只需一篇文章!【Matplotlib】

【plt.imshow显示图像】:从入门到精通,只需一篇文章!【Matplotlib】 🚀 利用Matplotlib进行数据可视化示例 🌵文章目录🌵 📘 1. plt.imshow入门:认识并安装Matplotlib库&#x1f308…

Java编程在工资信息管理中的最佳实践

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

Crypto-RSA1

题目: 已知p,q,dp,dq,c求明文: 首先有如下公式: dp≡d mod (p-1),dq≡d mod (q-1) , m≡c^d(mod n) , npq python代码解题如下: import libnump 863763376725700856709965348654109117132049…

浅谈语义分割、图像分类与目标检测中的TP、TN、FP、FN

语义分割 TP:正确地预测出了正类,即原本是正类,识别的也是正类 TN:正确地预测出了负类,即原本是负类,识别的也是负类 FP:错误地预测为了正类,即原本是负类,识别的是正类…

建造者模式-Builder Pattern

原文地址:https://jaune162.blog/design-pattern/builder-pattern/ 引言 现在一般大型的业务系统中的消息通知的形式都会有多种,比如短信、站内信、钉钉通知、邮箱等形式。虽然信息内容相同,但是展现形式缺不同。如短信使用的是纯文本的形式,钉钉使用的一般是Markdown的形…

挖掘在线零售数据:基于RFM理论的用户细分分析与营销策略

挖掘在线零售数据:基于RFM理论的用户细分分析与营销策略 基于RFM理论的用户细分分析项目背景和意义数据准备和预处理RFM分析1. 计算RFM指标2. 数据转换和处理 K-Means聚类分析结果和建议总结 基于RFM理论的用户细分分析 在商业运营中,了解客户并将其分组…

使用WGCLOUD监测摄像头的运行状态

WGCLOUD WGCLOUD是一款开源运维工具,免费高效,可以用来监测摄像头的工作状态,如果发现故障,那么WGCLOUD会发送告警通知消息,提醒我们的工程师进行处理 我们可以用WGCLOUD的PING监测模块,或者端口监测模块…

【开源】JAVA+Vue.js实现大学计算机课程管理平台

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 实验课程档案模块2.2 实验资源模块2.3 学生实验模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 实验课程档案表3.2.2 实验资源表3.2.3 学生实验表 四、系统展示五、核心代码5.1 一键生成实验5.2 提交实验5.3 批阅实…

C++入门学习(三十)一维数组的三种定义方式

数组是什么? 数组(Array)是有序的元素序列。 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素…

re-captioning技术是什么

参考https://zhuanlan.zhihu.com/p/664192860 模型对图片进行caption操作时,输出的标题一般描述图片中的主体,而忽视了背景、常识关系等更为细节的描述。 图片比较重要的细节的描述应当包括: 物体存在的场景。如:在厨房的水槽&am…

视频号小店怎么做?新手必须掌握的三点核心步骤,建议收藏

大家好,我是电商花花。 现在短视频的快速发展,电商和直播、短视频不断结合发展,在去年视频号小店也迎来了大爆发,有不少朋友都靠着做视频号小店赚到了自己做电商的第一捅金,直接让很多朋友接触视频号小店,…

TOP100 图论

1.200. 岛屿数量 给你一个由 1(陆地)和 0(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外,你可以…

ADSelfService Plus发布离线MFA功能,强化远程工作安全性

ManageEngine ADSelfService Plus推出离线多因素身份验证,提升远程工作安全性确保通过先进的验证方法对企业数据进行授权访问,无论时间、地点或连接问题如何允许远程用户安全进行身份验证,即使未连接到认证服务器或互联网使用高度安全的基于T…

安装cockpit

1、下载cockpit yum -y install cockpit 下载相关环境 yum install qemu-kvm libvirt libvirt-daemon virt-install virt-manager libvirt-dbus 2、启动libvirtd systemctl start libvirtd.service systemctl enable libvirtd.service 3、设置开机自启动 systemctl enabl…

后端学习:Maven模型与Springboot框架

Maven 初识Maven Maven:是Apache旗下的一个开源项目,是一款用于管理和构建java项目的工具。 Maven的作用1.依赖管理2.统一项目结构3.项目构建依赖管理:方便快捷的管理项目依赖的资源(jar包),避免版本冲突问题   当使用maven进行项目依赖…

面试经典150题 -- 链表 (总结)

总的地址 : 面试经典 150 题 - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台 c链表总结 : 链表总结 -- 《数据结构》-- c/c-CSDN博客 141 . 环形链表 详细题解参考 : 141 . 环形链表-CSDN博客 这里给出慢双指针的代码 : /*** Defini…

《白话C++》第10章 STL和boost,Page70~72 boost::scoped_ptr(未完待续)

《泛型》篇中提到的某个IT项目的辩论会, 一派坚持智能指针和裸指针可以“离婚”,它们是std::auto_ptr的支持者, 一派认为智能指针和裸指针不可以“离婚”,boost::scoped_ptr体现了他们的观点: boost::scoped_ptr基本…