0x00 前言
以下爲fiyocms2.0.6.1版本的一些漏洞復現過程及代碼分析。
0x01 任意文件上傳
1.漏洞復現
漏洞位置:Dashboard》Themes》default》Files
點擊Simpan時抓包,將src參數和content參數修改爲新建文件名和其內容
嗯哼~~
2.代碼分析
位置:\fiyocms/dapur/apps/app_theme/libs/save_file.php
從27行代碼可以看到利用file_get_contents()
函數將c
參數的內容保存到f
參數的文件上,但是沒有對f和c進行任何處理,直接通過POST方法傳值,從而造成任意文件上傳漏洞。
0x02 任意文件讀取
1.漏洞復現
漏洞位置:admin》Themes》default》Files
點擊index.php時抓包
修改參數,讀取成功
2.代碼分析
位置:/dapur/apps/app_theme/libs/check_file.php
從第13、14行代碼可以看出,通過get
方法得到文件路徑和文件名後進行拼接直接賦值給$file
,再賦值給$furl
,然後沒有經過任何處理直接在23行通過file_get_contents()方法讀取$furl
,因此存在任意文件讀取漏洞。
0x03 任意文件刪除
1.漏洞復現
漏洞位置:admin》Settings》Backup
點擊Backup時抓包
修改file參數
刪除成功~~
2.代碼分析
位置:dapur\apps\app_config\controller\backuper.php
從第16行代碼可以看到,當判斷備份類型爲database後直接通過unlink函數對文件進行刪除,並且文件位置只是通過POST方法傳值沒有經過任何處理就和../../../../.backup/
進行拼接,造成任意文件刪除漏洞。