Web安全滲透測試之信息搜集篇(上)
原創【51CTO.com獨家特稿】當我們進行安全滲透測試的時候,首先要做的就是盡可能多地收集目標應用程序信息,所以,信息搜集是滲透測試一個必不可少的步驟。這項任務可以通過多種不同的方式來完成,
通過使用搜索引擎、掃描器、發送簡單的HTTP請求或者專門精心制作的請求,都有可能導致應用程序泄漏諸如錯誤信息、版本信息以及所使用的技術等信息。
一、測試robots.txt文件
現在,我們首先介紹如何測試robots.txt文件。Web蜘蛛/機器人/爬蟲可以用來檢索網頁,并沿著超鏈接進一步探索更多、更深的Web內容。當然,網站可以在根目錄放上一個robots.txt文件,這樣就可以規定哪些Web蜘蛛行為是站點可以接受的,那些是禁止的。
舉例來說,我們可以看一下http://www.google.com/robots.txt的內容片斷:
User-agent: * Allow: /searchhistory/ Disallow: /news?output=xhtml& Allow: /news?output=xhtml Disallow: /search Disallow: /groups Disallow: /images ... |
偽指令User-Agent表示具體的Web蜘蛛/機器人/網絡爬蟲。例如User-Agent:Googlebot 表示GoogleBot網絡爬蟲,而User-Agent:* 泛指所有的Web蜘蛛/機器人/網絡爬蟲:
User-agent: * |
偽指令Disallow的作用是規定哪些資源對蜘蛛/機器人/網絡爬蟲來說是禁用的。在上面的例子中,禁止蜘蛛訪問下列目錄:
... Disallow: /search Disallow: /groups Disallow: /images ... |
Web蜘蛛/機器人/網絡爬蟲可以故意忽略robots.txt文件中的“禁令”。因此,不要把robots.txt當成是限制第三方訪問、存儲或者轉帖web內容的靈丹妙藥。
下面是針對robots.txt文件的黑盒子測試及用例:
Wget
Robots.txt文件可以從Web服務器的web根目錄下找到。比如,可以使用wget檢索www.google.com站點中的robots.txt,如下所示:
$ wget http://www.google.com/robots.txt --23:59:24-- http://www.google.com/robots.txt Resolving www.google.com... 74.125.19.103, 74.125.19.104, 74.125.19.147, ... Connecting to www.google.com|74.125.19.103|:80... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/plain] 23:59:26 (13.67MB/s) - 'robots.txt' saved [3425] |
使用Google Webmaster Tools分析robots.txt
Google的Google Webmaster Tools提供了一個robots.txt分析功能,所以,在滲透測試時我們可以利用它來分析robots.txt,具體方法如下所示:
1. 用Google帳戶登陸Google Webmaster Tools。
2. 在Dashboard上,單擊想要分析的站點URL。
3. 單擊Tools按鈕,然后單擊Analyze robots.txt。 #p#
二、利用搜索引擎進行偵察
下面將介紹如何搜索Google Index 并從Google Cache中刪除有關的web內容。我們知道,GoogleBot一旦完成爬行過程,它就會根據標簽和有關屬性(諸如
Bad request
Your browser sent to query this server could not understand.
來自SunONE 6.1的響應:
$ nc sunone.example.com 80 GET / JUNK/1.0
Your browser sent a query this server could not understand. |
自動測試方法
獲取Web服務器指紋的方法有多種。上面介紹的是手動方法,下面介紹一些通過工具自動進行的測試方法。其中,httprint就是這樣一種工具。Httprint具有一個特征碼字典,籍此可以識別目標服務器的類型和版本。下圖是一個用法示例:
![]() |
圖3 |
聯機測試
在線工具的一個例子Netcraft,它能帶給我們大量目標服務器的有用信息。通過它,我們可以檢索操作系統、使用的Web服務器、服務器的運行時間、Netblock屬主、與Web服務器和操作系統有關系的修改記錄等信息。例如:
![]() |
圖4 |
五、小結
當我們進行安全滲透測試的時候,首先要做的就是盡可能多地收集目標應用程序信息,所以,信息搜集是滲透測試一個必不可少的步驟。本文為讀者介紹了如何測試robots.txt文件、利用搜索引擎進行搜集有用信息以及識別應用程序入口的方法。在本文的下篇中,我們將為讀者詳細介紹如何測試目標地址上運行了哪些應用程序,以及如何通過錯誤信息提前有用消息的具體方法。
【51CTO.COM 獨家特稿,轉載請注明出處及作者!】