ThinkCMF框架任意檔案包含漏洞學習復現小記

2021-10-24 15:00:53 字數 864 閱讀 9738

跟隨大佬學習,了解學習了thinkcmf任意檔案包含漏洞,並進行了一次滲透,下面來寫個學習筆記記錄一下

thinkcmf x1.6.0

thinkcmf x2.1.0

thinkcmf x2.2.0

thinkcmf x2.2.1

thinkcmf x2.2.2

任何人在無需任何許可權情況下,通過構造特定的請求包即可在遠端伺服器上執行任意**。

引起漏洞最主要的問題就是因為fetch函式和display函式是public型別

fetch函式的作用是獲取頁面內容,呼叫內建模板引擎fetch方法,thinkphp的模版引擎使用的是smarty,在smarty中當key和value可控時便可以形成模板注入。

display函式的作用是載入模板和頁面輸出,所對應的引數為:templatefile模板檔案位址,charset模板字符集,contenttype輸出型別,content輸出內容。

fetch和display的用法差不多,二者的區別就是display方法直接輸出模板檔案渲染後的內容,而fetch方法是返回模板檔案渲染後的內容。

可以通過漏洞成因看出來,引起漏洞最主要的原因就是fetch和display函式是public,可以在外面被訪問,因此修復方案就是將 homebasecontroller.class.php 和 adminbasecontroller.class.php 類中 display 和 fetch 函式的修飾符改為 protected,使他們無法在外面被訪問。

ThinkCMF框架任意內容包含漏洞復現

thinkcmf是一款基於php mysql開發的中文內容管理框架,底層採用thinkphp3.2.3構建。利用此漏洞無需任何許可權情況下,構造惡意的url,可以向伺服器寫入任意內容的檔案,實現遠端 執行 1 thinkcmf x1.6.0 2 thinkcmf x2.1.0 3 thinkcmf ...

通達OA未授權任意檔案上傳和任意檔案包含漏洞復現

建立乙個上傳的頁面 開啟後,上傳乙個jpg,內容如下 儲存為jpg phpwsh new com wscript.shell or die create wscript.shell failed exec phpwsh exec cmd.exe c post cmd stdout exec stdo...

任意檔案打包進apk

預設情況android工程下的assets目錄下的所有檔案都會原封不動的打包進apk中,但apk安裝後這些檔案卻不會解包出來。只能使用inputstream和fileoutputstream將這些檔案寫入到需要的位置。inputstream is getresources getassets ope...