bugku 陣列返回NULL繞過

2021-09-25 21:39:51 字數 957 閱讀 4991

<?php 

$flag = "flag";

if (isset ($_get['password']))

?>

1.  isset()函式 — 檢測變數是否已設定並且非null2.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。

strpos的引數同樣不能夠是陣列,所以返回的依舊是null,null不等於false也是正確。

即:倘若函式的引數不符合其函式要求的時候返回的是null值

所以這個也可以

陣列返回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裡使用正則匹配,滿足達到...