多客戶網站以及APP在上線營運之前都會對網站進行滲透測試,提前檢測網站是否存在漏洞,以及安全隐患,避免因為網站出現漏洞而導緻重大的經濟損失,客戶找到我們SINE安全做滲透測試服務的時候,我們都會對檔案上傳功能進行全面的安全測試,包括檔案上傳是否可以繞過檔案格式,上傳一些腳本檔案像php,jsp,war,aspx等等,繞過上傳目錄,直接上傳到根目錄下等等的一些漏洞檢測。

那什麼是檔案上傳漏洞?我們SINE安全來給大家講解一下:簡單來說,檔案上傳就是可以上傳一些檔案到網站以及APP裡,大部分的網站都隻允許上傳圖檔格式檔案,以及文檔類的檔案,之是以要做滲透測試就是要檢測該上傳功能是否存在漏洞,程式源代碼裡有沒有對POST過來的上傳資料進行安全校驗,以及檔案字尾名的檢查,有些客戶網站并沒有做安全校驗,導緻可以直接上傳webshell(也叫網站木馬後門)到網站中。
當檔案上傳功能出現漏洞就可以直接執行網站木馬檔案,該webshell可以對網站代碼進行操作,上傳,下載下傳,編輯,以及資料庫操作,執行惡意的遠端代碼到伺服器中,都是可以的,相當于網站的管理者權限了,該漏洞的危害性較大。可能會導緻使用者的資料洩露,以及資料庫被篡改。
根據我們SINE安全多年的滲透測試經驗來看,客戶網站存在檔案上傳漏洞的地方總結如下:
1.會員上傳頭像功能
2.上傳文檔功能
3.送出意見回報+截圖上傳
4.添加文章的圖檔上傳
5.留言功能上傳圖檔
存在的上傳漏洞類型:檔案擴充名繞過漏洞,以及檔案解析漏洞,content-type繞過漏洞,檔案名大小寫繞過上傳漏洞,檔案頭繞過漏洞,JS前端繞過上傳漏洞,我們SINE安全滲透測試這麼多客戶當中,出現JS前端繞過漏洞頻率最多,很多程式員在設計代碼過程中,隻對JS前端的通路使用者做了安全校驗,并沒有對網站後端做安全校驗,導緻可以直接修改字尾名進行上傳腳本檔案。我們來舉例看下:
首先該上傳功能在前台網站當中是公開的,任何一個注冊的會員都可以上傳,在更換頭像這裡,可以自定義選擇圖檔進行上傳,我們通過抓包截圖post的資料包,并修改資料庫裡的filename值,将擴充名修改為jsp,php就可以直接上傳到網站中。
關于滲透測試中檔案上傳漏洞的修複辦法是:對檔案上傳的格式做白名單設定,值允許上傳jpg,png,gif,等的圖檔格式檔案,如果字尾名不是以上三種,直接傳回上傳失敗,再一個對檔案代碼做安全校驗,不僅僅是在JS裡做判斷,還要在後端做安全校驗,對上傳的目錄位址進行鎖定,指定上傳的目錄位址,對圖檔的檔案夾目錄做無執行腳本權限,防止運作JSP,PHP,ASP等腳本的webshell檔案。網站前期上線之前一定要做滲透測試,全方位的檢測網站存在哪些漏洞,提前修複,促使後期網站平台的發展有序進行,不會因為漏洞而導緻業務終止。