隨著因特網的不斷髮展,人們對網絡的使用越來越頻繁,通過網絡進行購物、支付等其他業務操作。而一個潛在的問題是網絡的安全性如何保證,一些黑客利用站點安全性的漏洞來竊取用戶的信息,使用戶的個人信息洩漏,所以站點的安全性變得很重要。
Web 系統的安全性測試包括以下內容:
(1)Web 漏洞掃描
(2)服務器端信息測試
(3)文件和目錄測試
(4)認證測試
(5)會話管理測試
(6)權限管理測試
(7)文件上傳下載測試
(8)信息洩漏測試
(9)輸入數據測試
(10)跨站腳本攻擊測試
(11)邏輯測試
(12)搜索引擎信息測試
(13)Web Service 測試
(14)其他測試
本章節主要給大家介紹第(7)點——文件上傳下載測試
文件上傳下載測試包括兩方面內容:一是文件上傳;二是文件下載。文件上傳主要是測試系統是否對從客戶端提交的上傳文件進行約束,不能讓用戶在客戶端隨意提交任何文件。文件下載主要是測試在下載時是否存在跨越目錄、越權的情況。
(1)文件上傳測試
現在很多網站都提供文件上傳功能,如果在服務器端沒有對上傳文件的類型、大小、保存的路徑及文件名進行嚴格限制,攻擊者就很容易上傳後門程序取得WebShell,從而控制服務器。測試
步驟如下:
步驟1:登錄網站,並打開文件上傳頁面。
步驟2:單擊“瀏覽”按鈕,並選擇本地的一個JSP 文件(如test.jsp),確認上傳。
步驟3:如果客戶端腳本限制了上傳文件的類型(如允許gif 文件),則把test.jsp 更名為test.gif;配置HTTP Proxy使用WebScarab 工具對HTTP 進行請求攔截;重新單擊“瀏覽”按鈕,並選擇test.gif,確認上傳。
步驟4:在WebScarab 攔截的HTTP 請求數據中,將test.gif 修改為test.jsp,再發送請求數據。
步驟5:登錄後臺服務器,用命令find/-name test.jsp 查看test.jsp 文件存放的路徑。如果可以直接以Web 方式訪問,則構造訪問的URL,並通過瀏覽器訪問test.jsp,如果可以正常訪問,則已經取得WebShell,測試結束。如果無法訪問,例如test.jsp 存放在/home/tomcat/目錄下,而/home/tomcat/webapps 目錄對應http://www.example.com/,則進行下一步操作。
步驟6:重複步驟1~3,在WebScarab 攔截的HTTP 請求數據中,將test.gif 修改為test.jsp,再發送請求數據。
步驟7:在瀏覽器地址欄中輸入http://www.example.com/test.jsp,訪問該後門程序,取得WebShell,結束測試。
預期結果:服務器端對上傳文件的類型、大小、保存的路徑及文件名進行嚴格限制,確保無法上傳後門程序。
(2)文件下載測試
現在很多網站提供文件下載功能,如果網站對用戶下載文件的權限控制不嚴,攻擊者就很容易利用目錄跨越、越權下載,下載一些權限外的資料(比如其他用戶的私有、敏感文件)。
如某下載頁面URL(假設該頁面是某用戶的個人信息,對應的URL 為http://192.168.1.9/download/userid001/info.xls),測試時可以猜測並更改URL 路徑,對URL 進行訪問:
http://192.168.1.9/download/userid001/info.xls
http://192.168.1.9/download/userid002/info.xls
http://192.168.1.9/admin/report.xls
……
觀察頁面返回信息,如果可以越權獲取到其他用戶的私有、敏感文件,則說明存在漏洞。
而一些網站接受類似於文件名的參數用於下載或顯示文件內容,如果服務器未對這種情況進行嚴格判斷,攻擊者同樣可以通過修改這個參數值來下載、讀取任意文件,比如/etc/password 文件。測試時可以更改URL 對其進行測試。
http://www.exmaple.com/viewfile.do?filename=../etc/passwd
http://www.exmaple.com/viewfile.do?filename=../../etc/passwd
……
對於UNIX/Linux 服務器可以嘗試下載/etc/passwd 文件,對於Windows 服務器可以嘗試下載 c:\boot.ini 文件。
觀察頁面返回信息,如果可以下載/etc/passwd 或c:\boot.ini 文件的信息,說明下載文件有漏洞。
閱讀更多 川石信息 的文章