首页 > Web开发 > 详细

xctf-simple_php

时间:2020-05-17 11:38:54      阅读:51      评论:0      收藏:0      [点我收藏+]

打开页面发现是一段PHP代码

技术分享图片

简单审计下代码,发现需要以get的方式传入两个参数a和b。

a参数的要求 :a必须等于0 且 a为真 。

is_numeric() 函数用于检测类型是否为数字或数字字符串 ,如果是数字和数字字符串则返回 TRUE,否则返回 FALSE。

b参数的要求 :b不能为数字或数字字符串,但b的值要大于1234 ,进行绕过,可以使 用%00进行截断

 

 

核心问题是理解PHP语言的弱类型

 

PHP是一种弱类型的语言,对于数字 0 和 空字符串 在进行布尔运算的时候都会转换为  false ;

php中有两种比较的符号 == 与 ===

== 是 不严格 的 比较, 会 先 进 行 类 型 转 换 再 比 较,比如字符串 ‘0‘ 和数字 0 比较的时候会返回true;

而对于 === 则会同时比较类型和变量值,若类型不相同也不会返回true;

 

在$a==$b的比较中

$a=‘ ‘;$b=null        //true

$a=null;$b=true      //true

$a=0;$b=‘0‘       //true

$a=0;$b=‘abcdef ‘  //true  而0===’abcdef ‘  false

 

具体文章请参考:https://www.cnblogs.com/Mrsm1th/p/6745532.html

                             https://www.jianshu.com/p/90d235d4f745

                             https://www.jb51.net/article/93447.htm

xctf-simple_php

原文:https://www.cnblogs.com/boost7-safe/p/12904388.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!