id、uname通過get方法傳值,passwd通過post方法傳值且如果想要進入內層迴圈必須傳入uname和passwd
uname和passwd弱型別不相等
uname和passwd加密後的值強相等
id欄位url解碼後=『margin』
通過簡單的梳理本題的思路已然明了,id欄位只是迷惑,'margin'解碼後的值仍然是'margin',要滿足2和3只需要利用sha1函式無法處理陣列的特性即可。當對sha1()函式傳入陣列時會返回null,由此,只需要傳入兩個不同的陣列即可成功繞過。
<?php
highlight_file('flag.php');
$_get['id'] = urldecode($_get['id']);
$flag = 'flag';
if (isset($_get['uname']) and isset($_post['passwd']))
?>
構造payload如下
可以看到順利拿到了flag:
bugku 陣列返回NULL繞過
flag flag if isset get password 1.isset 函式 檢測變數是否已設定並且非null2.ereg 函式 正規表示式匹配 3.strpos 函式對大小寫敏感。a za z0 9 方括號表示字符集,a za z0 9 匹配大小寫字母和數字其中乙個字元 a za z0 9...
bugku數字驗證繞過正則
題目 第6行使用正則匹配如果匹配到 password開頭12個字元中有空格則輸出flag並執行exit 12行是正則匹配 password裡的字元是否大於6,如果小於則echo hello world然後break所以一定要大於6才行。19 28行是表示要將 password裡使用正則匹配,滿足達到...
Bugku 數字驗證正則繞過
語法 int preg match all 字串 pattern 字串 subject 陣列和 matches 整數 flags preg pattern order 整數 offset 0 搜尋主題中所有匹配模式給定正規表示式的匹配結果並將它們以標誌指定順序輸出到匹配中。在第乙個匹配找到後,子串行...