BUU19 [BJDCTF2020]Easy MD51

embedded/2025/2/6 18:58:21/

题目

当点进去不知道干啥的时候:1.看源代码   2.抓包    3.看网络请求 F12

用bp抓包,在response消息头中有hint提示:

select * from 'admin' where password=md5($pass,true)

 如果md5($pass,true)后是' ' or 1   那么整句话就是password=' ' or 1,此时必定会返回1(也就是true)

为假的情况:1.空字符串 比如说 " " 或者 ' '

                      2.0,0.0(会转换成0进而进行比较)

                      3.空数组 [] 或者array()

                      4.特殊类型值: null 和 undefined

                      5.未初始化的变量:在一些情况下,未初始化的变量如果在条件判断中使用,会发出警告并且被视为 false 。
其他情况一般都被判定为 true

ffifdyop的来源:

PHP 中的 md5() 函数在第二个参数为 true 时会将 MD5 哈希结果以二进制数据 的形式进行返回,因 MD5 函数的返回值类型为 字符串,故在返回结果前,二进制数据将使用 ASCII 进行 解码(二进制数据到文本字符的转化)

出现由四边形包裹的问号:
一个字节能够表示的十进制数的范围为 0~255,而 ASCII 中的字符的编号范围为 0~127,两者的范围不对等。因此,当一个字节所表示的十进制数在 128~255 时,该字节将使用 四边形包裹的问号(不同的环境可能有不同的表现方式) 表示。

在提交ffifdyop后,出现界面

查看源代码: 

<!--
$a = $GET['a'];
$b = $_GET['b'];if($a != $b && md5($a) == md5($b)){// wow, glzjin wants a girl friend.
-->

这里 != 用来比较值,而 !== 不光比较值,还会比较类型 

对于这种数值不相等但是md5值相等的,此时有两种方法:

1.使用数组绕过:数组经过md5加密以后结果为null,比较则相等

a[] = 1 的意思是把值 1 追加到数组 a 的末尾。

注意这里传参的时候不能写/?,只能单写一个?

 也不知道为啥,感觉明明一样啊

2.使用特殊字符串绕过 

md5编码后开头为0e的数:

a=s1885207154a
b=s1836677006a

<?php
error_reporting(0);
include "flag.php";highlight_file(__FILE__);if($_POST['param1']!==$_POST['param2']&&md5($_POST['param1'])===md5($_POST['param2'])){echo $flag;
}

利用数组绕过: 

错误提交方式: 

话说正确的提交方法不是这样吗?这样也不对,不知道为啥 

 参考:web buuctf [BJDCTF2020]Easy MD51_[bjdctf2020]easy md5 1-CSDN博客

万能密码ffifdyop原理 - redfish999 - 博客园

MD5 绕过第三式:ffifdyop-CSDN博客

PHP特性之CTF中常见的PHP绕过_数组绕过-CSDN博客


http://www.ppmy.cn/embedded/160105.html

相关文章

联想拯救者开机进入bios

如果你的联想拯救者&#xff08;Lenovo Legion&#xff09;笔记本电脑开机后直接进入 BIOS 设置界面&#xff0c;可能是以下原因之一导致的。以下是解决方法&#xff1a; 1. 检查启动顺序 进入 BIOS 后&#xff0c;找到 Boot&#xff08;启动&#xff09;选项卡。检查启动顺序…

【算法设计与分析】实验5:贪心算法—装载及背包问题

目录 一、实验目的 二、实验环境 三、实验内容 四、核心代码 五、记录与处理 六、思考与总结 七、完整报告和成果文件提取链接 一、实验目的 掌握贪心算法求解问题的思想&#xff1b;针对不同问题&#xff0c;会利用贪心算法进行问题建模、求解以及时间复杂度分析&#x…

MySQL 进阶专题:索引(索引原理/操作/优缺点/B+树)

在数据库的秋招面试中&#xff0c;索引&#xff08;Index&#xff09;是一个经典且高频的题目。索引的作用类似于书中的目录&#x1f4d6;&#xff0c;它能够显著加快数据库查询的速度。本文将深入探讨索引的概念、作用、优缺点以及背后的数据结构&#xff0c;帮助你从原理到应…

「全网最细 + 实战源码案例」设计模式——桥接模式

核心思想 桥接模式&#xff08;Bridge Pattern&#xff09;是一种结构型设计模式&#xff0c;将抽象部分与其实现部分分离&#xff0c;使它们可以独立变化。降低代码耦合度&#xff0c;避免类爆炸&#xff0c;提高代码的可扩展性。 结构 1. Implementation&#xff08;实现类…

【办公类-99-01】20250201学具PDF打印会缩小一圈——解决办法:换一个PDF阅读器

背景需求&#xff1a; 2024年1月13日&#xff0c;快要放寒假了&#xff0c;组长拿着我们班的打印好的一叠教案来调整。 “前面周计划下面的家园共育有调整&#xff0c;你自己看批注。” “还有你这个教案部分的模版有问题&#xff0c;太小&#xff08;窄&#xff09;了。考虑…

【前端】【Ts】【知识点总结】TypeScript知识总结

一、总体概述 TypeScript 是 JavaScript 的超集&#xff0c;主要通过静态类型检查和丰富的类型系统来提高代码的健壮性和可维护性。它涵盖了从基础数据类型到高级类型、从函数与对象的类型定义到类、接口、泛型、模块化及装饰器等众多知识点。掌握这些内容有助于编写更清晰、结…

无法连接到远程扩展主机服务器

有一次在VSCode上设置了监听调试&#xff0c;动了launch.json文件&#xff0c;下次再打开VSCode远程连接服务器时打不开文件&#xff0c;报错如下&#xff1a; 无法连接到远程扩展主机服务器 (错误: CodeError(AsyncPipeFailed(Os { code: 2, kind: NotFound, message: “No s…

Django框架的全面指南:从入门到高级

Django框架的全面指南&#xff1a;从入门到高级 目录 引言Django简介安装与配置创建第一个Django项目Django的MVT架构模型&#xff08;Model&#xff09;视图&#xff08;View&#xff09;模板&#xff08;Template&#xff09;URL路由表单处理用户认证与权限Django Admin高级…