1. 程式人生 > >【程式碼審計】大米CMS_V5.5.3 後臺多處儲存型XSS漏洞分析

【程式碼審計】大米CMS_V5.5.3 後臺多處儲存型XSS漏洞分析

 

0x00 環境準備

大米CMS官網:http://www.damicms.com

網站原始碼版本:大米CMS_V5.5.3試用版(更新時間:2017-04-15)

程式原始碼下載:http://www.damicms.com/downes/dami.rar

測試網站首頁:

 

0x01 程式碼分析

1、漏洞檔案位置:/Admin/Lib/Action/keyAction.class.php 第34-59行中:

2、  public function add()  

3、     {  

4、         $this->display('add');  

5、     }  

6、    

7、  public function doadd()  

8、     {  

9、      $key = M('key');  

10、     $key->create();   

11、     if($key->add())  

12、     {  

13、         $this->assign("jumpUrl",U('Key/index'));  

14、         $this

->success('操作成功!');  

15、     }  

16、     $this->error('操作失敗!');  

17、    }  

在這段函式中,當新增內容的時候首頁使用M函式用於例項化,然後進行增加,未經任何處理將內容直接寫入資料庫,輸入輸出都沒有做任何處理,導致程式在實現上存在儲存型XSS跨站指令碼漏洞,允許攻擊者可在頁面中插入惡意js程式碼,獲得使用者cookie等資訊,導致使用者被劫持。

2、全域性搜尋這個函式,發現多個檔案存在相同的程式碼描述,均存在儲存型XSS跨站指令碼漏洞,具體在漏洞利用環節進行展示:

 

0x02 漏洞利用

1、登入後臺,網站後臺--文章內鏈--新增關鍵字—填寫XSS Payload:

123<script>alert(`xss`)</script>

 

2、網站後臺--幻燈管理--新增幻燈--XSS payload:

123<script>alert(`xss`)</script>

 

3、網站後臺--單頁標籤--新增標籤--XSS Paylod:

123<script>alert(`xss`)</script>

 

4、網站後臺--廣告管理--新增廣告--XSS Paylod:

123<script>alert(`xss`)</script>

 

0x03 修復建議

1、對引數做html轉義過濾(要過濾的字元包括:單引號、雙引號、大於號、小於號,&符號),防止指令碼執行。在變數輸出時進行HTML ENCODE處理。 PHP應用:可以使用htmlspecialchars對使用者引數進行編碼 。

安全程式碼示例:

  1. <?php  
  2.      $aa=$_GET['dd'];  
  3.      echo htmlspecialchars($aa)."123";  
  4.  ?>  

 

最後

歡迎關注個人微信公眾號:Bypass--,每週原創一篇技術乾貨。