zoukankan      html  css  js  c++  java
  • 攻防世界wp--web simple_php

    首先打开网址是:

    这段php代码的意思是,通过get方法得到a和b的值,然后如果$a==0 并且$a为真,得到flag1,如果b是整数或者数字字符串,就退出,然后如果$b>1234就得到flag2.

    本题考查的是php的弱类型比较。

    虽然 PHP 是弱类型语言,但也需要明白变量类型及它们的意义,因为我们经常需要对 PHP 变量进行比较,包含松散和严格比较。

    • 松散比较:使用两个等号 == 比较,只比较值,不比较类型。
    • 严格比较:用三个等号 === 比较,除了比较值,也比较类型。

    例如,"42" 是一个字符串而 42 是一个整数。FALSE 是一个布尔值而 "false" 是一个字符串。

    掌握php弱类型比较
    php中其中两种比较符号:
    ==:先将字符串类型转化成相同,再比较
    ===:先判断两种字符串的类型是否相等,再比较
    字符串和数字比较使用==时,字符串会先转换为数字类型再比较
    var_dump('a' == 0);//true,此时a字符串类型转化成数字,因为a字符串开头中没有找到数字,所以转换为0
    var_dump('123a' == 123);//true,这里'123a'会被转换为123
    
    var_dump('a123' == 123);//false,因为php中有这样一个规定:字符串的开始部分决定了它的值,如果该字符串以合法的数字开始,则使用该数字至和它连续的最后一个数字结束,否则其比较时整体值为0。
    举例:
    var_dump('123a1' == 123);//true
    var_dump('1233a' == 123);//false

    首先对于a的话,我们可以直接传一个字母a进去,因为a是没有赋值的,所以通过比较,字符串'a'==0是true的。并且a也是true的。

    对于b的话,我们可以给他传1235a,这样b就不是数字串了,而1235a会自动转换成1235再去和1234来比较为true。

    得到flag:

  • 相关阅读:
    IOS图像处理(6)在内存上下文中绘图
    IOS图像处理(5)填充模式
    IOS图像处理(4)坐标变化
    IOS图像处理(3)绘制路径
    IOS图像处理(2)绘制文本
    IOS图像处理(1)绘制简单的几何图形
    containsString
    UIScrollView zoom in/out center
    Mac Sublime Text 2 快捷键(转)
    Characteristics with cached values must be read-only
  • 原文地址:https://www.cnblogs.com/wushengyang/p/12455553.html
Copyright © 2011-2022 走看看