Skip to content

[解析] 駭客訓練基地game1解析與詳述(下)

Published: at 12:46 PM (4 min read)

有興趣看這一系列的可以先參考[解析] 駭客訓練基地game1解析與詳述(上)

接下來,GAME1-level6 ~ level9


GAME1-level6:

這關的提示為 Author “I never metacharacter I did not like ;)“,大概是訴說特殊字元可能產生問題

若對資安有初步概念的話,大概聽過 SQL injectionXSS 等等的代碼注入技術

這類技術通常就是藉由特殊字元或字串使後端程式執行惡意程式碼,利用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)

就可以通關了!