Songcms存在任意文件删除漏洞

代码审计

代码位置

admin/UpFileManage.php 33-43

漏洞分析

此处是服务器上传的文件删除的功能点,可以看到这里对使用POST方法传入的DelFileName参数使用

unlink函数进行处理。并且没有经过任何过滤。所以此处存在任意文件删除漏洞。

image-20200628170423121

漏洞复现

首先下载安装sangcms v3.17版

http://www.songcms.com/?fdownload

我们/admin进入后台,左下角选择服务器文件管理。

image-20200628170437741

这里选择的删除文件只能限制在上传文件夹内,我们选择删除,然后使用burp抓包。

我们在网站根目录下新建1.txt文件验证

image-20200628170448524

payload如下。

1
DelFileName%5B%5D=/../1.txt&spage=%3Fdir1%3D%26dir2%3D%26page%3D1&Action=Del&button=%E5%88%A0%E9%99%A4

image-20200628170503772

成功删除了根目录下的文件。

image-20200628170512246

Songcms存在任意文件删除漏洞

代码审计

代码位置

admin/TemplateManage.php 39-50

漏洞分析

此处是模板文件删除的功能点,可以看到这里对使用GET方法传入的dir参数使用removeDir函数进行处理。我们跟进关键函数。

image-20200628170116262

removeDir函数主要对传入参数是文件夹或文件进行判断,然后直接进行了删除操作,没有经过任何过滤,存在任意文件删除漏洞。

image-20200628170136964

漏洞复现

首先下载安装sangcms v3.17版

http://www.songcms.com/?fdownload

我们/admin进入后台,左下角选择模板管理。

image-20200628170154848

选择删除该模板,然后使用burp抓包。

image-20200628170211202

我们在网站根目录下新建test文件夹验证

image-20200628170226434

payload如下。

1
GET /admin/TemplateManage.php?Action=Del&dir=/../test

image-20200628170319882

成功删除。

image-20200628170328984

Songcms存在代码执行漏洞

代码审计

代码位置

admin/ UCenterSet.php 11-50

漏洞分析

此处是插件Ucenter系统设置的功能点,可以看到这里使用POST传入设置的参数,然后使用file_put_contents函数写入到对应配置文件plugins/ucenter/config.inc.php中。img

img

跟进配置文件中

我们可以看到此处存在全局过滤,会对输入的单引号进行转义,所以带单引号的参数无法闭合,但是此处APPID无单引号,所以无需单引号即可闭合,然后插入恶意代码执行。

img

img

设置应用ID填入:

1
3);phpinfo();//

img

插入成功

img

img