駭客會透過哪些方式獲取 Web所用的技術呢?

駭客會透過哪些方式獲取 Web所用的技術呢?

由於駭客可以利用已知的風險漏洞進行攻擊,

因此知道Web所使用的技術與版本資訊對駭客來說十分重要。

那麼駭客可以透過哪些方式得知這樣的資訊呢?

這些議題就是這篇文章會討論的範圍。

Http Request

從基本的 Http Request 中就可以看出許多 Web所使用的技術。

瀏覽器按下 F12,Developer Tools 我們可以觀察到每一個發送的 Http Request

舉個例子來說,下列的 Http Request,其時透露一些訊息:

GET /books/search.asp?q=books HTTP/1.1
Accept: image/gif, image/xxbitmap, image/jpeg, image/pjpeg,
application/xshockwaveflash, application/vnd.msexcel,
application/vnd.mspowerpoint, application/msword, */*
Referer: http://wahh-app.com/books/default.asp
Accept-Language: en-gb,en-us;q=0.5
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)
Host: wahh-app.com
Cookie: lang=en; JSESSIONID=0000tI8rk7joMx44S2Uu85nSWc_:vsnlc502
  • 書本查詢參數傳遞是透過 Http Get。q=books
  • Search.asp:附檔名為 ASP或是應該是使用為軟 .Net 架構
  • Referer: 這個網頁的原始來源。
  • User-Agent: 通常用來告訴網站伺服器根據使用者瀏覽器顯示不同的資訊。例如手機板、桌機板、或是不支援IE 8.0以下版本等資訊。
  • Cookie: 中有定義 JSESSIONID。J2EE的網站架構會有這樣的 Cookie Name。(所以可以在驗證是否部分使用 J2EE or .NET)
  • Host: wahh-app.com。主機的名稱。Host + Get 就會組合出完整的 URL。這個例子完整的 URL
    •  wahh-app.com/books/search.asp?q=books

 

Http Response

當然 Http Response中也會透露許多訊息,舉例如下。

HTTP/1.1 200 OK
Date: Sat, 19 May 2007 13:49:37 GMT
Server: IBM_HTTP_SERVER/1.3.26.2 Apache/1.3.26 (Unix)
Set-Cookie: tracking=tI8rk7joMx44S2Uu85nSWc
Pragma: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Type: text/html;charset=ISO-8859-1
Content-Language: en-US
Content-Length: 24246
<!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>
<html lang=”en”>
<head>
<meta http-equiv=”Content-Type” content=”text/html;
charset=iso-8859-1”>
  • Return Code 200: 這不就是網頁正常回覆,有什麼好驚訝? 筆者稍後說明這個值對駭客有什麼意義。
  • Server: “IBM_HTTP_SERVER/1.3.26.2 Apache/1.3.26 (Unix)”這個範例中具體的印出版本資訊,像這些資訊都是可以避免回傳的。
  • Cookie: 因為登入成功後,有許多使用者或是授權 Token會以Cookie形式,因此駭客會利用病毒或是 XSS的方式竊取 Cookie
  • Expires: 主要用來觀察是否有網頁 Cache。因為網頁 Cache 也是另外一個竊取資料的方式。

附檔名

另外可以從網址 URL 中區分出背後使用哪些技術

  • asp—Microsoft Active Server Pages
  • aspx—Microsoft ASP.NET
  • jsp—Java Server Pages
  • cfm—Cold Fusion
  • php—the PHP language
  • d2w—WebSphere
  • pl—the Perl language
  • py—the Python language
  • dll—usually compiled native code (C or C++)
  • nsf or ntf—Lotus Domino

 

Cookie Name (Session Tokens)

另外也可以從 CookieName 之中得知網站使用的技術

  • JSESSIONID—The Java Platform
  • ASPSESSIONID—Microsoft IIS server
  • ASP.NET_SessionId—Microsoft ASP.NET
  • CFID/CFTOKEN—Cold Fusion
  • PHPSESSID—PHP

錯誤訊息

例如這個訊息,除了透露程式碼內部的邏輯之外,最下方也透露ASP .NET版本資訊。

通常駭客會刻意輸入非法或是無效的 URL或是參數來讓Web 產生錯誤訊息。

Return Code 對駭客的意義

Return Code 原本的意義 駭客的意義
302
  • 通常來說 Page re-direct會回傳 302。
  • 最常見的狀況就是登入之後,網頁會進入到另一個畫面。
  • 如果駭客任意的透過 Directory Traversal的方式,網站回傳302,表示這Web應用系統是既定的邏輯。
  • 否則應該會出現 Page Not found 404。
400 Bad Request
  • 透過錯誤訊息得知額外的系統資訊
  • 可能因為駭客輸入的網址還有非法字元或是無效的語法。
401or 403 401 Unauthorized403 Forbidden
  • 這是駭客找到的寶藏。表示這些頁面的資源是需要權限。也表示這些頁面含有敏感性資訊。
500 Internal Server Error 通常表示參數輸入(Http Get 或是 Http Post)有少。

希望透過這篇文章讓我們對於 HTTP 有另外一個角度的看法。不禁佩服駭客的創意與思維.

Leave a Reply

Your email address will not be published.