文章目录
1.数组绕过正则表达式
web89
- 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
- 参考文章:
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,虽然取决于字符串最左侧的字符。 使用 整型转换 的共同规则。
例子
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?