網站上傳漏洞掃描與檢測 以及webshell解決辦法

網站安全發表於2019-11-07

前段時間我們SINE安全收到客戶的滲透測試服務委託,在這之前,客戶網站受到攻擊,資料被篡改,要求我們對網站進行全面的滲透測試,包括漏洞的檢測與測試,邏輯漏洞.垂直水平越權漏洞,檔案上傳漏洞.等等服務專案,在進行安全測試之前,我們對客戶的網站大體的瞭解了一下,整個平臺網站,包括APP,安卓端,IOS端都採用的JSP+oracle資料庫架構開發,前端使用VUE,伺服器是linux centos系統.下面我們將滲透測試過程裡,對檔案上傳漏洞的檢測與webshell的分析進行記錄,希望更多的人瞭解什麼是滲透測試.

網站上傳漏洞掃描與檢測 以及webshell解決辦法

我們直擊漏洞根源,檢視程式碼在uplpod.php檔案裡,可以看到有個lang變數給了language.php,並附加條件,設定的指定檔案都存在,才可以將引數值傳遞過去,程式碼截圖如下:

網站上傳漏洞掃描與檢測 以及webshell解決辦法

仔細看,我們看到程式碼呼叫了save_file的呼叫方式,由此可以導致langup值可以偽造,追蹤溯源看到該值是對應的WEB前端使用者的檔案上傳功能,在使用者檔案上傳這裡,並沒有做安全效驗與安全白名單攔截機制,導致可以重新命名,直接將.jsp的指令碼檔案上傳到網站的根目錄下,包括APP也存在該漏洞.

網站上傳漏洞掃描與檢測 以及webshell解決辦法

我們SINE安全技術來滲透測試復現一下該檔案上傳漏洞是如何利用的,首先登入會員,並開啟個人資料頁面,有個檔案上傳功能,裡面只允許上傳圖片格式的檔案,只允許上傳JPG,PNG,GIF,等字尾名的檔案,以普通的圖片檔案來上傳,我們抓取POST的上傳資料包,將cont1的路徑地址改為/beifen/1.jsp,並提交過去,返回資料為成功上傳.複製路徑,瀏覽器裡開啟,發現我們上傳的JSP指令碼檔案執行了,也再一次的證明該漏洞是足以導致網站資料被篡改的,在這之前客戶的網站肯定被上傳了webshell網站木馬檔案,隨即我們對客戶的網站原始碼進行全面的人工安全檢測與分析,對一句話木馬特製eval,加密,包括檔案上傳的時間點,進行檢查,發現在網站的JS目錄下存在indax.jsp,瀏覽器裡開啟訪問,是一個JSP的指令碼木馬,可以對網站進行篡改,下載程式碼,新建檔案,等網站管理員的操作,同理APP端也是存在同樣的漏洞.呼叫的檔案上傳功能介面是一樣.具體的webshell截圖如下:

網站上傳漏洞掃描與檢測 以及webshell解決辦法

到這裡我們只是滲透測試的一方面,主要是檢測的檔案上傳功能是否存在漏洞,是否可以重新命名,自定義上傳路徑以及檔案格式繞過,關於滲透測試中發現的檔案上傳漏洞如何修復,我們SINE安全給大家一些修復建議與辦法,首先對檔案的上傳格式進行限制,只允許白名單裡的jpg,png,gif等格式的檔案上傳,對自定義的路徑地址進行變數覆蓋,不允許更改路徑地址.對上傳的目錄做指令碼的安全限制,去除JSP的指令碼執行許可權.


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31542418/viewspace-2663164/,如需轉載,請註明出處,否則將追究法律責任。

相關文章