PublicCMS 网站漏洞 任意文件写入并可提权服务器权限
PublicCMS是目前网站系统中第一个采用JAVA架构 TOMCAT+Apcche+Mysql数据库架构的CMS网站,开源,数据承载量大,可以承载到上千万的数据量,以及用户的网站并发可达到上千万的PV,PublicCMS静态全站html,访问速度极快,模板样式多,可自己设计,第三方的API接口也很多,深受网站运营者的喜欢。最重要的是开源,免费升级,支持动静分离,数据库及时备份等功能。
SINE安全于最近对该PublicCMS的系统进行全面代码安全检测,发现该PublicCMS系统存在网站漏洞,该漏洞可以对网站的任意目录下上传任意格式的文件,比如jar格式,JSP格式,war格式的脚本木马。下面针对于PublicCMS,我们进行详细的分析以及漏洞的如何利用。我们首先来搭建该系统的网站环境,使用Apache +Tomcat+Mysql数据库的一键安装环境包进行搭建,可以使用phpstudy来搭建,快捷,方便,稳定,可以随时切换服务器的环境版本,以及架构搭建好后,我们先登录下网站的后台,如下图:
我们首先来搭建该系统的网站环境,使用Apache +Tomcat+Mysql数据库的一键安装环境包进行搭建,可以使用phpstudy来搭建,快捷,方便,稳定,可以随时切换服务器的环境版本,以及架构。搭建好后,我们先登录下网站的后台,如下图:
那么怎样才能上传到任意文件夹下呢? 比如我要上传到网站的根目录下该怎么弄呢?因为PublicCMS存在可以构造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网站的客户,尽快升级到最新版本即可。
PublicCMS 网站漏洞 任意文件写入并可提权服务器权限的更多相关文章
- 修复网站漏洞对phpmyadmin防止被入侵提权的解决办法
phpmyadmin是很多网站用来管理数据库的一个系统,尤其是mysql数据库管理的较多一些,最近phpmysql爆出漏洞,尤其是弱口令,sql注入漏洞,都会导致mysql的数据账号密码被泄露,那么如 ...
- ActiveMQ任意文件写入漏洞(版本在5.12.X前CVE-2016-3088)
ActiveMQ任意文件写入漏洞(版本在5.12.X前CVE-2016-3088) 查看docker的activemq版本命令:$ docker ps | grep activemq927860512 ...
- 致远A8任意文件写入漏洞_getshell_exp
近期爆出致远 OA 系统的一些版本存在任意文件写入漏洞,远程攻击者在无需登录的情况下可通过向 URL /seeyon/htmlofficeservlet POST 精心构造的数据即可向目标服务器写入任 ...
- Apache ActiveMQ任意文件写入漏洞(CVE-2016-3088)复现
Apache ActiveMQ任意文件写入漏洞(CVE-2016-3088)复现 一.漏洞描述 该漏洞出现在fileserver应用中,漏洞原理:ActiveMQ中的fileserver服务允许用户通 ...
- Aria2任意文件写入漏洞
目录: 简介 漏洞描述 payload 漏洞复现 一.Aria2介绍 Aria2是一个命令行下运行,多协议,多来源下载工具(HTTP / HTTPS,FTP,BitTorrent,Metalink), ...
- JeeCMS v7 SSRF导致任意文件写入
前言: 学习大佬的思路. from先知社区:https://xz.aliyun.com/t/4809 00X1: 是/ueditor/getRemoteImage.jspx 接口 通过构造upfile ...
- ActiveMQ反序列化(CVE-2015-5254) && ActiveMQ任意文件写入 (CVE-2016-3088)
ActiveMQ 反序列化漏洞(CVE-2015-5254) 漏洞详情 ActiveMQ启动后,将监听61616和8161两个端口,其中消息在61616这个端口进行传递,使用ActiveMQ这个中间件 ...
- ActiveMQ任意文件写入漏洞(CVE-2016-3088)
上传webshell 容器用vulhub的 PUT一个jsp文件 MOVE到api目录 默认的ActiveMQ账号密码均为admin,首先访问http://your-ip:8161/admin/tes ...
- 漏洞复现-ActiveMq任意文件写入漏洞(CVE-2016-3088)
0x00 实验环境 攻击机:Win 10 靶机也可作为攻击机:Ubuntu18 (docker搭建的vulhub靶场) 0x01 影响版本 未禁用PUT.MOVE等高危方法的ActiveM ...
随机推荐
- mongodb 3.4 学习 (五)备份&恢复
备份恢复命令 mongodump -h 127.0.0.1 -p 27017 -o /opt/backup -u app -p '@app' --collection demo --db app -- ...
- [libxml2]_[XML处理]_[使用libxml2的xpath特性修改xml文件内容]
场景: 1.在软件需要保存一些配置项时,使用数据库的话比较复杂,查看内容也不容易.纯文本文件对utf8字符支持也不好. 2.这时候使用xml是最佳选择,使用跨平台库libxml2. 3.基于xpath ...
- Python 用多线程上传和下载文件
# -*- coding: utf-8 -*- __author__ = 'louis' from ftplib import FTP import multiprocessing import ti ...
- GetClassLoader和GetCallerClass的使用
GetClassLoader是JAVA中用来得到ClassLoader的 JAVA中有以下几种ClassLoader. 1. Bootstrap ClassLoader - GetClassLoad ...
- HashMap面试知识点
HashMap的工作原理是近年来常见的Java面试题. 几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如 ...
- logback.xml常用配置
一.logback的介绍 Logback是由log4j创始人设计的又一个开源日志组件.logback当前分成三个模块:logback-core,logback- classic和logback-acc ...
- Python-time和datetime模块
一.time模块 1.表示时间的三种方式 >>> import time >>> time.time() #当前时间戳 1509525556.8485825 > ...
- 卸载由源码编译安装的软件(如OpenCV)
看安装软件的时候有没有使用--prefix这个参数,如果有那就把你指定的文件给删除了就行了. 如果没有用这个参数就麻烦一点了,那就进入到软件解压后的目录,执行sudo make uninstall看能 ...
- Android学习笔记_61_手机安全卫士知识点归纳(1)状态/形状图形 GPS 设备管理器DeviceAdminReceiver ImageView属性
1.在做程序自动安装更新的时候 ,必须保证程序的签名和包名是相同. C:\Documents and Settings\zehua\.android \ debug.keystore debug ...
- java交换两个值的三种方法 经典
1.中间变量(在开发中常用) int c=a; a=b; b=c; System.out.println("a的值: "+a+" b的值: "+b); 2.按位 ...