PublicCMS是目前網站系統中第一個採用JAVA架構 TOMCAT+Apcche+Mysql數據庫架構的CMS網站,開源,數據承載量大,能夠承載到上千萬的數據量,以及用戶的網站併發可達到上千萬的PV,PublicCMS靜態全站html,訪問速度極快,模板樣式多,可本身設計,第三方的API接口也不少,深受網站運營者的喜歡。最重要的是開源,免費升級,支持動靜分離,數據庫及時備份等功能。php
SINE安全於最近對該PublicCMS的系統進行全面代碼安全檢測,發現該PublicCMS系統存在網站漏洞,該漏洞能夠對網站的任意目錄下上傳任意格式的文件,好比jar格式,JSP格式,war格式的腳本木馬。下面針對於PublicCMS,咱們進行詳細的分析以及漏洞的如何利用。咱們首先來搭建該系統的網站環境,使用Apache +Tomcat+Mysql數據庫的一鍵安裝環境包進行搭建,可使用phpstudy來搭建,快捷,方便,穩定,能夠隨時切換服務器的環境版本,以及架構搭建好後,咱們先登陸下網站的後臺,以下圖:html
咱們首先來搭建該系統的網站環境,使用Apache +Tomcat+Mysql數據庫的一鍵安裝環境包進行搭建,可使用phpstudy來搭建,快捷,方便,穩定,能夠隨時切換服務器的環境版本,以及架構。搭建好後,咱們先登陸下網站的後臺,以下圖:java
那麼怎樣才能上傳到任意文件夾下呢? 好比我要上傳到網站的根目錄下該怎麼弄呢?由於PublicCMS存在能夠構造zip文件,並指定解壓到任意目錄。咱們來構造一下ZIP,建立一個文件,名稱爲:../../../../../../../../apache-tomcat-7.0.81/webapps/publiccms/safe.jsp,而後經過後臺上傳上去便可。上傳後咱們訪問網站根目錄下safe.jsp 直接執行命令以下圖:web
PublicCMS網站漏洞是如何產生的呢?sql
controller目錄下\admin\cms\CmsWebFileAdminController.java代碼裏的uzip調用方式上出現了漏洞,該系統採用的是dounzip的方式去調用,dounzip是解壓縮經常使用到的,因此上傳ZIP文件的時候,自動解壓縮了。致使咱們能夠構造特殊的文件名,來將咱們的腳本木立刻傳到網站任意目錄下。數據庫
該代碼經過獲取targetPath的上傳路徑值與壓縮文件裏的名字進行自動拼接,在拼接的這個過程中,../ 能夠對目錄進行跨站。網站漏洞產生最根本的緣由就是在處理這個壓縮文件的時候並無對壓縮裏的文件名進行判斷與過濾,致使可使用特殊的文件名進行定義,並傳入到服務器後端執行代碼,經過上傳JSP木馬後門,能夠直接對服務器進行控制,危害性較高。apache
關於PublicCMS網站漏洞修復後端
已講該漏洞報告給PublicCMS官方(天津黑核科技有限公司),並告知漏洞產生的具體細節,官方已對該漏洞進行了修復,請使用該PublicCMS網站的客戶,儘快升級到最新版本便可。tomcat