Kali Linux Web 滲透測試秘籍 第三章 爬蟲和蜘蛛

第三章 爬蟲和蜘蛛

作者:Gilberto Najera-Gutierrez

譯者:飛龍

協議:CC BY-NC-SA 4.0

簡介

滲透測試可以通過多種途徑完成,例如黑盒、灰盒和白盒。黑盒測試在測試者沒有任何應用的前置信息條件下執行,除了服務器的 URL。白盒測試在測試者擁有目標的全部信息的條件下執行,例如它的構造、軟件版本、測試用戶、開發信息,以及其它。灰盒測試是黑盒和白盒的混合。

對于黑盒和灰盒測試,偵查階段對測試者非常必然,以便發現白盒測試中通常由應用所有者提供的信息。

我們打算采取黑盒測試方式,因為它涉及到外部攻擊者用于獲取足夠信息的所有步驟,以便入侵應用或服務器的特定功能。

作為每個 Web 滲透測試中偵查階段的一部分,我們需要瀏覽器每個包含在網頁中的鏈接,并跟蹤它展示的每個文件。有一些工具能夠幫助我們自動和以及加速完成這個任務,它們叫做 Web 爬蟲或蜘蛛。這些工具通過跟隨所有到外部文件的鏈接和引用,有的時候會填充表單并將它們發送到服務器,保存所有請求和響應來瀏覽網頁,從而提供給我們離線分析它們的機會。

這一章中,我們會涉及到一些包含在 Kali 中的爬蟲的使用,也會查看我們感興趣的文件和目錄,來尋找常見的網頁。

3.1 使用 Wget 為離線分析下載網頁

Wget 是 GNU 項目的一部分,也包含在主流 linux 發行版中,包括 Kali。它能夠遞歸為離線瀏覽下載網頁,包括鏈接轉換和下載非 HTML 文件。

這個秘籍中,我們會使用 Wget 來下載和 vulnerable_vm 中的應用相關的頁面。

準備

這一章的所有秘籍都需要運行 vulnerable_vm。在這本書的特定場景中,它的 IP 地址為 192.168.56.102。

操作步驟

  1. 讓我們做第一次嘗試,通過僅僅以一個參數調用 Wget 來下載頁面。

    wget http://192.168.56.102/bodgeit/
    

    我們可以看到,它僅僅下載了index.html文件到當前目錄,這是應用的首頁。

  2. 我們需要使用一些選項,告訴 Wget 將所有下載的文件保存到特定目錄中,并且復制我們設為參數的 URL 中包含的所有文件。讓我們首先創建目錄來保存這些文件:

    mkdir bodgeit_offline
    
  3. 現在,我們會遞歸下載應用中所有文件并保存到相應目錄中。

    wget -r -P bodgeit_offline/ http://192.168.56.102/bodgeit/
    
    

工作原理

像之前提到的那樣,Wget 是個為下載 HTTP 內容創建的工具。通過-r參數,我們可以使其遞歸下載,這會按照它所下載的每個頁面的所有連接,并同樣下載它們。-P選項允許我們設置目錄前綴,這是 Wget 會開始保存下載內容的目錄。默認它設為當前目錄。

更多

在我們使用 Wget 時,可以考慮一些其它的實用選項:

  • -l:在遞歸下載的時候,規定 Wget 的遍歷深度可能很有必要。這個選項后面帶有我們想要遍歷的層級深度的數值,讓我們規定這樣的界限。

  • -k:在文件下載之后,Wget 修改所有鏈接,使其指向相應的本地文件,這會使站點能夠在本地瀏覽。

  • -p:這個選項讓 Wget 下載頁面所需的所有圖像,即使它們位于其它站點。

  • -w:這個選項讓 Wget 在兩次下載之間等待指定的描述。當服務器中存在防止自動瀏覽的機制時,這會非常有用。

3.2 使用 HTTrack 為離線分析下載頁面

