2021.9.24攻防新手simple php

首先看题目,简单php进入场景如下图

 看不懂,直接查了攻防世界题目:simple_php 详细思路_彼岸花苏陌的博客-CSDN博客这个回答超级详细直接懂得了。

PHP的弱类型总结攻防世界题目:simple_php 详细思路_彼岸花苏陌的博客-CSDN博客这个回答也特别详细

这里自己总结一下过程

题目第一个if说如果a=0并且$a指a必须为真得到flag1

第二个if说如果b为数字就会exit关闭

第三个if说b大于1234得到flag2

第一个if中

if($a==0 and $a){
    echo $flag1;
}

有两个==是弱类型,当比较符两边的类型不同时它会转化成相同的,看题,get得到的是一个字符串类型,而0是一个数字类型,那我们就在URL后加/?a=0.0出现下图

0.0是字符串,在==转型时会变成0,故成功得到第一个flag

接下来看b

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

不可以是数字又要大于1234故尝试b=12345a这样既大于1234又不是数字。12345a是字符串,为什么12345a会大于1234呢,做出的解释是这是php类型转化的一个特性,它在转化时会从里到外转化的。提交后如下图

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值