有興趣看這一系列的可以先參考[解析] 駭客訓練基地game1解析與詳述(上)
接下來,GAME1-level6 ~ level9
GAME1-level6:
這關的提示為 Author “I never metacharacter I did not like ;)“,大概是訴說特殊字元可能產生問題
若對資安有初步概念的話,大概聽過 SQL injection 或 XSS 等等的代碼注入技術
這類技術通常就是藉由特殊字元或字串使後端程式執行惡意程式碼,利用PHP PDO 或資料執行區段技術可以防止
因此我們嘗試以 SQL injection 先作注入
’ or 1=1— => 這樣就過關囉!
PS. 這關密碼是使用白名單去作判別…所以有些應該注入成功的答案可能會失敗!
GAME1-level7:
這關提示為”Do You think we should use Cookie Authentication for this level? lol …”
看起來是跟 cookie 裡面的東西有關,打開cookie後,會發現多了一個 Cookie_Hash
其中提到了hash,值總共有32位且介於 0-9、a-f 蠻有可能是在指 md5 這個 hash 技術,
因此我們 google 一下md5 反解,可以查到一些線上工具
作反解後就可以得到密碼囉!
GAME1-level8:
這關提示為 Real men code in C “level8.exe”,可見密碼藏在這檔案中
我們先使用 linux 的 file 指令判別此檔案屬性,會發現是32位元的windows 執行檔
因此我們嘗試以32位元的windows 系統環境執行此執行檔看看,一直顯示缺少 cygwin1.dll…
使用文字編輯器打開執行檔看看,結果就看到密碼…過關囉!
GAME1-level9:
這關提示為”Sometime I wish I could bring the session time back to correct the mistake I have done :)”
回復到之前的session…可能是指要想辦法更正session!? 可是session是存在server端。
看來也就是不要直接跳到這頁,或許有可能不更改到session。
因此,我們嘗試在 level8 通關時輸入使用者帳密後,看一下是如何轉到level9的。
我們可以發現網頁是 index8.php => checkplayer8.php => final9index.php 這樣的流程
而且checkplayer8.php => final9index.php 還不確定是如何轉址過去的!?
因此我們使用chrome 插件 postmen 先試著自己包使用者帳密送 http 請求至 checkplayer8.php
會發現後端回傳了一行前端轉址
因此我們就先不作 javascript 轉址,就不會被更改 session
然後我們根據 level8 的網址 (checkplayer8.php),去假設 level9 也有同樣的 checkplayer9.php,
利用 postman 仿造 user = levle9 與 pass="" (可能有人會疑問這邊為什麼要填 user= ‘level9’? 我也不知道,這也是我花費大量時間才測試成功的XD)
就可以通關了!