當前位置:
首頁 > 新聞 > KindEditor開源富文本編輯框架XSS漏洞

KindEditor開源富文本編輯框架XSS漏洞

*原創作者:衛士通 安全服務事業部 天龍,葉龍,本文屬FreeBuf原創獎勵計劃,未經許可禁止轉載


0×01 前言

KindEditor 是一套開源的在線HTML編輯器,主要用於讓用戶在網站上獲得所見即所得編輯效果,開發人員可以用 KindEditor 把傳統的多行文本輸入框(textarea)替換為可視化的富文本輸入框。

KindEditor 使用 JavaScript 編寫,可以無縫地與 Java、.NET、PHP、ASP等程序集成,比較適合在CMS、商城、論壇、博客、Wiki、電子郵件等互聯網應用上使用。

在最近的滲透測試工作中,接觸到了KindEditor輸入框架,經過幾番測試發現代碼對XSS的防護還是挺全面的,感覺到底是開源代碼,就是不一樣,但是總感覺哪裡不對,也就邊放棄邊繼續。

最終發現該框架還是存在一個XSS注入的問題,而且由於利用框架的時候都會將用戶輸入存入資料庫,並對其他用戶進行展示,進而引發了危害巨大的存儲型XSS漏洞。


0×02 測試過程

首先,你得找到一個(女朋友)使用這種框架的網站,通過查看載入的js文件確認是否包含KindEditor框架(外觀如下圖):

然後開始測試,隨意輸入一段字元

我們找的示例網站中,在本地對提交的數據進行了編碼,但是很明顯可以看出是ASCII Hex編碼,解碼看到明文。

然後嘗試輸入可以引入標籤的尖括弧<> (下圖中的
是客戶端自己添加的)

解碼後,我們可以看到開發人員在本地對尖括弧進行了HTML編碼,上burp,直接截取重放,過了客戶端編碼。

可是當我們輸入

這也就意味著服務端中的過濾機制進行了正則匹配的過濾,只要<>包含特定內容,就直接替換成一個固定值。

這樣我們就不能成功的引入<>標籤了,也就很難加入