前言
前段時間的比賽將該cms作為了題目考察,這個cms的洞也被大佬們吃的差不多了,自己也就借此機會來淺淺測驗下這個cms殘余漏洞,并記錄下這一整個流程,謹以此記給小白師傅們分享下思路,有錯誤的地方還望大佬們請以指正,
安裝
參考官方檔案,給出了很詳細的安裝說明,如安裝遇到問題,可到官方論壇尋找解決方法,常見安裝失敗問題都有,
https://gitee.com/iteachyou/dreamer_cms#https://gitee.com/link?target=https%3A%2F%2Fwww.iteachyou.cc%2Farticle%2F55ec2939c29147eca5bebabf19621655

該cms專案是基于springboot框架開發的,安裝的時候需要的環境為 springboot+redis+mysql+ IDEA
組態檔主要是這兩個application-prd.yml和application-dev.yml,需要配置好mysql資料庫連接、redis連接以及網頁靜態資源路徑,其余的安裝上面的一步步安裝即可,

安裝成功后訪問登陸頁面

管理員賬號密碼已經給了,直接登錄,

漏洞測驗
風格管理模板存在任意編輯檔案實作命令執行
經測驗,發現后臺風格管理模板上傳主題壓縮包時可以進行污染壓縮包theme.json檔案,達到目錄穿越到服務器敏感目錄,從而在模板管理在決議時沒有進行檢測可以任意編輯系統敏感檔案導致GetShell,控制服務器權限,
漏洞產生的主要檔案:主題上傳Controller檔案:src/main/java/cc/iteachyou/cms/controller/admin/ThemesController.java, 找到add方法,

首先是判斷檔案是否存在以及JSON決議是否正確;判斷Key是否都存在;判斷對應值是否為空;創建theme物件;判斷設定路徑是否已"default"開頭,最后校驗主題包各種配置是否正確,確認的話就成功上傳,
【----幫助網安學習,以下所有學習資料免費領!加vx:yj009991,備注 “博客園” 獲取!】
① 網安學習成長路徑思維導圖
② 60+網安經典常用工具包
③ 100+SRC漏洞分析報告
④ 150+網安攻防實戰技術電子書
⑤ 最權威CISSP 認證考試指南+題庫
⑥ 超1800頁CTF實戰技巧手冊
⑦ 最新網安大廠面試題合集(含答案)
⑧ APP客戶端安全檢測指南(安卓+IOS)
但是沒有對themePath路徑問題進行檢測,便可構造目錄穿越,這也是該漏洞造成的關鍵原因,
最后是判斷上傳的壓縮包里的各類資訊無誤后進入處理保存檔案邏輯的save方法,

在上傳的主題包里的\dreamer\dreamer-cms\templates\default_v3\theme.json檔案,將目錄穿越的構造替換主題包路徑,更改之后theme.json檔案內容如下:
{
"themeName":"新版主題",
"themeImage":"http://localhost:8888/resource/img/dreamercms-logo.png",
"themeAuthor":"",
"themePath":"../../../../../../../../../../../../../../"//此路徑要和模板檔案夾的名稱一致
}
雖然有檢測,但是在之前themeDir已經被污染了,所以相當于檢測相當于沒有,接著檢查是否有權限,startwith方法也沒有問題,
``
最后就是保存檔案,到此時后臺模板已被剛剛傳入的構造污染,可以進行利用,效果如下:
將修改后的主題包上傳

風格頁面會多出一個新的主題

點擊啟用,然后查看模板管理頁面,發現目錄穿越成功,成功進入服務器的根目錄,這時就相當于在自己服務器上編輯修改檔案,

測驗檔案為/home/www 目錄下的1.txt檔案,原本是空檔案,

在頁面修改該檔案,添加內容

然后保存,再到服務器里查看,成功將內容加入,

如果修改authorized_key檔案便可進行免密登錄,利用壓縮校驗不正確從而上傳任意危險檔案,例如一句話木馬等來獲取系統權限;還可以獲取系統passwd檔案獲取敏感資訊,也可以寫計劃任務進行命令執行,
該漏洞分析到此為止,接著是附件管理模板可以進行任意檔案下載、洗掉,
#
附件管理模板可以進行任意檔案下載、洗掉,
漏洞產生主要檔案:
src/main/java/cc/iteachyou/cms/controller/admin/AttachmentController.java添加附件功能的代碼如下:

首先肯定是先添加附件,這里沒有對attachment引數進行過濾,導致保存附件的時候目錄穿越的構造就被保留了下來,對其進行決議后就可以將服務器的指定檔案隨意下載、洗掉,從而對服務器構成威脅,
下載、洗掉功能的代碼都在同一個檔案,都是通過剛剛的attachment引數,然后使用attachment.getFilepath()獲取服務器檔案路徑,對其進行決議,
先看下載功能的代碼:

這里也沒有對 filePath變數進行過濾,所以總的來說就是添加附件和下載附件的兩處代碼,都沒有對相應的變數進行檢測過濾,從而導致漏洞產生,
洗掉功能的代碼:

洗掉的話就沒什么好說的,和上面一樣的原理,試想下,如果可以任意洗掉服務器的組態檔,那不就相當于服務器要崩的節奏,
漏洞演示如下:
還是利用剛剛/home/www目錄下的1.txt檔案

在添加附件模塊先隨便上傳一個本地檔案(這里隨便上傳了一個theme.txt檔案)

burpsuite抓包如下

需要改的就是這個filepath引數對應的檔案路徑,將其修改為
../../../../../../../../../../../../../home/www/1.txt
然后放包,

重繪頁面,觀察到多了一個theme.txt檔案,下載下來并打開內容如下:


服務器里的/home/www/1.txt里的內容193840sswwloP 已成功寫入本地theme.txt檔案,任意下載檔案成功,
洗掉效果,點擊右邊的洗掉,

發現該1.txt檔案被洗掉了,任意洗掉檔案成功,
#
模板管理存在任意檔案包含
產生漏洞的主要檔案:src/main/java/cc/iteachyou/cms/taglib/tags/IncludeTag.java

If陳述句只是簡單判斷值是否為空,但是沒有檢測過濾字符,導致可以傳入目錄穿越的構造../../../../../../../../../../../../../home/www/1.txt進行檔案包含,讀取里面內容,接著在模板管理找到index_about.html
將../../../../../../../../../../../../../home/www/1.txt寫入div標簽并保存,如下圖

接著訪問主頁里的關于我們:

可以看到,成功進行了檔案包含,如將構造/home/www/1.txt換成/etc/passwd這類敏感檔案,則被攻擊者獲取到關鍵資訊,這里也測驗下:修改構造

頁面如期輸出/etc/passwd檔案里的資訊,

總結
本文測驗是在該cms舊版本上進行的,新版本對已有問題已進行了修復,這次對該java實作的cms漏洞挖掘識訓滿滿,對cms安裝、部署以及代碼審計中要注意的點得到了良好的鍛煉,
更多網安技能的在線實操練習,請點擊這里>>
合天智匯:合天網路靶場、網安實戰虛擬環境
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/551943.html
標籤:其他
下一篇:返回列表
