PublicCMS 网站漏洞 任意文件写入并可提权服务器权限



        PublicCMS是目前网站系统中第一个采用JAVA架构 TOMCAT+Apcche+Mysql数据库
 
架构的CMS网站,开源,数据承载量大,可以承载到上千万的数据量,以及用户的网站并发可

达到上千万的PV,PublicCMS静态全站html,访问速度极快,模板样式
多,可自己设计,第三

方的API接口也很多,深受网站运营者的喜欢。最重要的是
开源,免费升级,支持动静分离,数

据库及时备份等功能。

 
 
SINE安全于最近对该PublicCMS的系统进行全面代码安全检测,发现该PublicCMS系统存在网站

漏洞,该漏洞可以对网站的任意目录下上传任意格式的文件,比如jar
格式,JSP格式,war格式

的脚本木马。下面针对于PublicCMS,我们进行详细的分
析以及漏洞的如何利用。
 
 
我们首先来搭建该系统的网站环境,使用Apache +Tomcat+Mysql数据库的一键安装环境包进

行搭建,可以使用phpstudy来搭建,快捷,方便,稳定,可以随时切换服
务器的环境版本,以

及架构。

搭建好后,我们先登录下网站的后台,如下图:

 
 
从上面后台里可以看出我们的网站目录路径是放在C:\omcatapache-tomcat

-
7.0.81\webapps\publiccms\文件夹下,之前我们对网站的上传目录测试了一下,正常会上传到

不是网站的根目录下,而是其他的文件夹里,是C:\omcatapache-
tomcat-7.0.81\uploads文件

夹里,这个目录不是对外访问的,网站访问不到的,
只可以加载。

 
那么怎样才能上传到任意文件夹下呢? 比如我要上传到网站的根目录下该怎么弄呢?因为Public

CMS存在可以构造zip文件,并指定解压到任意目录。我们来构造一
下ZIP,创建一个文件,名

称为:../../../../../../../../apache-tomcat-
7.0.81/webapps/publiccms/safe.jsp,然后通过后台上

传上去即可。
上传后我们访问网站根目录下safe.jsp 直接执行命令如下图:

 
PublicCMS网站漏洞是如何产生的呢?

 
controller目录下\admin\cms\CmsWebFileAdminController.java代码里的uzip调用方式上出

现了漏洞,该系统采用的是dounzip的方式去调用,dounzip是解压缩常
用到的,所以上传ZIP文

件的时候,自动解压缩了。导致我们可以构造特殊的文件
名,来将我们的脚本木马上传到网站

任意目录下。


 
 
该代码通过获取targetPath的上传路径值与压缩文件里的名字进行自动拼接,在拼接的这个过程

当中,../ 可以对目录进行跨站。网站漏洞产生最根本的原因就是在
处理这个压缩文件的时候并

没有对压缩里的文件名进行判断与过滤,导致可以使用
特殊的文件名进行定义,并传入到服务器

后端执行代码,通过上传JSP木马后门,
可以直接对服务器进行控制,危害性较高。
 
 
关于PublicCMS网站漏洞修复
 
已讲该漏洞报告给PublicCMS官方(天津黑核科技有限公司),并告知漏洞产生的具体细节,官

方已对该漏洞进行了修复,请使用该PublicCMS网站的客户,尽快升
级到最新版本即可。
分享: