WTCMS一处文件上传getshell
0x00 简述 下载地址:https://github.com/taosir/wtcms 对于后台文件上传过滤不严,可以修改文件上传php木马 0x01 演示 1、登录后台后,进入注册邮件模板功能 2、使用编辑器上传一张图片,并抓包修改文件名及文件内容 3、访问上传的php文件 0x02 代码分析 /wtcms-master/application/Asset/Controller/Ued
0x00 简述
下载地址:https://github.com/taosir/wtcms
对于后台文件上传过滤不严,可以修改文件上传php木马
0x01 演示
1、登录后台后,进入注册邮件模板功能

2、使用编辑器上传一张图片,并抓包修改文件名及文件内容


3、访问上传的php文件

0x02 代码分析
/wtcms-master/application/Asset/Controller/UeditorController.class.php
这里用的ueditor进行上传,这里只要保证action是uploadimage、uploadscrawl、uploadvideo、uploadfile中的一个使得能进入_ueditor_upload函数就可以

跟进_ueditor_upload函数,获取上传文件信息后调用了upload函数进行上传

继续跟进upload,最开始是一些常规检查包括文件有无、上传目录等。后面通过pathinfo获取文件后缀名,因为这里我们修改了请求包,所以$file['ext']的值就是php。接着调用了check函数进行上传检测。

这里我们只要看文件后缀名的检查就好了

但是到这里,config['exts']的值没有定义,为null,所以checkExt()会返回true

最后看下文件保存,config['saveExt']的值为空,所以这里取得后缀是之前pathinfo得出的后缀名也就是php,成功在服务器目录下生成php文件
