BUUCTF在线评测BUUCTF 是一个 CTF 竞赛和训练平台,为各位 CTF 选手提供真实赛题在线复现等服务。 https://buuoj.cn/challenges#[MRCTF2020]Ez_bypass启动靶机

有提示F12,那查看一下源码。和页面显示的代码一样的,就是格式更规范而已

include 'flag.php';
$flag='MRCTF{xxxxxxxxxxxxxxxxxxxxxxxxx}';
if(isset($_GET['gg'])&&isset($_GET['id'])) {$id=$_GET['id'];$gg=$_GET['gg'];if (md5($id) === md5($gg) && $id !== $gg) {echo 'You got the first step';if(isset($_POST['passwd'])) {$passwd=$_POST['passwd'];if (!is_numeric($passwd)){if($passwd==1234567){echo 'Good Job!';highlight_file('flag.php');die('By Retr_0');}else {  echo "can you think twice??"; }}else{   echo 'You can not get it !';}}else{ die('only one way to get the flag');}
}else { echo "You are not a real hacker!"; }
}else{  die('Please input first');}
}  You are not a real hacker!

代码讲述了get方法传递两个参数 gg 和 id ,使得它们的MD5值 强相等(===),但它们本身值并不相同。

而且使用post方法传递了一个 passwd 参数,并且需要确保这个参数值不是纯数字,还得使得参数值与 1234567 弱相等(==)

那么我们首先构造url传参 :?gg[]=s878926199a&id[]=s155964671a

解释一下:为什么这里我们参数传递的是数组,而不是直接传递字符串?

 

由于代码要求两个参数值的MD5值要 强相等(===)

        如果我们传递的是?gg=s878926199a&id=s155964671a

        那么这两个值的MD5分别是

                0e545993274517709034328855841020

                0e342768416822451524974117254469

        在进行比较时,这两个值是不相等的,就会返回 false

        然鹅当传递的值是数组时,进行MD5运算,两个都会返回Null   

        null===null  返回 true

 

如果,代码中MD5值的比较使用的是 弱相等(==)

那么就可以直接传递字符串

        原因是在弱比较时,php会将 0e 开头的字符串解释为科学计数法的 0。

        并且如果 0e 后续全是数字的话,php会认为它们是相等的

再使用post方法传递     passwd=1234567\    

1234567\ 

1234567a

1234567+

1234567- 

1234567*  

都可以(不要使用 . 会被看成是小数点)

这样写 是因为使用的是弱相等 

当php看到一个字符串与一个数字进行弱比较时,它会将这个字符串看成一个数字,当读取到非数字的部分它就会停止,所以这些非数字字符得放在1234567的后面

获得flag{5ab68b16-b084-4f10-8530-06f5726d5f53}

 

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

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

相关文章

C/C++关键字——union

1.介绍union是一种特殊的数据类型,它允许你在同一块内存区域中存储不同的数据类型。它的主要目的是节省内存,尤其是在处理多种可能的数据类型,但一次只使用其中一种的场景。2.特点与 struct(结构体)不同,结…

2024 arXiv Cost-Efficient Prompt Engineering for Unsupervised Entity Resolution

论文基本信息 题目: Cost-Efficient Prompt Engineering for Unsupervised Entity Resolution 作者: Navapat Nananukul, Khanin Sisaengsuwanchai, Mayank Kejriwal 机构: University of Southern California, Information Sciences Institu…

【XR技术概念科普】什么是注视点渲染(Foveated Rendering)?为什么Vision Pro离不开它?

一、前言2023 年,苹果推出了 Vision Pro 头显,把“空间计算”概念推向大众。与以往的 XR 设备不同,Vision Pro 强调高分辨率、真实感与沉浸感。然而,这种体验背后隐藏着一个巨大的技术挑战:如何在有限的计算与能耗条件…

Qt 系统相关 - 1