就像 HTTrack 的官網所說(http://www.httrack.com):

它允許你從互聯網下載 WWW 站點到本地目錄中,遞歸構建所有目錄、從服務器獲得 HTML、圖像,和其它文件到你的計算機中。

我們在這個秘籍中會使用 HTTrack 來下載應用站點的所有內容。

準備

HTTrack 沒有默認在 Kali 中安裝。所以我們需要安裝它。

apt-get update 
apt-get install httrack

操作步驟

  1. 我們的第一步是創建目錄來儲存下載的站點,輸入:

    mkdir bodgeit_httrack 
    cd bodgeit_httrack
    
  2. 使用 HTTrack 的最簡單方式就是向命令中添加我們打算下載的 URL。

    httrack http://192.168.56.102/bodgeit/ 
    

    設置最后的/非常重要,如果遺漏了的話,HTTrack 會返回 404 錯誤,因為服務器根目錄沒有bodgeit文件。

  3. 現在,如果我們訪問文件file:///root/MyCookbook/test/bodgeit_httrack/index. html(或者你在你的測試環境中選擇的目錄),我們會看到,我們可以離線瀏覽整個站點:

工作原理

HTTrack 創建站點的完整靜態副本,這意味著所有動態內容,例如用戶輸入的響應,都不會有效。在我們下載站點的文件夾中,我們可以看到下列文件和目錄:

  • 以服務器名稱或地址命名的目錄,包含所有下載的文件。

  • cookies.txt文件,包含用于下載站點的 cookie 信息。

  • hts-cache目錄包含由爬蟲檢測到的文件列表,這是 httrack 所處理的文件列表。

  • hts-log.txt文件包含錯誤、警告和其它在爬取或下載站點期間的信息

  • index.html文件重定向到副本的原始主頁,它位于名稱為服務器的目錄中。

更多

HTTrack 也擁有一些擴展選項,允許我們自定義它的行為來更好符合我們的需求。下面是一些值得考慮的實用修改器:

  • -rN:將爬取的鏈接深度設置為 N。
  • -%eN:設置外部鏈接的深度界限。
  • +[pattern]:告訴 HTTrack 將匹配[pattern]的 URL 加入白名單,例如+*google.com/*
  • -[pattern]:告訴 HTTrack 將匹配[pattern]的 URL 加入黑名單。
  • -F [user-agent]:允許我們定義用于下載站點的 UA(瀏覽器標識符)。

3.3 使用 ZAP 蜘蛛

在我們的計算機中將完整的站點下載到目錄給予我們信息的靜態副本,這意味著我們擁有了不同請求產生的輸出,但是我們沒有服務器的請求或響應狀態。為了擁有這種信息的記錄,我們需要使用蜘蛛,就像 OWASP ZAP 中集成的這個。

這個秘籍中,我們會使用 ZAP 的蜘蛛來爬取 vulnerable_vm 中的目錄,并檢查捕獲的信息。

準備

對于這個秘籍,我們需要啟動 vulnerable_vm 和 OWASP ZAP,瀏覽器需要配置來將 ZAP 用做代理。這可以通過遵循上一章中“使用 ZAP 發現文件和文件夾”中的指南來完成。

操作步驟

  1. 為了讓 ZAP 啟動并使瀏覽器將其用作代理,瀏覽http://192.168.56.102/bodgeit/

  2. Sites標簽頁中,打開對應測試站點的文件夾(本書中是http://192.168.56.102)。

  3. 右擊GET:bodgeit

  4. 從下拉菜單中選擇Attack | Spider…

  5. 在對話框中,保留所有選項為默認并點擊Start Scan

  6. 結果會出現在Spider標簽頁的底部面板中。

  7. 如果我們打算分析獨立文件的請求和響應,我們訪問Sites標簽并打開其中的site文件夾和bodget文件夾。讓我們看一看POST:contact.jsp(anticsrf,comments,null)

    在右邊,我們可以看到完整的請求,包含所使用的參數(下半邊)。

  8. 現在,選擇右側部分的Reponse標簽頁。

    在上半邊中,我們可以看到響應頭,包括服務器標識和會話 Cookie,在下版本我們擁有完整的 HTML 響應。在之后的章節中,我們會了解從已授權的用戶獲取這種 cookie,如何用于劫持用戶會話以及執行冒充它們的操作。

工作原理

就像任何其它爬蟲那樣,ZAP 的蜘蛛跟隨它找到的每個鏈接,位于每個包含請求范圍以及其中的鏈接中的頁面上。此外,蜘蛛會跟隨表單響應、重定向和包含在robots.txtsitemap.xml文件中的 URL。之后它會為之后分析和使用儲存所有請求和響應、

更多

在爬取站點或目錄之后,我們可能打算使用儲存的請求來執行一些測試。使用 ZAP 的功能,我們能夠執行下列事情:

  • 在修改一些數據之后重放請求
  • 執行主動和被動漏洞掃描
  • 模糊測試輸入參數來尋找可能的攻擊向量
  • 在瀏覽器中重放特定請求

3.4 使用 Burp Suite 爬取站點

Burp 幾乎是最廣泛用于應用滲透測試的工具,因為它擁有類似 ZAP 的功能,并含有一些獨特的特性和易用的界面。Burp 不僅僅能夠用于爬取站點,但是現在,作為偵查階段的一部分,我們先涉及這個特性。

準備

通過訪問 Kali 的Applications菜單,之后訪問03 Web Application Analysis | Web Application Proxies | burpsuite來啟動 Burp Suite,就像下面這樣:

![](http://upload-images.jianshu.io/upload_images/118142-f4d8393d896bea71.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

之后配置瀏覽器將其用做代理,通過 8080 端口,就像我們之前使用 ZAP 的那樣。

操作步驟

  1. Burp 的代理默認配置為攔截所有請求,我們需要禁用它來不帶攔截瀏覽。訪問Proxy標簽頁并點擊Intercept is on按鈕,它就會變為Intercept is off,像這樣:

  2. 現在,在瀏覽器中,訪問http://192.168.56.102/bodgeit/

  3. 在 Burp 的窗口中,當我們訪問Target的時候,我們會看到其中含有我們正在瀏覽器的站點信息,以及瀏覽器產生的請求。

  4. 現在,為了激活蜘蛛,我們右擊bodgeit文件夾,并從菜單中選擇Spider this branch

  5. Burp 會詢問我們是否添加項目到這里,我們點擊Yes。通常,Burp 的蜘蛛只爬取匹配定義在Target標簽頁中的Scope標簽頁中的模式的項目。

  6. 之后,蜘蛛會開始運行。當它檢測到登錄表單之后,它會向我們詢問登錄憑據。我們可以忽略它,蜘蛛會繼續,或者我們可以提交一些測試值,蜘蛛會填充這些值到表單中。讓我們將兩個字段,用戶名和密碼都填充為單詞test,并點擊Submit form

  7. 下面,我們會要求在注冊頁中填充用戶名和密碼。我們通過點擊Ignore form來忽略它。

  8. 我們可以在Spider標簽頁中檢查蜘蛛的狀態。我們也可以通過點擊Spider is running按鈕來停止它。讓我們現在停止它,像這樣:

  9. 我們可以在Site map標簽頁中檢查蜘蛛生成的結果,它在Target中。讓我們查看我們之前填充的登錄請求:

工作原理

Burp 的蜘蛛遵循和其它蜘蛛相同的方式,但是它的行為有一些不同,我們可以讓它在我們瀏覽站點的時候運行,它會添加我們跟隨(匹配范圍定義)的鏈接到爬取隊列中。

就像 ZAP 那樣,我們可以使用 Burp 的爬取結果來執行任何操作。我們可以執行任何請求,例如掃描(如果我們擁有付費版)、重放、比較、模糊測試、在瀏覽器中查看,以及其它。

3.5 使用 Burp 重放器重放請求

在分析蜘蛛的結果以及測試可能的表單輸入時,發送相同請求的修改特定值的不同版本可能很實用。

這個秘籍中,我們會學到如何使用 Burp 的重放器來多次發送帶有不同值的請求。

準備

我們從前一個秘籍的地方開始這個秘籍。啟動 vulnerable_vm 虛擬機和 Burp 以及將瀏覽器合理配置來將 Burp 用做代理非常必要。

操作步驟

  1. 我們的第一步是訪問Target標簽,之后訪問蜘蛛所生成的登錄頁面請求(http://192.168.56.102/bodgeit/login.jsp),帶有username=test&password=test的那個。

  2. 右擊請求并從菜單中選擇Send to Repeater,像這樣:

  3. 現在我們切換到Repeater標簽頁。

  4. 讓我們點擊Go來在右側查看服務器的響應。

    Request部分(圖像左側)中,我們可以看到發給服務器的原始請求。第一行展示了所使用的方法:POST,被請求的 URL 和協議:HTTP 1.1。下面一行,一直到 Cookie,都是協議頭參數,在它們后面我們看到一個換行,之后是我們在表單輸入的 POST 參數和值。

  5. 在響應部分我們看到了一些標簽頁:RawHeadersHexHTMLRender。這些以不同形式展示相同的響應信息。讓我們點擊Render來查看頁面,就像在瀏覽器中那樣:

  6. 我們可以在請求端修改任何信息。再次點擊OK并檢查新的響應。對于測試目的,讓我們將密碼值替換為一個單引號,并發送請求。

    我們可以看到,我們通過修改輸入變量的值觸發了系統錯誤。這可能表明應用中存在漏洞。在后面的章節中,我們會涉及到漏洞的測試和識別,并深入探索它。

工作原理

Burp 的重放器允許我們手動為相同的 HTTP 請求測試不同的輸入和場景,并且分析服務器提供的響應。這在測試漏洞的時候非常實用,因為測試者可以了解應用如何對多種所提供的輸入反應,以及從而識別或利用設計、編程或配置中的可能缺陷。

3.6 使用 WebScarab

WebScarab 是另一個 Web 代理,擁有讓滲透測試者感興趣的特性。這個秘籍中,我們會使用它來爬取網站。

準備

作為默認配置,WebScarab 實用 8008 端口來捕獲 HTTP 請求。所以我們需要配置我們的瀏覽器來在 localhost 中使用這個端口作為代理。你需要遵循與在瀏覽器中配置 OWASP ZAP、Burp Suite 的相似步驟。這里,端口必須是 8008。

操作步驟

  1. 在 Kali 的Applications菜單中,訪問03 Web Application Analysis | webscarab來打開WebScarab。

  2. 瀏覽vulnerable_vm 的 Bodgeit 應用(http://192.168.56.102/ bodgeit/)。我們會看到它出現在 WebScarab 的Summary標簽頁中。

  3. 現在,右擊 bodgeit 文件夾并從菜單選擇Spider tree,像這樣:

  4. 在蜘蛛發現新文件過程中,所有請求會出現在概覽的下半部分,樹也會被填滿。

    這個概覽也展示了一些關于每個特定文件的相關信息。例如,是否存在注入或者可能為注入的漏洞,是否設置了 cookie,包含表單,或者是否表單含有隱藏字段。它也表明了代碼或文件上傳中存在注釋。

  5. 如果我們右擊任何下半部分的請求,我們會看到可以對它們執行的操作。我們分析請求,找到路徑/bodgeit/search.jsp,右擊它,并選擇Show conversation`。新的窗口會彈出,并以多種格式展示響應和請求,就像下面這樣:

  6. 現在點擊Spider標簽頁。

    這個標簽頁中,我們可以在Allowed DomainsForbidden Domains中,使用正則表達式來調整蜘蛛抓取的內容。我們也可以使用Fetch Tree來刷新結果。我們也可以通過點擊Stop按鈕來停止蜘蛛。

工作原理

WebScarab 的蜘蛛類似于 ZAP 或者 Burp Suite,對發現網站中所有被引用文件或目錄,而無需手動瀏覽器所有可能的鏈接,以及深度分析發給服務器的請求,并使用它們執行更多復雜的測試非常實用。

3.7 從爬取結果中識別相關文件和目錄

我們已經爬取了應用的完整目錄,并且擁有了被引用文件和目錄的完整列表。下一步地然是識別這些文件哪個包含相關信息,或者是更可能發現漏洞的機會。

這篇不僅僅是個秘籍,更是用于文件和目錄的常見名稱、前后綴的總結,它們通常給滲透測試者提供有價值的信息,或者是可能導致整個系統淪陷的漏洞利用。

操作步驟

  1. 首先,我們打算尋找登錄和注冊頁面,它們可以給我們機會來成為應用的正常用戶,或者通過猜測用戶名和密碼來冒充它們。一些名稱和部分名稱的例子是:

    • Account
    • Auth
    • Login
    • Logon
    • Registration
    • Register
    • Signup
    • Signin
  2. 另一個常見的用戶名、密碼來源和與之相關的漏洞是密碼恢復頁面:

    • Change
    • Forgot
    • lost-password
    • Password
    • Recover
    • Reset
  3. 下面,我們需要識別是否存在應用的管理員部分,這里有一組功能可能允許我們執行高權限的操作,例如:

    • Admin
    • Config
    • Manager
    • Root
  4. 其它有趣的目錄是內容管理系統(CMS)的管理員、數據庫或應用服務器之一,例如:

    • Admin-console
    • Adminer
    • Administrator
    • Couch
    • Manager
    • Mylittleadmin
    • PhpMyAdmin
    • SqlWebAdmin
    • Wp-admin
  5. 應用的測試和開發版通常沒有保護,并且比最終發行版更容易存在漏洞,所以它們在我們搜索缺陷的時候是個很好的目標。這些目錄的名稱包含:

    • Alpha
    • Beta
    • Dev
    • Development
    • QA
    • Test
  6. Web 服務器的信息和配置文件如下:

    • config.xml
    • info
    • phpinfo
    • server-status
    • web.config
  7. 此外,所有在robots.txt中標記為Disallow的目錄和文件可能非常實用。

工作原理

一些前面列出的名稱和它們的語言變體允許我們訪問站點的首先部分,這是滲透測試中非常重要的步驟。它們中的一些能夠提供給我們服務器,它的配置以及所使用的開發框架信息。其它的,例如 Tomcat 管理器和 JBoss 的登錄頁面,如果配置不當的話,會讓我們(或惡意攻擊者)獲得服務器的控制。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,546評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,570評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,505評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,017評論 1 313
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,786評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,219評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,287評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,438評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,971評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,796評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,995評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,540評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,230評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,662評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,918評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,697評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,991評論 2 374

推薦閱讀更多精彩內容