題目
$num=$_GET['num'];
if(!is_numeric($num))
{
echo $num;
if($num==1)
echo 'flag{**********}';
}
還是php的代碼, 看過之前的get那題應(yīng)該知道該如何答題
分析
給num賦一個值, 這個值不是數(shù)字但是等于1. 看似矛盾實則不是.只需要在數(shù)字后加上字母即可。原理在下面的基礎(chǔ)知識部分。
解答
直接在地址欄加上
?num=1a
基礎(chǔ)知識
==:會先將字符串類型轉(zhuǎn)化成相同,再比較
===: 會先判斷兩種字符串的類型是否相等,再比較.
在轉(zhuǎn)化時, 對于1a這種數(shù)字在前字符在后的混合型, 會只將前邊的數(shù)字轉(zhuǎn)換為int型。即1a轉(zhuǎn)化為1。
這屬于php的弱類型問題, 更多的關(guān)于php的弱類型繞過, 參考該文章https://www.cnblogs.com/Mrsm1th/p/6745532.html