天天看點

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

今天給大家介紹的是一款名叫 htcap 的開源 Web 漏洞掃描工具,它通過攔截 AJAX 調用和頁面 DOM

結構的變化并采用遞歸的形式來爬取單頁面應用(SPA)。htcap

并不是一款新型的漏洞掃描工具,因為它主要針對的是漏洞掃描點的爬取過程,然後使用外部工具來掃描安全漏洞。在 htcap

的幫助下,我們就可以通過手動或自動滲透測試來對現代 Web應用進行漏洞掃描了。

<a href="http://s1.51cto.com/wyfs02/M02/9C/CC/wKioL1l2IQzS7wWhAACJ-D2E3FY124.jpg-wh_651x-s_315716722.jpg" target="_blank"></a>

一、環境要求

Python 2.7

PhantomJS v2

Sqlmap

Arachni

二、工具下載下傳和運作

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

$ htcap/htcap.py 

三、指令行參數

$ htcap crawl -h 

usage: htcap [options] url outfile 

Options:  

 -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調用為止。

1. 爬蟲子產品

<a></a>

<a>2. 爬取範圍</a>

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

<a>本文作者:</a>

<a>來源:51CTO</a>