AIS3 Junior|Writeup 後端筆記
1) phpisbest — 鬆散比較 + 陣列繞過 原始重點(節錄) 1 2 3 4 // 重點判斷條件 if (isset($A,$B) && $A != $B && strcmp($A,$B) == 0 && md5($A) == md5($B)) { echo $flag; } 我用的 Payload /index.php?A[]=1&B[]=2 原理簡述 strcmp(array, array) 參數型別錯誤 → 回傳 null,而 null == 0 成立,所以通過 == 0 檢查。 md5(array) 也會回傳 null,null == null 成立。 前置 A != B:[1] != [2] 為真,所以能一路通關。 備註:不需要找 MD5 碰撞;這裡靠 型別錯誤→null + 鬆散比較 就足夠!! 2) uploader-waf — MIME + 副檔名大小寫繞過 原始重點(節錄) 1 2 3 4 if ($_FILES['file']['type'] === "image/png") { $ext = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION); if ($ext !== "php") { /* 允許上傳 */ } } 步驟(我實作) ...