0x00 前言
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.代码分析
位置:dapurappsapp_configcontrollerackuper.php
从第16行代码可以看到,当判断备份类型为database后直接通过unlink函数对文件进行删除,并且文件位置只是通过POST方法传值没有经过任何处理就和../../../../.backup/
进行拼接,造成任意文件删除漏洞。