1. 程式人生 > 其它 >htcap:一款實用的遞迴型Web漏洞掃描工具

htcap:一款實用的遞迴型Web漏洞掃描工具

今天給大家介紹的是一款名叫 htcap 的開源 Web 漏洞掃描工具,它通過攔截 AJAX 呼叫和頁面 DOM 結構的變化並採用遞迴的形式來爬取單頁面應用(SPA)。htcap 並不是一款新型的漏洞掃描工具,因為它主要針對的是漏洞掃描點的爬取過程,然後使用外部工具來掃描安全漏洞。在 htcap 的幫助下,我們就可以通過手動或自動滲透測試來對現代 Web應用進行漏洞掃描了。

環境要求

1. Python 2.7 2. PhantomJS v2 3. Sqlmap 4. Arachni

工具下載和執行

$ git clonehttps://github.com/segment-srl/htcap.git htcap
$ htcap/htcap.py

命令列引數

$ htcap crawl -husage: htcap [options] url outfileOptions:  -h               幫助選單 -w               覆蓋輸出檔案 -q               不顯示處理過程資訊  -mMODE         設定爬取模式:                     - passive:不與頁面互動                      - active:觸發事件                      - aggressive:填寫輸入值並爬取表單 (預設)  -sSCOPE          設定爬取範圍:                      - domain:僅爬取當前域名 (預設)                      - directory:僅爬取檔期那目錄 (以及子目錄)                       - url: 僅分析單一頁面 -D               最大爬取深度 (預設: 100) -P               連續表單的最大爬取深度 (預設: 10) -F               主動模式下不爬取表單 -H               儲存頁面生成的HTML程式碼  -dDOMAINS      待掃描的域名,多個域名用逗號分隔 (例如*.target.com)  -cCOOKIES       以JSON格式或name=value鍵值對的形式設定cookie,多個值用分號隔開  -CCOOKIE_FILE   包含cookie的檔案路徑   -rREFERER       設定初始引用  -xEXCLUDED      不掃描的URL地址,多個地址用逗號隔開  -pPROXY         設定代理,protocol:host:port-  支援'http'或'socks5'  -nTHREADS       爬蟲執行緒數量 (預設: 10)  -ACREDENTIALS   使用者HTTP驗證的使用者名稱和密碼,例如username:password  -UUSERAGENT    設定使用者代理  -tTIMEOUT       分析一個頁面最長可用時間(預設300) -S               跳過初始url檢測 -G               分組query_string引數 -N               不使用標準化URL路徑 (保留../../) -R               最大重定向數量 (預設10) -I               忽略robots.txt

htcap簡單介紹

htcap的掃描過程分為兩步,htcap首先會盡可能地收集待測目標可以傳送的請求,例如url、表單和AJAX請求等等,然後將收集到的請求儲存到一個SQLite資料庫中。爬取工作完成之後,我們就可以使用其他的安全掃描工具來測試這些蒐集到的測試點,最後將掃描結果儲存到剛才那個SQLite資料庫之中。

htcap內建了sqlmap和arachni模組,sqlmap主要用來掃描SQL注入漏洞,而arachni可以發現XSS、XXE、程式碼執行和檔案包含等漏洞。

htcap所採用的爬蟲演算法能夠採用遞迴的方式爬取基於AJAX的頁面,htcap可以捕獲AJAX呼叫,然後映射出DOM結構的變化,並對新增的物件進行遞迴掃描。當htcap載入了一個測試頁面之後,htcap會嘗試通過觸發所有的事件和填充輸入值來觸發AJAX呼叫請求,當htcap檢測到了AJAX呼叫之後,htcap會等待請求和相關呼叫完成。如果之後頁面的DOM結構發生了變化,htcap便會用相同演算法對新增元素再次進行計算和爬取,直到觸發了所有的AJAX呼叫為止。

爬蟲模組

Htcap支援三種爬取模式:被動型、主動型和攻擊型。在被動模式下,htcap不會與任何頁面進行互動,這意味著爬蟲不會觸發任何頁面事件,它只會收集頁面現有的連結。在這個模式下,htcap就跟普通的Web爬蟲一樣,只會收集頁面標籤中的連結。在主動模式下,htcap會觸發所有發現的事件,相當於模擬使用者與頁面進行互動,但不填寫任何表單資料。在攻擊模式下,htcap會向所有掃描到的表單和輸入框中填寫測試資料,即儘可能地模擬使用者與頁面進行互動。

爬取範圍

htcap可以指定爬取範圍,可選範圍包括:域名、目錄和url。如果範圍是域名的話,htcap只會爬取給定的域名地址;如果範圍為目錄,那麼htcap將會爬取指定目錄以及該目錄下的所有子目錄;如果設定的是url,那麼htcap將只會分析單個頁面。