htcap:一款遞歸型的Web應用掃描器
工具介紹
htcap是一個Web應用程序掃描程序,可以通過攔截ajax調用以及DOM修改並以遞歸方式爬取單頁應用程序(SPA)。Htcap不僅僅是漏洞掃描程序,因為它主要側重於網站的爬取過程,並使用外部工具來發現漏洞。我們可以將其理解為是一款用於現代Web應用程序的手動以及自動滲透測試的工具。
它的掃描過程主要分為兩部分,首先htcap將抓取目標並收集儘可能多的請求(urls,forms,ajax ecc 等等)並將其保存到sql-lite資料庫。抓取完成後,可以針對已保存的請求啟動多個安全掃描程序,並將掃描結果保存到同一資料庫。Htcap自帶的sqlmap和arachni模塊內置。Sqlmap用於發現SQL注入漏洞,arachni用於發現XSS,XXE,Code Executions,File Inclusions ecc。由於掃描器模塊擴展了BaseScanner類,因此可以輕鬆地創建或修改它們。當填充資料庫(至少使用crawing數據)時,可以使用諸如sqlite3或DBEaver之類的現成可用工具進行探索,或者使用內置腳本將結果導出為各種格式。
Htcap所採用的是一種能夠以遞歸方式對基於ajax的頁面進行爬取的演算法。該演算法通過捕獲ajax調用,將DOM修改映射到自身,並針對新添加的元素遞歸地重複該過程。當載入頁面時,htcap將通過觸發所有事件和填充輸入值來啟動,以觸發ajax調用。當檢測到ajax調用時,htcap等待它完成並調用相對回調函數; 如果在此之後,DOM被修改,htcap將針對添加的元素運行相同的演算法,並重複它,直到所有的ajax調用被觸發。
Htcap支持三種掃描模式:被動,主動和侵略性。當處於被動模式時,htcap不與頁面進行交互,這意味著沒有觸發任何事件,僅遵循鏈接。在這種模式下,htcap作為一個非常基本的網頁抓取工具,只收集頁面中找到的鏈接(A標籤)。這個過程就像是一個用戶點擊了鏈接一樣。主動模式的行為其實類似於被動模式,但它會觸發所有發現的事件。這個過程就像是用戶了與頁面進行了交互但卻沒有輸入任何值。而侵略性模式則會使使htcap可以填充輸入值並發布表單。這個過程類似於那些會在頁面上執行儘可能多的操作的用戶。
Htcap可以將在網站上的爬取過程限制在特定的範圍內。可用範圍包括:域名、目錄以及url。當範圍設置為域名時,htcap將僅抓取目標的域名,再加上allowed_domains(-d選項)。如果範圍是目錄,htcap將僅抓取目標目錄及其子目錄,如果範圍是url,htcap將不會抓取任何東西,它只是會分析一個頁面。
命令行參數
$ htcap crawl -h
usage: htcap [options] url outfile
Options:
-h幫助
-w覆蓋輸出文件
-q不顯示進度信息
-m設置爬取模式:
- passive::不要與頁面發生交互
- active::觸發所有事件
- aggressive:填寫輸入值和爬取網站表單(默認)
-sSCOPE設置爬取範圍
- domain:限制爬取到當前域名(默認)
- directory:限制爬取到當前目錄(和子目錄)
- url:只分析單頁面 -D最大爬取深度(默認值:100)
-P連續表單的最大爬取深度(默認值:10)
-F即使在侵略性模式下,也不爬取表單
-H保存頁面生成的HTML
-dDOMAINS需要掃描的域名,用逗號分隔(ex * .target.com)
-cCOOKIES 利用JSON格式或者name=value對的形式設置cookie,用分號隔開
-CCOOKIE_FILE包含COOKIES的文件路徑
-rREFERER 設置初始引用
-xEXCLUDED逗號分隔需要排除掉的url(正則表達式)- 即註銷urls
-pPROXY代理字元串協議:host:port 協議可以是"http 或 socks5 -
-nTHREADS並行線程數量(默認值:10)
-ACREDENTIALS 用於HTTP驗證的用戶名和密碼,用冒號分隔
-UUSERAGENT設置用戶代理
-tTIMEOUT分析頁面時間的最大值(默認300)
-S跳過初始URL檢查
-G對具有相同名稱的QUERY_STRING參數進行分組(「[]」結尾除外)
-N不使用正常的URL路徑(保持../../)
-R重定向的最大次數(默認為10)
-I忽略robots.txt
環境要求
Python 2.7
PhantomJS v2
Sqlmap(用於sqlmap掃描器模塊)
Arachni(用於arachni掃描器模塊)
下載以及運行
$ git clone https://github.com/segment-srl/htcap.git htcap
$ htcap / htcap.py
點擊展開全文
![](https://pic.pimg.tw/zzuyanan/1488615166-1259157397.png)
![](https://pic.pimg.tw/zzuyanan/1482887990-2595557020.jpg)
※看我如何黑掉PayPal:從任意文件上傳到遠程代碼執行
※2017網路安全生態峰會
※Source引擎的遠程代碼執行漏洞,可能影響千萬遊戲玩家
※出售帶漏洞的設備違法嗎?德國消協擬起訴一家地方零售商
※保護內網域安全之掃描Active Directory特權和特權帳戶(一)
TAG:嘶吼RoarTalk |
※Somnium Space推出可應用於VR中的3D頭像掃描應用
※使用Spring-boot快速啟動Spring應用
※快速搭建你的 github pages 個人博客——基於 Create-React-App 的單頁面應用實踐
※Less與TypeScript的簡單理解與應用,並使用WebPack打包靜態頁面
※Nipper-適用於黑客的Android應用程序
※Nike Training Club應用為Apple Watch打通運動數據!
※使用 Docker 容器化 Django Web 應用
※SpringBoot | 第十八章:web 應用開發之WebJars 使用
※Magic Leap Mobile Companion應用將作為控制器替代輸入方式
※Microsoft Graph:連接每個應用都需要的基礎數據
※electron-toolKit:構建和啟動Electron應用的工具包
※Apache Shiro 的Web應用支持指南
※Sleep+3應用更新,讓Apple Watch睡眠追蹤更為簡單
※使用gradle生成Spring Boot應用的Docker Image
※Runtime的應用
※如何識別舊版 Apple Watch 應用
※在 Kubernetes 上運行一個 Python 應用程序
※三星為 Galaxy Note 8 推時間管理應用 Thrive/滴滴 App 可解鎖小藍單車
※Facebook將為iPhone推出精簡版應用
※Google 計劃在 Chromebook 中增加容器化的 Linux 應用