simple_php题解流程

本文通过解析PHP代码,展示了如何利用弱类型和强类型特性解密一个旗标问题,涉及GET提交变量a的弱比较和b的非数字条件。通过字符串拼接技巧,确定了完整旗标的获取方法。
摘要由CSDN通过智能技术生成

进入题目网页

可以看到网页给出了php的源码,下面先来分析一下源码:

这里flag被拆成了两段,先看第一段。

需要GET形式提交变量a,要求$a==0 and $a,这里使用==符号用到了php的弱类型相等,即弱比较只要求比较的两个值在转换类型后相等即可。如果两个值的类型不同,会尝试将其中一个值转换为另一个值的类型。

而强类型相等符合===:强比较要求比较的两个值不仅是值相等,而且类型也必须相等。只有当值和类型都相等时,才会返回 true。

后面一个条件则是$a存在,即$a是一个非‘1’的任意字符

这样就得到了flag的前半段。

下面就是$b的判断条件,要求b不能是一个数字,且b要大于1234,由于php的弱类型转化,这里需要在前面有一段数字大于1234,并在这段数字后面拼接字符来确保b不会被is_numeric()函数判定为数字,这样就有了b的值12345a

这样就得到了后半段flag,我们将a和b同时传入,就能得到完整的flag了。

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值