帝國CMS(EmpireCMS) v7.5 后台XSS漏洞分析


帝國CMS(EmpireCMS) v7.5 后台XSS漏洞分析

一、漏洞描述

該漏洞是由於代碼只使用htmlspecialchars進行實體編碼過濾,而且參數用的是ENT_QUOTES(編碼雙引號和單引號),還有addslashes函數處理,但是沒有對任何惡意關鍵字進行過濾,從而導致攻擊者使用別的關鍵字進行攻擊。

二、漏洞復現

1、漏洞出現的頁面在/e/admin/openpage/AdminPage.php,瀏覽漏洞頁面代碼,發現使用hRepPostStr函數對leftfile、title、mainfile參數進行處理

  

2、跟進hRepPostStr函數,發現htmlspecialchars進行實體編碼過濾,而且參數用的是ENT_QUOTES(編碼雙引號和單引號)

  

3、繼續瀏覽代碼,發現使用CkPostStrChar函數對參數進行處理

  

4、跟進CkPostStrChar函數,處理編碼字符

  

5、繼續瀏覽代碼,發現又使用了AddAddsData函數對參數進行處理

  

6、跟進AddAddsData函數,分析代碼:如果沒有開啟magic_quotes_gpc函數,就使用addslashes函數對參數中的特殊字符進行轉義處理

  

7、繼續瀏覽代碼,發現在網頁輸出時, $leftfile、$mainfile參數的輸出位置是iframe標簽的src里面,由於代碼沒有對別的惡意字符進行處理,此時可以構造javascript:alert(/xss/),iframe標簽可以執行javascript代碼,此時就會觸發XSS代碼。

  

8、瀏覽器訪問構造的payload,提示非法來源

Payload: http://192.168.10.171/empirecms/e/admin/openpage/AdminPage.php?mainfile=javascript:alert(/xss/)

  

9、此時發現別的頁面url地址中都會存在hash參數,例如ehash_f9Tj7=ZMhwowHjtSwqyRuiOylK,這個參數是隨機生成的,如果缺少這個參數,會提示非法來源

  

10、再次構造payload,瀏覽器訪問,成功觸發XSS

Payload: http://192.168.10.171/empirecms/e/admin/openpage/AdminPage.php?ehash_f9Tj7=ZMhwowHjtSwqyRuiOylK&mainfile=javascript:alert(/xss/)

  

11、通過XSS漏洞獲取cookie

http://192.168.10.171/empirecms/e/admin/openpage/AdminPage.php?ehash_f9Tj7=ZMhwowHjtSwqyRuiOylK&mainfile=javascript:alert(document.cookie)

  

 

 

 

 

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

參考: https://www.freebuf.com/vuls/176313.html


免責聲明!

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



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