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