天天看點

讓檔案讀取漏洞與shell環環相扣

前言

作為一個漏洞挖掘者,你會拿任意檔案讀取漏洞做些什麼?

作為一個系統維護人員,你會在系統維護主機桌面儲存什麼重要資訊?

背景

前不久,我接到一個滲透測試項目,一共8個域名。上司給的期限是2周。我總覺得一個人做項目缺少點激情。想起我的狗友-單身狗大強。我跟上司申請,我和大強共同完成這個滲透測試的項目。很快,在項目周期改為一周的前提下,我們兩個開幹了。客戶隻提供了多個使用者系統的測試賬号,未提供管理系統的測試賬号,但是管理系統還在測試範圍。經過四天的艱苦卓絕的努力下,不負所望,我和大強挖到了不少漏洞,細數戰果,邏輯漏洞一大堆,系統漏洞也不少,可以愉快的交差了。但是,唯一缺少的就是一個shell,作為一個資深漏洞挖掘人員,知道滲透測試的目标是更多的發現問題,不以shell為終點。但沒有拿到shell心裡總覺得有一絲絲遺憾。就像将軍拿下城池但未見敵軍首領一般。

過程

在整理報告的時候,我發現大強的漏洞報告裡有一個XXE漏洞,并且還是回顯的。仔細的研究後發現,這個接口是整個系統登入後的的統一參數入口。系統解析到xml裡的方法後,再根據對應的方法執行響應的邏輯。按耐不住内心的躁動,我和大強開始了通過fuzz找各種敏感檔案。

讓檔案讀取漏洞與shell環環相扣

經過各種嘗試,讀取了大量系統敏感資訊。但是對Get shell幾乎無任何幫助。大強幾乎要放棄了。此時,我盯着大強的電腦螢幕、發現他桌面放着1.txt、2.txt等等檔案。真巧,我桌面也使用簡單命名,放着一些重要的臨時檔案。靈機一動、是不是有不少人也為了圖友善,在桌面存儲一些不易記錄的敏感資訊。接着,我們直接對管理者桌面檔案進行了fuzz。在一番嘗試下,我們找到了111.txt、123.txt、pwd.txt臨時檔案。其中發現pwd.txt檔案中存儲着一些網址及對應的賬号密碼,以及一些零散的字元串,貌似像密碼。此時我和大強笑出了鵝叫聲,他叫嚣着要教管理者如何做人。

讓檔案讀取漏洞與shell環環相扣

我和大強立即對這個目标主機進行了全端口服務掃描。發現這個主機開放着21、80、443、3389、6379、8080、8085、8086服務。我和大強盤算着,利用讀到的6對賬号密碼中的某一個直接登入3389。懷着激動的心情,進行了一次又一次的嘗試。然而畫風是這樣的:

進入3389失敗。

讓檔案讀取漏洞與shell環環相扣

進入ftp失敗。

讓檔案讀取漏洞與shell環環相扣

進入redis失敗。

由于讀取到的連結位址是内網系統,根本沒有進入的機會。

……

各種服務進入失敗後,我們嘗試進行了對3389、ftp等服務的爆破。仍然沒有結果。我們對目标位址的8085和8086端口直接通路時,也沒有任何服務直接展示。但是發現8085和8086服務連通性很不錯。

讓檔案讀取漏洞與shell環環相扣
讓檔案讀取漏洞與shell環環相扣

我們通過度娘努力尋找着可能存在8085和8086預設端口的服務資訊。但依然無所獲。

此刻,大強教管理者做人的叫嚣聲也消失了。

等等,這不是結束,這樣結束太草率了。我閉上眼,隐隐約約~仿佛好像在哪見過把這兩個端口做預設端口的服務。經過大腦高速運轉,以及一些殘餘的記憶。想起了多年以前遇到的treeNMS和treeDMS兩個管理系統,預設端口就是8086和8085。經過驗證,這次沒讓我和大強失望,就是這一對兄弟系統。我們利用通過XXE任意檔案讀取漏洞讀取到的admin賬号密碼組合。首先成功的進入了treeNMS系統。

登入到treeNMS

讓檔案讀取漏洞與shell環環相扣
讓檔案讀取漏洞與shell環環相扣

檢視系統資料,What F**K,這個管理端是空的。Redis沒有任何的資訊。莫慌莫慌,還有DMS系統呢。懷着忐忑的心裡繼續嘗試登入下一個。

登入treeDMS

讓檔案讀取漏洞與shell環環相扣
讓檔案讀取漏洞與shell環環相扣

此刻心情是無比激動的,大強的叫嚣聲又回來了。管理端一共有三個賬戶,密碼是通過MD5存儲的。經過反查,成功查到兩個賬号的密碼。直接登入。看看能不能有所收獲。

登入背景

讓檔案讀取漏洞與shell環環相扣
讓檔案讀取漏洞與shell環環相扣

果然不出所料。這個商品管理背景系統還是比較脆弱的。對上傳類型的檔案沒有做限制,我們通過圖示設定子產品,進行檔案上傳直接拿到了shell。當然内心的那份遺憾已經得到了很好的彌補。

讓檔案讀取漏洞與shell環環相扣

本着一顆紅心,既然進到了背景,并且在測試範圍,我們在客戶的授權下,對這個背景系統做了全面的漏洞挖掘。也挖到了不少的漏洞。我們在項目截止時間的最後一刻,完成了所有目标的測試工作。交了一份比較完美的成果,也沒有留下什麼遺憾。雖然過程沒有多麼跌宕起伏,但還是值得我們總結。

總結

漏洞挖掘與利用的過程,不僅僅是挖到一個漏洞,就簡單的利用該漏洞可能帶來的直接效果。而是通過某一漏洞不斷尋找,突破思維限制,在任何可以關聯的事件中,尋找最大化的利用程度。為什麼在漏洞挖掘與利用的過程中,你總是覺得别人都夠能找到一些你找不到的突破口。這個問題可能是你知識面比較窄,但也可能是你的思維受到限制。是以,不要讓慣性思維限制了你能力的進步。是以漏洞挖掘就是先拼技術能力,再拼思維。在技術達到某一程度後,思維決定了發展的高度。