feifeicms 4.0 幾處任意檔案刪除
阿新 • • 發佈:2018-12-10
1、位置Lib/Lib/Action/Admin/DataAction.class.php,兩處
未經處理的GET和POST引數直接拼接到路徑後,造成檔案刪除。但實際本地測試發現_bak資料夾預設是不存在的,需要進行備份功能後才能生成。
全域性搜尋_bak欄位,找到一處_bak資料夾的建立,在Lib/Lib/Action/Admin/DataAction.class.php 51行的write_file函式。
進入write_file函式,可以看到內部呼叫了封裝了的mkdir方法mkdirss
現在構造payload,需要先備份使建立_bak資料夾。這裡需要滿足strlen($sql) >= $filesize*1000。
備份成功
下面構造檔案刪除payload,訪問http://localhost:8888/4.0.181010/index.php?s=/admin-data-del&id=../../../../../../../../../Users/xx/Desktop/123.txt ,刪除123.txt檔案
另一處原理相同,這裡不再測試。
2、位置Lib/Lib/Action/Admin/TplAction.class.php,88
可以看到id引數沒有做過濾,是可以進行任意檔案刪除的。測試時在桌面上建立123.txt,構造payload為http://localhost:8888/4.0.181010/index.php?s=/admin-tpl-del&id=/Users/xx/Desktop/123.txt
可以看到檔案已刪除。