ctfshow——PHP特性
2024-01-03 11:33:06
web 89
使用人工分配 ID 键的数值型数组绕过preg_match
.
两个函数:
preg_match()
:执行正则表达式,进行字符串过滤。preg_match函数用法,正则表达式语法。[0-9]
匹配0-9之间的所有字符。/
相当于一个分隔符,/../
之间的内容就是正则的语法。绕过方法:变量num为人工分配 ID 键的数值型数组,preg_match()
就会失效。如num[]=1,num[0]=1
intval()
:将变量的值默认转化为十进制。intval函数用法。绕过方法:可以使用==的特性,如+16、16.0;或者进制转换后,左右变量也相等。注意:
- 使用array()类型的数组,
intval
遇到空数组为0,非空数组为1.
- 使用人工分配 ID 键的数值型数组,
intval
遇到空数组为0,非空数组为1。
- 使用array()类型的数组,
web 90
解释:
-
===
强类型对比,可以使用进制转换进行绕过。补充==
:弱类型对比,可以添加+、-
符号或者.0
进行绕过。 -
intval($num,0)
代表通过检测变量num的格式来决定使用哪个进制。- 以
0x
或0X
为前缀,使用16进制; - 以
0
为前缀,使用8进制; - 使用10进制。
intval()
处理字符串时,其实跟整形一样。另外,intval()函数如果$base为0,则$var中存在字母的话遇到字母就停止读取,传入4476a会将后面的a丢弃,比较前面的.
- 以
-
GET传参接收的就是字符串数据。GET传参和POST传参,其实上传的都是HTML表单,HTML 表单并不传递整数、浮点数或者布尔值,它们只传递字符串。php类型比较表
-
php中,单引号和双引号包裹的,其实都是字符串,只是当其中包含变量时,单引号不会解释变量,双引号会解释变量。
文章来源:https://blog.csdn.net/qq_55202378/article/details/135355498
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!