feifeicms 4.0 幾處任意文件刪除
阿新 • • 發佈:2018-12-10
訪問 watermark oss image action del ffffff index rss 1、位置Lib/Lib/Action/Admin/DataAction.class.php,兩處
備份成功
下面構造文件刪除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
可以看到文件已刪除。
未經處理的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
可以看到文件已刪除。
feifeicms 4.0 幾處任意文件刪除