songcms代码审计
Songcms存在任意文件删除漏洞
代码审计
代码位置
admin/UpFileManage.php 33-43行
漏洞分析
此处是服务器上传的文件删除的功能点,可以看到这里对使用POST方法传入的DelFileName参数使用
unlink函数进行处理。并且没有经过任何过滤。所以此处存在任意文件删除漏洞。
漏洞复现
首先下载安装sangcms v3.17版
http://www.songcms.com/?fdownload
我们/admin进入后台,左下角选择服务器文件管理。
这里选择的删除文件只能限制在上传文件夹内,我们选择删除,然后使用burp抓包。
我们在网站根目录下新建1.txt文件验证
payload如下。
1 | DelFileName%5B%5D=/../1.txt&spage=%3Fdir1%3D%26dir2%3D%26page%3D1&Action=Del&button=%E5%88%A0%E9%99%A4 |
成功删除了根目录下的文件。
Songcms存在任意文件删除漏洞
代码审计
代码位置
admin/TemplateManage.php 39-50行
漏洞分析
此处是模板文件删除的功能点,可以看到这里对使用GET方法传入的dir参数使用removeDir函数进行处理。我们跟进关键函数。
removeDir函数主要对传入参数是文件夹或文件进行判断,然后直接进行了删除操作,没有经过任何过滤,存在任意文件删除漏洞。
漏洞复现
首先下载安装sangcms v3.17版
http://www.songcms.com/?fdownload
我们/admin进入后台,左下角选择模板管理。
选择删除该模板,然后使用burp抓包。
我们在网站根目录下新建test文件夹验证
payload如下。
1 | GET /admin/TemplateManage.php?Action=Del&dir=/../test |
成功删除。
Songcms存在代码执行漏洞
代码审计
代码位置
admin/ UCenterSet.php 11-50行
漏洞分析
此处是插件Ucenter系统设置的功能点,可以看到这里使用POST传入设置的参数,然后使用file_put_contents函数写入到对应配置文件plugins/ucenter/config.inc.php中。
跟进配置文件中
我们可以看到此处存在全局过滤,会对输入的单引号进行转义,所以带单引号的参数无法闭合,但是此处APPID无单引号,所以无需单引号即可闭合,然后插入恶意代码执行。
设置应用ID填入:
1 | 3);phpinfo();// |
插入成功
Author: Shu1L
Link: https://shu1l.github.io/2020/06/28/songcms-dai-ma-shen-ji/
License: 知识共享署名-非商业性使用 4.0 国际许可协议