虽然 Qt 是跨平台的 C 开发框架,Qt 有很多能力其实是操作系统提供的,只不过 Qt 封装了系统的 API程序时运行在操作系统上的,需要系统给我们提供支撑!事件文件操作多线程编程网络编程多媒体(音频,视频&#…

“12306”有多牛逼?从架构师的角度详细的告诉你

12306铁路票务系统架构深度解析 📚 目录 系统概述业务特点与技术挑战整体架构设计核心技术架构高并发处理策略数据存储与管理缓存体系设计分布式系统架构安全防护体系性能优化策略监控与运维技术演进历程总结与展望 每到春节、国庆这种全民迁徙的时刻,…

数据采集机器人哪家好?2025 年实测推荐:千里聆 RPA 凭什么成企业首选?

在数字化转型加速的今天,数据采集已成为企业运营的核心环节,数据采集机器人正在重构企业的效率边界。2025 年中国 RPA 市场排名显示,泛微旗下的千里聆 RPA 已跻身行业前五,成为中大型国央企的首选品牌。本文将通过三维评估体系&am…

基础crud项目(前端部分+总结)

本人根据自己对前端微不足道的理解和 AI 老师的指导下,艰难地完成了基础crud代码的全栈开发,算是自己的第一个 Java 项目,对此做个简单总结。 后端部分 在前后端分离开发中,前端负责页面交互与数据展示,后端提供接口支…

MATLAB矩阵及其运算(二)函数

函数分为MATLAB内置函数及用户自定义函数,用户可以直接调用内置函数进行数据处理。内置函数的使用函数由三部分组成:名称、输入和输出。内置函数示例:单输入单输出函数:sqrt(x);单输入多输出函数:size(x)&a…

自动化运维-ansible中对于大项目的管理

自动化运维-ansible中对于大项目的管理 一、引用主机清单 在Playbook中引用主机时,hosts 字段指定的目标必须与Ansible主机清单中定义的标识符完全匹配。如果清单中配置的是主机名,则在Playbook中使用IP地址或其他别名将无法匹配,导致任务被跳…

59_基于深度学习的麦穗计数统计系统(yolo11、yolov8、yolov5+UI界面+Python项目源码+模型+标注好的数据集)

目录 项目介绍🎯 功能展示🌟 一、环境安装🎆 环境配置说明📘 安装指南说明🎥 环境安装教学视频 🌟 二、数据集介绍🌟 三、系统环境(框架/依赖库)说明🧱 系统环…

面试问题详解十六:Qt 内存管理机制

在 Qt 开发过程中,很多初学者(包括不少有经验的 C 程序员)经常会产生这样的疑问:“我在 Qt 中 new 出来的控件好像都没有 delete,那内存不会泄漏吗?”比如下面这段代码: void Widget::createLef…

Pycharm 试用

Ubuntu 重置Pycharm试用期限(30 天) 先关闭Pycharm删除系统缓存 rm -rf ~/.config/JetBrains/ && rm -rf ~/.local/share/JetBrains/ && rm -rf ~/.cache/JetBrains/删除已经安装的 Pycharm 软件运行目录去官网下载新的 就行了

C++ Qt 开发核心知识

Qt 框架概述Qt 是一个跨平台的 C 应用程序开发框架,广泛用于开发图形用户界面程序。其核心特性包括跨平台能力、丰富的功能模块和强大的工具集。核心概念与机制元对象系统Qt 扩展了标准 C,通过元对象系统提供信号与槽机制、运行时类型信息和动态属性系统…

net9 aspose.cell 自定义公式AbstractCalculationEngine,带超链接excel转html后背景色丢失

AbstractCalculationEngine 是 Aspose.Cells 中一个强大的抽象类,允许您自定义公式计算逻辑。当您需要覆盖默认计算行为或实现自定义函数时非常有用。直接上代码1. 创建自定义计算引擎using Aspose.Cells; using System;// 创建自定义计算引擎 public class CustomC…

如何监控员工的电脑?7款实用的员工电脑管理软件,探索高效管理捷径!

当销售团队在淘宝刷单、设计师用公司电脑挖矿、程序员频繁访问代码托管网站时,企业损失的不仅是带宽——低效、泄密、合规风险正成为隐形利润杀手。 传统管理依赖“人盯人”或抽查日志,但面对分布式办公与远程协作趋势,这些方法早已力不从心…

机器视觉软件--VisionPro、Visual Master,Halcon 和 OpenCV 的学习路线

Halcon 和 OpenCV区别 Halcon 和 OpenCV 都是计算机视觉领域的重要工具,但它们的设计理念、功能侧重和适用场景有显著不同。下面这个表格汇总了它们的核心区别,方便你快速了解: 开发模式与体验​​:Halcon 配备了强大的​​图形化…

算法-根据前序+中序遍历打印树的右视图

题目请根据二叉树的前序遍历,中序遍历恢复二叉树,并打印出二叉树的右视图数据范围: 0≤n≤100000≤n≤10000 要求: 空间复杂度 O(n)O(n),时间复杂度 O(n)O(n)如输入[1,2,4,5,3],[4,2,5,1,3]时,通过前序遍历…

Kafka面试精讲 Day 7:消息序列化与压缩策略

【Kafka面试精讲 Day 7】消息序列化与压缩策略 在Kafka的高性能消息系统中,消息序列化与压缩是影响吞吐量、延迟和网络开销的核心环节。作为“Kafka面试精讲”系列的第7天,本文聚焦于这一关键主题,深入剖析其原理、实现方式、配置策略及常见…

Xterminal软件下载_Xterminal ssh远程链接工具下载__Xterminal安装包 网盘下载_Xterminal ssh远程链接工具安装包

Xterminal 作为一款国产 SSH 工具,专为开发人员量身打造。它支持 SSH 和 Telnet 协议连接远程服务器与虚拟机,无论是进行代码部署,还是服务器运维,都能轻松胜任。软件界面采用极简设计,黑色背景搭配白色文字&#xff0…

Lua > 洛谷

Lua > 洛谷P1000 超级玛丽游戏P1001 AB ProblemP1008 [NOIP 1998 普及组] 三连击P1035 [NOIP 2002 普及组] 级数求和P1046 [NOIP 2005 普及组] 陶陶摘苹果P1047 [NOIP 2005 普及组] 校门外的树P1085 [NOIP 2004 普及组] 不高兴的津津P1089 [NOIP 2004 提高组] 津津的储蓄计划…