web安全(7)-- 檔案下載漏洞
1.1 漏洞描述
一些網站由於業務需求,可能提供檔案檢視或下載的功能,如果對使用者檢視或下載的檔案不做限制,則惡意使用者就能夠檢視或下載任意的檔案,可以是原始碼檔案、敏感檔案等。
1.2 漏洞危害
下載伺服器任意檔案,如指令碼程式碼,服務及系統配置檔案等;可用得到的程式碼進一步程式碼審計,得到更多可利用漏洞
1.3 漏洞演示
該部分主要講述兩種簡單的利用方法,下載tomcat的配置檔案和下載網站本身的原始碼。
1)Jsp站點的一個下載點:
http://www.test.cn/down.jsp?filename=%D5%D0%B1%EA%CF%EE%C4%BF%C9%EA%C7%EB1.doc&path=C:/Program%20Files/Apache%20Software%20Foundation/Tomcat%206.0/webapps/ZTBWZ/upload/%D5%D0%B1%EA%CF%EE%C4%BF%C9%EA%C7%EB1.doc
可以看到該下載點,有兩個引數,其實是一樣的,很容易看出path是待下載檔案的在伺服器上的絕對路徑。而且網站放到tomcat的安裝路徑下,這一點很重要,說明可以直接訪問tomcat的manager/html
請求: http://www.test.cn/manager/html
可以看到訪問正常,輸入使用者名稱和密碼就可以登入。
因此下一步就是下載tomcat的配置檔案tomcat-users.xml(裡面儲存登入的使用者名稱和密碼)
首先需要對tomcat配置有些瞭解,具體配置如下:
tomcat-users.xml 在conf檔案下,這樣就可以直接使用下載點下載該檔案。
因此構造url如下:
http://www.test.cn/down.jsp?filename=tomcat-users.xml&path=C:/Program%20Files/Apache%20Software%20Foundation/Tomcat%206.0/conf/tomcat-users.xml
下載成功:
開啟該檔案獲得使用者名稱和密碼
登入成功
下面直接,上傳一個war檔案,就可以獲得webshell,完成了一次簡單的測試。
2)下載網站本身原始碼
下載點: http://test.edu.cn/file.do?method=downFile&fileName=20080505094144.doc
測試一下不能訪問http://test.edu.cn/manager/html
上述方法失效。
首先下載網站的配置檔案jsp的配置檔案放在根目錄WEB-INF/Web.xml下(一般都有很多內容,有時含有資料庫連線使用者名稱和密碼等關鍵資訊)
訪問:
http://test/file.do?method=downFile&fileName=../WEB-INF/Web.xml
下載後開啟,關鍵內容:
後臺使用fckeditor編輯器,該編輯器漏洞很多,直接使用該編輯器直接上傳路徑
http://test//admin/FCKeditor/editor/filemanager/browser/default/browser.html?Type=image&Connector=connectors/jsp/connector
選擇一個jspshell直接上傳,獲得webshell,沒有任何限制
系統許可權,滲透完成。
1.4 修復方案
1)過濾點(.)使使用者在url中不能回溯上級目錄
2)正則嚴格判斷使用者輸入引數的格式
3)將下載區獨立出來,放在專案路徑外,給每個下載資源固定的URL,而不是所有的下載資源都是統一的URL:http://www.test.com/download?filename=檔名
1.5 相關參考
http://www.cnblogs.com/Time-Cat00/p/5810770.html
http://h.evil.blog.163.com/blog/static/997935042012223112435259/