1. 程式人生 > >【程式碼審計】YUNUCMS_v1.0.6 前臺反射型XSS跨站指令碼漏洞分析

【程式碼審計】YUNUCMS_v1.0.6 前臺反射型XSS跨站指令碼漏洞分析

 

0x00 環境準備

QYKCMS官網:http://www.yunucms.com

網站原始碼版本:YUNUCMSv1.0.6

程式原始碼下載:http://www.yunucms.com/Download/index.html

測試網站首頁:

 

0x01 程式碼分析

1、漏洞檔案位置:/app/index/controller/Tag.php  第1-12行:

  1. <?php  
  2. namespace app\index\controller;  
  3. use think\Db;  
  4.   
  5. class Tag extends Common  
  6. {  
  7.     public function index(){  
  8.         $input = input();  
  9.         $input['title'] = urldecode($input['title']);  
  10. 10.         $this->assign($input);  
  11. 11.         return $this->fetch();  
  12. 12.     }  

這段函式中接收title引數,進行urldecode處理,然後帶入引擎解析,可以發現引數未經任何過濾或處理,直接輸出到前端,導致程式在實現上存在

XSS跨站指令碼漏洞,攻擊者通過該漏洞可在頁面中插入惡意js程式碼,獲得使用者cookie等資訊,導致使用者被劫持。

0x02 漏洞利用

1、構造連結:

http://127.0.0.1/index.php/index/tag/index?title=1111</title><script>alert(/xss/)</script><title>

 

0x03 修復建議

1、建議進行全域性防護,對部分單點進行過濾;

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

安全程式碼示例:

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

 

最後

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