• 駭客會透過哪些方式獲取 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 有另外一個角度的看法。不禁佩服駭客的創意與思維.

    Posted by Tony @ 10:14 am

  • Leave a Reply

    Your email address will not be published.