歡迎來到 黑吧安全網 聚焦網絡安全前沿資訊,精華內容,交流技術心得!

AuthCov:Web認證覆蓋掃描工具

來源:本站整理 作者:佚名 時間:2019-10-07 TAG: 我要投稿

AuthCov是一個基于JavaScript的Web認證覆蓋掃描工具。

簡介
AuthCov使用Chrome headless browser(無頭瀏覽器)爬取你的Web應用程序,同時以預定義用戶身份進行登錄。在爬取階段它會攔截并記錄API請求及加載的頁面,并在下一階段,以不同的用戶帳戶“intruder”登錄,嘗試訪問發現的各個API請求或頁面。它為每個定義的intruder用戶重復此步驟。最后,它會生成一份詳細的報告,列出發現的資源以及intruder用戶是否可以訪問這些資源等。
以下是掃描本地Wordpress實例生成的示例報告:

特性
同時適用于單頁面應用程序和傳統的多頁面應用程序
處理基于令牌和基于cookie的身份驗證機制
生成HTML格式的深入報告
可以在報告中查看已爬取的各個頁面的截圖
安裝
安裝node 10。然后運行:
$ npm install -g authcov
使用
為要掃描的站點生成配置:
$ authcov new myconfig.js
更新myconfig.js中的值
運行以下命令測試配置值,以確保瀏覽器成功登錄。
$ authcov test-login myconfig.js --headless=false
爬取站點:
$ authcov crawl myconfig.js
嘗試intrusion在爬取階段發現的資源:
$ authcov intrude myconfig.js
在以下位置查看生成的報告:./tmp/report/index.html
配置
可以在配置文件中設置以下選項:
選項
類型
description
baseUrl
字符串
站點URL。這是爬蟲開始的地方。
crawlUser
對象
站點下要爬取的用戶例如:{“username”: “admin”, “password”: “1234″}
intruders
數組
 intrude在爬網階段發現的api端點和頁面。通常,這些用戶的權限與crawlUser相同或更低。要以未登錄用戶身份intrude,請添加用戶名為“Public”密碼為null的用戶。例如:[{"username": "john", "password": "4321"}, {"username": "Public", "password": null}]
type
字符串
這是單頁應用程序(即查詢API后端的javascript前端)還是更“傳統”的多頁應用程序?(選擇“mpa”或“spa”)。
authenticationType
字符串
網站是使用瀏覽器發送的cookie還是通過請求標頭中發送的令牌對用戶進行身份驗證?對于mpa,幾乎總是設置為“cookie”。在spa中,可以是“cookie”或“token”。
authorisationHeaders
數組
需要發送哪些請求標頭才能對用戶進行身份驗證?如果authenticationType=token,則應將其設置為["cookie"]。如果authenticationType=token,那么將是:["X-Auth-Token"]。
maxDepth
整數
站點爬取的最大深度。建議先從1開始,然后再嘗試更高的深度,以確保爬蟲能夠更加快速高效地完成。
verboseOutput
布爾
詳細輸出,對調試很有用。
saveResponses
布爾
從API端點保存響應正文,以便你可以在報告中查看它們。
saveScreenshots
布爾
保存已抓取頁面的瀏覽器屏幕截圖,以便你可以在報告中查看它們。
clickButtons
布爾
(實驗性功能)在每個頁面上抓取,單擊該頁面上的所有按鈕并記錄所做的任何API請求。在通過模態(modals),彈窗等進行大量用戶交互的網站上非常有用。
xhrTimeout
整數
在抓取每個頁面時等待XHR請求完成的時間(秒)。
pageTimeout
整數
在抓取時等待頁面加載的時間(秒)。
headless
布爾
將此設置為false,以便抓取工具打開Chrome瀏覽器,及查看實時的抓取情況。
unAuthorizedStatusCodes
數組
HTTP響應狀態代碼,用于決定API端點或頁面是否為請求它的用戶授權。(可選)定義函數responseIsAuthorised以確定請求是否已獲得授權。示例:[401,403,404]
ignoreLinksIncluding
數組
不要抓取包含此數組中任何字符串的網址。例如,如果設置為["/logout"],則不會抓取url:http://localhost:3000/logout。(可選)定義一個函數gnoreLink(url),以確定URL是否應該被爬取。            
ignoreAPIrequestsIncluding
array
不要記錄對包含此數組中任何字符串的URL所做的API記錄。(可選)定義函數ignoreApiRequest(url),以確定請求是否應被記錄。
ignoreButtonsIncluding
數組
如果clickButtons設置為true,則不單擊外部HTML包含此數組中任何字符串的按鈕。(可選)定義一個函數ignoreButton(url) 。
loginConfig
對象
配置瀏覽器登錄Web應用程序的方式。(可選)定義異步函數loginFunction(page, username, password)。
cookiesTriggeringPage
字符串
(可選)當authenticationType=cookie時,將設置一個頁面,以便intruder瀏覽到該頁面,然后從瀏覽器捕獲cookie。如果站點在cookie上設置了path字段,這將非常有用。默認為options.baseUrl。
tokenTriggeringPage
字符串
(可選)當authenticationType=token時,將設置一個頁面,以便intruder瀏覽到該頁面,然后從截獲的API請求中捕獲authorisationHeaders。如果站點的baseUrl沒有發出任何API請求,那么這可能很有用,因此無法從該頁面捕獲auth標頭。默認為options.baseUrl。
配置登錄
在配置文件中有兩種配置登錄的方法:
使用默認登錄機制,使用puppeteer在指定的輸入中輸入用戶名和密碼,然后單擊指定的提交按鈕。這可以通過在配置文件中設置loginConfig選項來配置。你也可以查看此處的示例。

[1] [2]  下一頁

【聲明】:黑吧安全網(http://www.gkrbnd.live)登載此文出于傳遞更多信息之目的,并不代表本站贊同其觀點和對其真實性負責,僅適于網絡安全技術愛好者學習研究使用,學習中請遵循國家相關法律法規。如有問題請聯系我們,聯系郵箱[email protected],我們會在最短的時間內進行處理。
  • 最新更新
    • 相關閱讀
      • 本類熱門
        • 最近下載
        福彩原副主任