Jfinal cms前台評論XSS漏洞分析


Jfinal cms采用Java語言開發,官方代碼倉庫為:https://gitee.com/jflyfox/jfinal_cms

Jfinal cms前台評論處存在XSS漏洞,以v4.6版本為例,下面是簡單漏洞分析。

首先來看如何利用此漏洞。

第一步:填寫payload

在新聞評論的地方填寫如下payload:abcd<img src="/xswv.png" onerror="alert('OK')"></span><span>

第二步:提交內容

點擊“發布”按鈕。

第三步:觸發漏洞

刷新頁面即可看到彈窗提示。

接下來是代碼分析:

根據BurpSuite抓包來看,提交評論時訪問的URL為:http://xxx.abcde.com/front/comment/save,根據此路徑可以快速定位到CommentController.java文件。

該文件是CommentController類,CommentController類有個save方法,我們具體來看save方法的代碼。

在save方法中先做了一些權限判斷,沒有登錄的用戶不能添加評論。然后調用CommentService對象的saveComment方法來保存用戶的評論。

我們跳轉到CommentService.java文件查看saveComment方法的具體代碼。

saveComment方法首先調用JFlyFoxUtils對象的delScriptTag方法對評論內容進行安全過濾,然后再將評論存儲到數據庫中。

從delScriptTag這個名字我們大概就能猜到該方法的作用是刪除script標簽。

我們再接着看delScriptTag方法:

該方法進行兩次正則表達式替換,第一次是替換掉<script></script>標簽,第二次是替換掉<style></style>標簽。但是該方法並沒有過濾掉其他html標簽,例如:img標簽。所以我們可以利用img標簽的onerror事件觸發XSS漏洞。

至此,該XSS漏洞的原因已經找到了,就是因為后端代碼對用戶輸入的內容過濾不完善導致的。

 


免責聲明!

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



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