当前位置: 首页 > article >正文

BUU19 [BJDCTF2020]Easy MD51

题目

当点进去不知道干啥的时候: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.kler.cn/a/533462.html

相关文章:

  • 0205算法:最长连续序列、三数之和、排序链表
  • 2024年12月 Scratch 图形化(二级)真题解析 中国电子学会全国青少年软件编程等级考试
  • 21.2.1 基本操作
  • 【HarmonyOS之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(四) -> 常见组件(一)
  • 人工智能第2章-知识点与学习笔记
  • 计算机视觉-边缘检测
  • 企业四要素如何用PHP进行调用
  • 在ubuntu22.04上先部署docker,再编译安装kamailio,附详细操作流程及docker和makailio的版本号
  • Junit5使用教程(5)
  • openai agent第二弹:deepresearch原理介绍
  • P5524 [Ynoi2012] NOIP2015 充满了希望 Solution
  • MySQL 事件调度器(Event Scheduler)的使用
  • 在Debian 12上安装VNC服务器
  • 【mysql知识】mysql的存储过程详细说明
  • WordPressAI自动生成发布文章免费插件,SEO,定时任务,生成长尾关键词、根据网站主题内容全自动化后台生成发布文章
  • 小程序越来越智能化,作为设计师要如何进行创新设计
  • 智能化转型2.0:从“工具应用”到“价值重构”
  • Spring 核心技术解析【纯干货版】- IX:Spring 数据访问模块 Spring-Jdbc 模块精讲
  • C# OpenCV机器视觉:学生注意力监测
  • Android 整个屏幕可滑动,tab,viewpage是列表,tab不锁在顶
  • 如何在自己mac电脑上私有化部署deep seek
  • [Android] IKTV专享版
  • Meta推动虚拟现实:Facebook如何进入元宇宙时代
  • 107,【7】buuctf web [CISCN2019 华北赛区 Day2 Web1]Hack World
  • JavaScript(简称:js)
  • SQL server 创建DB Link 详解