1. 程式人生 > >feifeicms 4.0 幾處任意檔案刪除

feifeicms 4.0 幾處任意檔案刪除

1、位置Lib/Lib/Action/Admin/DataAction.class.php,兩處

feifeicms 4.0 幾處任意檔案刪除
未經處理的GET和POST引數直接拼接到路徑後,造成檔案刪除。但實際本地測試發現_bak資料夾預設是不存在的,需要進行備份功能後才能生成。
全域性搜尋_bak欄位,找到一處_bak資料夾的建立,在Lib/Lib/Action/Admin/DataAction.class.php 51行的write_file函式。
feifeicms 4.0 幾處任意檔案刪除
進入write_file函式,可以看到內部呼叫了封裝了的mkdir方法mkdirss
feifeicms 4.0 幾處任意檔案刪除
現在構造payload,需要先備份使建立_bak資料夾。這裡需要滿足strlen($sql) >= $filesize*1000。
feifeicms 4.0 幾處任意檔案刪除


備份成功
feifeicms 4.0 幾處任意檔案刪除
下面構造檔案刪除payload,訪問http://localhost:8888/4.0.181010/index.php?s=/admin-data-del&id=../../../../../../../../../Users/xx/Desktop/123.txt ,刪除123.txt檔案
feifeicms 4.0 幾處任意檔案刪除
另一處原理相同,這裡不再測試。
2、位置Lib/Lib/Action/Admin/TplAction.class.php,88
feifeicms 4.0 幾處任意檔案刪除
可以看到id引數沒有做過濾,是可以進行任意檔案刪除的。測試時在桌面上建立123.txt,構造payload為http://localhost:8888/4.0.181010/index.php?s=/admin-tpl-del&id=/Users/xx/Desktop/123.txt
feifeicms 4.0 幾處任意檔案刪除

可以看到檔案已刪除。