0x01 介绍
jspxcms是一个开源的、基于Java的内容管理系统(CMS),技术上选择JavaEE行业最先进、最主流、最稳定的技术,非常适合二次开发、功能扩展、插件开发。使用的技术包括SpringMVC 3.1、Spring 3.1、Hibernate 3.6、JSP 2.0和Freemarker 2.3等。
网上目前公布的漏洞有前台文件上传、后台getshell、目录穿越解压等,并未公布前台getshell的方法。
0x02 漏洞复现过程
在一次测试中发现,jspxcms前台可上传任意文件,但是并无权限执行木马。审计源码发现存在多处文件包含漏洞,配合使用可导致前台getshell。接下来具体说复现过程:
1.靶场信息
在jspxcms官网下载源码,部署,地址为192.168.1.1,部署过程不多介绍。
2.前台文件上传位置
访问目标站点,在注册处先任意注册一个用户

然后使用注册的用户登录,点击设置,稿件发布

文本编辑器处可上传文件,抓包

修改文件内容为木马
POST /ueditor?ueditor=true&action=uploadimage HTTP/1.1

返回报文显示文件上传成功,并返回了路径信息,尝试直接访问

403,无权限访问,有点尴尬

3.文件包含漏洞
做人不能轻言放弃,开始对源码进行审计,发现存在文件包含的漏洞

使用文件包含漏洞尝试包含刚才的木马文件,构造请求

额。。。。失败了

继续对代码进行审计,

突然想起jspxcms存在目录穿越的漏洞,配合再次尝试

命令成功执行,报文如下
POST /comment_list HTTP/1.1

最后附上另一处文件包含漏洞
GET /app?template=/../../../../../uploads/1/image/public/202101/20210129124725_4vg5r1okmf.jsp?&cmd=ifconfig HTTP/1.1

END
