您当前的位置: 首页 >  php

Z3eyOnd

暂无认证

  • 3浏览

    0关注

    117博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

php特性<1>--ctfshow

Z3eyOnd 发布时间:2021-11-01 20:24:19 ,浏览量:3

文章目录
    • 1.数组绕过正则表达式
      • web89
    • 2.intval
      • web90,92,93,94,95
    • 3.正则表达式修饰符
      • web91
      • 利用回溯最大次数绕过正则表达式
    • 4.路径问题
      • web96
    • 5.md5绕过
      • 强类型比较
      • 弱类型比较
      • md5碰撞
      • 第四种情况
      • 其他的hash值(md4,CRC32)
      • web97
    • 6.三目运算符
      • web98
    • 7.变量覆盖
      • 前言
      • $$使用不当
      • extract()函数使用不当
      • parse_str()函数使用不当
      • import_request_variables()使用不当
    • 8.对preg_replace的研究
    • 9.in_array的特性
      • web99
    • 10.反射ReflectionClass的使用
      • web100,101
    • 11.call_user_func()和call_user_func_array()
      • web102,103
      • 参考文章:

1.数组绕过正则表达式 web89
if(isset($_GET['num'])){
    $num = $_GET['num'];
    if(preg_match("/[0-9]/", $num)){
        die("no no no!");
    }
    if(intval($num)){
        echo $flag;
    }
}

正则表达式,遇到一个数组,而不是一个字符串的话,就会返回false,从而绕过。 payload:num[]=1

2.intval

官方文档 参数

intval ( mixed $var [, int $base = 10 ] ) : int
其中,var为要转换的数量值
base为转换所用的进制
Note:
如果 base 是 0,通过检测 var 的格式来决定使用的进制:
如果字符串包括了 "0x" (或 "0X") 的前缀,使用 16 进制 (hex);否则,
如果字符串以 "0" 开始,使用 8 进制(octal);否则,
将使用 10 进制 (decimal)。

返回值

成功时返回 value 的 integer 值,失败时返回 0。 空的 array 返回 0,非空的 array 返回 1。

最大的值取决于操作系统。 32 位系统最大带符号的 integer 范围是 -2147483648 到 2147483647。举例,在这样的系统上,intval('1000000000000') 会返回 2147483647。64 位系统上,最大带符号的 integer 值是 9223372036854775807。

字符串有可能返回 0,虽然取决于字符串最左侧的字符。 使用 整型转换 的共同规则。

例子

            
关注
打赏
1651657201
查看更多评论
0.0534s