資訊收集



開放了22ssh,80埠,其中ssh有弱口令爆破埠

先開啟網頁,然後進行目錄爆破,在這期間先看一下網頁的大概資訊





沒爆到什麼有用的東西,但是有uploads資料夾說明是不是說明有檔案上傳?

開啟頁面,點選所有連結發現都是跳轉到當前頁面,一個一個看網頁上寫了點什麼,最後看到了loginin這個關鍵詞,所以極大可能是有一個登陸頁面,然而dirsearch卻沒有爆破出來,猜測登入的頁面放在了某個資料夾下



檢視原始碼,發現有login相關的關鍵詞,路徑為cdn-cgi/login



開啟目錄,發現自動跳轉到登陸頁面

登入頁面的特性:

沒有驗證碼,沒有回顯,沒有錯誤次數限制,理論上是非常適合弱口令爆破的,但是應該沒有字典可以爆破出來

原因是密碼是和其他靶機相關,也就是賬號密碼都是上一個靶機的賬號密碼,理由是靶機之間有關聯,我只能說不知有些話該不該說

admin,MEGACORP_4dm1n!!

開啟後臺頁面,有四個可以點選的連結



其中,Account、Branding、Clients有疑似sql注入,原因是通過切換url的id值會顯示不同的內容

upoloads頁面猜測可以檔案上傳,開頭時就已經猜到了,但是似乎需要super admin才擁有檔案上傳的許可權,而我們如今登入的賬號是admin



首先先來看一下sql注入的點





可以看到,通過修改brandId的值,返回了不同的內容,很難不讓人想到和資料庫做了互動

但是手工注入無法使其報錯,甚至sqlmap也跑不出來,猜測是故意騙的,很沒意思

再回來觀察一下upload頁面,要求要suer admin許可權,看一下cookie

cookie由兩個值組成





我認為決定身份的應該是由user的值決定的

經修改user值為super admin的值也驗證了無法更改身份,那我們目前的目標就是為了拿到super admin的id值

攻擊

這時候我們回到account這個頁面,通過傳遞不同的id值,返回不同的使用者的id值,姓名,郵箱

使用burpsuite進行爆破,從1-100,看看能爆出什麼東西,設定如下



在id=30時可以爆破出來



id=86575,再返回到upload頁面



先嚐試上傳一個正常的圖片,目的是為了確定上傳後圖片所在的位置



正常上傳,同時確定路徑就是ip/uploads

接下來嘗試上傳後門,上傳一個msf的後門,結果直接上傳,沒有任何限制,訪問頁面,成功反彈shell



機器的flag就放在/homeRobert的user.txt中,但是我想嘗試一下提權

提權

在網站的cdn-cgi/db.php中有robert的使用者和密碼,通過ssh登入

使用id檢視許可權



發現robert有兩個許可權,搜尋和bugtracker的相關資訊

find / -name bugtracker 2>/dev/null

執行一下bugtracker,輸入數字就會顯示出一些資訊,打算cat一下,發現是二進位制檔案

使用string輸出一下可以列印的字元



結果發現軟體瀏覽了/root/reports目錄,一般來說沒有root許可權是看不了root目錄的,說明bugtracker有root許可權

然後後面就有點不懂了,不知道cat命令沒有使用cat命令的絕對路徑,而是使用絕對路徑呼叫的,即在當前使用者的$PATH環境變數指定的路徑中搜尋cat命令這個結論是怎麼得出來的,不過如果是這樣的實現檔案讀取的話就可以通過修改環境變數的值來讓bugtracker以root許可權執行我們想要的程式

將/tmp目錄設定為$PATH環境變數的第一個目錄,切換到/tmp目錄下構造惡意cat命令並賦予執行許可權。當bugtracker再次呼叫cat命令時實際上呼叫的是/tmp目錄下的惡意cat命令(shell執行命令時按照PATH環境變數中目錄的順序搜尋,搜尋到即開始執行),此時robert使用者臨時具有了root許可權,上面的id命令可以看出只是robert使用者的uid變為了root,不是真正的root使用者。