simple_php (攻防世界)

本文详细解析了一段PHP代码的逻辑,包括变量赋值、条件判断和输出。关键在于理解当$a等于0并且为真,以及$b不是纯数字且大于1234时,如何构造输入以获取隐藏的flag。通过设置$a为非数字字符串,如'abcd',$b为大于1234的非数字字符串,如'9999c',成功触发条件,得到flag:Cyberpeace{647E37C7627CC3E4019EC69324F66C7C}
部署运行你感兴趣的模型镜像

前言:

这篇文章还是是为了帮助一些

像我这样的菜鸟

找到简单的题解

题目描述

进入网址

解题工具:

可以使用hackerbar

问题解析:

我们来分析一下代码

<?php
show_source(__FILE__);
include("config.php");
$a=@$_GET['a'];
$b=@$_GET['b'];
if($a==0 and $a){
    echo $flag1;
}
if(is_numeric($b)){
    exit();
}
if($b>1234){
    echo $flag2;
}
?>

很明显是一段php代码

前三行可略过

和解题无关

<?php
show_source(__FILE__);
include("config.php");

第四,五行意思是

定义两个变量a和b并get a和b的值

$a=@$_GET['a'];
$b=@$_GET['b'];

第六行是判断

a要等于0且为真

if($a==0 and $a){

如果成立打印flag1

echo $flag1;

接下来又是一个判断

意思是判断b是否为纯数字

if(is_numeric($b)){

如果b是纯数字就结束

exit();

最后是一个判断b是否大于1234

是就打印flag

if($b>1234){
    echo $flag2;
}

get的a等于0为真而且a为真
b不是纯数字还要大于1234
满足条件则给出flag


解题过程:

根据以上分析,

我们可得出以下结论

a可以是abcd
b不能是纯数字而且要大于1234(可以在数字后面加字母)
所以b可以=9999c
把a=abcd,b=9999c get进去

得到flag

Cyberpeace{647E37C7627CC3E4019EC69324F66C7C}

完成

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值