<?php
$flag = "flag";
if (isset ($_get['password']))
?>
1. isset()函式 — 檢測變數是否已設定並且非null
2.
ereg()函式 — 正規表示式匹配
3. strpos() 函式對大小寫敏感。
「[a-za-z0-9]"閱讀**,本題需要滿足的條件方括號表示字符集,[a-za-z0-9]匹配大小寫字母和數字其中乙個字元
"^[a-za-z0-9]$"
^表示字串開始,$表示字串結束 ,這個匹配只有乙個大小寫字母和數字字元的字串
「^[a-za-z0-9]+$"
+號表示重複1到多次,匹配由多個數字大小字母組成的字串
必須以數字或者字母開頭(其實看到ereg就可以想到%00截斷);所以得到必須在password引數中找到--。
但是:
ereg只能處理字元,而你是陣列,所以返回的是null,三個等號的時候不會進行型別轉換。所以null不等於false。即:倘若函式的引數不符合其函式要求的時候返回的是null值strpos的引數同樣不能夠是陣列,所以返回的依舊是null,null不等於false也是正確。
所以這個也可以
陣列返回NULL繞過
bugku 還沒看完原始碼,我就直接加了乙個password 1結果就拿到flag了。然後再看原始碼我自己都搞不懂為什麼可以得到原始碼。真的,不信你看。1 2 flag flag 34if isset get password 12 先來談論一下標準的答案 第乙個條件 必須以數字或者字母開頭 其實看...
Bugku 各種繞過
id uname通過get方法傳值,passwd通過post方法傳值且如果想要進入內層迴圈必須傳入uname和passwd uname和passwd弱型別不相等 uname和passwd加密後的值強相等 id欄位url解碼後 margin 通過簡單的梳理本題的思路已然明了,id欄位只是迷惑,marg...
bugku數字驗證繞過正則
題目 第6行使用正則匹配如果匹配到 password開頭12個字元中有空格則輸出flag並執行exit 12行是正則匹配 password裡的字元是否大於6,如果小於則echo hello world然後break所以一定要大於6才行。19 28行是表示要將 password裡使用正則匹配,滿足達到...