题目
$num=$_GET['num'];
if(!is_numeric($num))
{
echo $num;
if($num==1)
echo 'flag{**********}';
}
还是php的代码, 看过之前的get那题应该知道该如何答题
分析
给num
赋一个值, 这个值不是数字但是等于1
. 看似矛盾实则不是.只需要在数字后加上字母即可。原理在下面的基础知识部分。
解答
直接在地址栏加上
?num=1a
基础知识
==
:会先将字符串类型转化成相同,再比较
===
: 会先判断两种字符串的类型是否相等,再比较.
在转化时, 对于1a
这种数字在前字符在后的混合型, 会只将前边的数字转换为int型。即1a
转化为1
。
这属于php的弱类型问题, 更多的关于php的弱类型绕过, 参考该文章https://www.cnblogs.com/Mrsm1th/p/6745532.html
网友评论