發信人: chjong@csie.nctu.edu.tw (=?big5?Q?=C1=E9=A9=F7=BF=AB?= Chang-Ha) 日期: Mon, 27 May 2002 03:24:02 +0000 (UTC) 標題: [文件]偵測遠端HTTP 信群: tw.bbs.comp.security 看板: 來源: :24042, chjong@ccbsd7.csie.nctu.edu.tw 組織: Computer Science & Information Engineering NCTU 作者 ================== 鍾昌翰 chjong@csie.nctu.edu.tw 本文可在各種媒體自由散布 本文 ================== 想要進行Server的Scanning,可以使用HTTP Scanning,其掃描網路上活著的HTTP 主機。 不同於nmap之掃描,HTTP掃描本來就是搜詢引擎會進行的"正常"工作。為了要取信於被掃 描的主機,可以登記一看起來就是搜尋引擎的網址(如http://hypersearch.com/),如此一 來,被掃描的主機即使看到此稽核紀錄,也不會起疑。 若想要知道目標主機是採用甚麼種的Web Server,最簡單的方法就是送個HTTP Request過 去,看看HTTP Response裡的Server:欄位回的是甚麼主機。如下表所示,交大資工系的 Web Server應該是Apache/1.3.19 [ccbsd7]/u/gcp/88/8817537 > telnet www 80 Trying 140.113.209.8... Connected to altair. Escape character is '^]'. HEAD / HTTP/1.0 HTTP/1.1 200 OK Date: Mon, 27 May 2002 03:09:13 GMT Server: Apache/1.3.19 (Unix) PHP/4.0.5 PHP/3.0.18 mod_ssl/2.8.3 OpenSSL/0.9.6a Last-Modified: Sat, 18 May 2002 09:58:10 GMT ETag: "479120-106a-3ce625b2" Accept-Ranges: bytes Content-Length: 4202 Connection: close Content-Type: text/html Connection closed by foreign host. 但若是此主機去修改Web Server,或使用HTTP Proxy去修改Server:欄位,則就很難去辨 認。但我們可以使用類似OS Fingerprinting的方法,送出一堆網路要求,看看Web Server支援的HTTP Methods有那些,以及其回應的方式。例如HTTP有許多Methods, 可能有些Web Server不支援POST或MODIFY,或是對於HTTP/1.1的持續連線 (Persistent Connection)支援有問題。以作者實作HTTP/1.1的經驗,在HTTP/1.1上,其 最困難的部份就是持續連線的實作。因此可以合理的推測有許多的Web Servers並沒有把 持續連線做良好的實作。此外,對於例外的處理,像是空白行(CR+LF),不同的Web Servers也可能會有不同處理。因為在HTTP/1.1的規格中,建議Web Servers可以為了效率 去省略空白行。諸如此類,只要熟讀HTTP/1.1的規格,並實作一個HTTP Protocol之驗證 程式,就能夠做到辨認遠端Web Server之版本,或甚例用其去推測其作業系統版本。 -- "There is no security vulnerability, until you find it" ◇ 鍾昌翰, Chang-Han Jong chjong@csie.nctu.edu.tw ◇ .