FCKEditor最新上傳漏洞(ASP),允許上傳“.asp;jpg”類型文件解決方案
廣告:
近期公司大量網站受到攻擊,造成很的損失。經過反復分析,發現原來是FCKEditor存在上傳漏洞。這里,我針對此上傳漏洞進行了修正,具體情況請見以下分析:
攻擊表現:
接收上傳的目錄,發現有以“.asp;jpg”為擴展名的攻擊文件。
攻擊分析:
執行上傳目錄的“.asp;jpg”文件,發現它被當做一個正常的ASP文件執行,這應該是IIS本身的漏洞,虛機用戶根本就沒辦法處理。那么,我們只能從文件創建的角度處理了。于是我就開始分析FCKEditor的上傳功能。FCKEditor上傳檢測,是通過黑色單/白名單的方式檢測允許和不允許上傳的文件類型。
上傳支持文件:class_upload.asp
Private Function IsAllowed(sExt)
Dim oRE
Set oRE = New RegExp
oRE.IgnoreCase = True
oRE.Global = True
If sDenied = "" Then
oRE.Pattern = sAllowed
IsAllowed = (sAllowed = "") Or oRE.Test(sExt)
Else
oRE.Pattern = sDenied
IsAllowed = Not oRE.Test(sExt)
End If
Set oRE = Nothing
End Function
通過上面的代碼,我們明顯可以看出,FCKEditor白名單檢測不夠嚴謹,所有文件擴展名里包含白名色單列表值的,都可以通過此驗證,這就造成了類似“.asp;jpg、.asp;gif”等文件可以通過FCKEditor的圖片上傳功能傳至網站,而IIS本身又有無法正常識別“.asp;jpg”的漏洞。結果自然也就不需要我說了。
解決辦法:
本文以ASP版為例,上傳支持文件地址:
fckeditor\editor\filemanager\connectors\asp\class_upload.asp
知道了漏洞,那么我們處理起來,也就相對簡單起來。只要完善FCKEditor的上傳檢測即可。
上傳支持文件:class_upload.asp Private Function IsAllowed(sExt) Dim oRE Set oRE= New RegExp oRE.IgnoreCase= True oRE.Global= True If sDenied = "" Then Set oRE= Nothing |
廣告: