【程式碼審計】YUNUCMS_v1.0.6 前臺反射型XSS跨站指令碼漏洞分析
阿新 • • 發佈:2018-12-03
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行:
- <?php
- namespace app\index\controller;
- use think\Db;
- class Tag extends Common
- {
- public function index(){
- $input = input();
- $input['title'] = urldecode($input['title']);
- 10. $this->assign($input);
- 11. return $this->fetch();
- 12. }
這段函式中接收title引數,進行urldecode處理,然後帶入引擎解析,可以發現引數未經任何過濾或處理,直接輸出到前端,導致程式在實現上存在
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對使用者引數進行編碼 。
安全程式碼示例:
- <?php
- $aa=$_GET['dd'];
- echo htmlspecialchars($aa)."123";
- ?>
最後
歡迎關注個人微信公眾號:Bypass--,每週原創一篇技術乾貨。