
htcap è uno scanner per applicazioni web in grado di eseguire una scansione ricorsiva di applicazioni a pagina singola (SPA) intercettando le chiamate ajax e le modifiche del DOM.
htcap è uno scanner per applicazioni web in grado di effettuare il crawling ricorsivo di applicazioni a pagina singola (SPA) intercettando chiamate ajax e modifiche del DOM.
Htcap non è solo un altro scanner di vulnerabilità, poiché è focalizzato sul processo di crawling e mira a rilevare e intercettare chiamate ajax/fetch, websocket, jsonp ecc. Utilizza i propri fuzzer insieme a un set di strumenti esterni per scoprire vulnerabilità ed è progettato per essere uno strumento sia per test di penetrazione manuali che automatici di applicazioni web moderne.
Include anche un piccolo ma potente framework per sviluppare rapidamente fuzzer personalizzati con meno di 60 righe di Python. I fuzzer possono lavorare con dati GET/POST, payload XML e JSON e passare tra POST e GET. Naturalmente, i fuzzer funzionano in parallelo in un ambiente multi-thread.
Questa è la primissima versione che utilizza Chrome headless invece di phantomjs. Il motore di crawling Javascript di Htcap è stato riscritto per sfruttare le nuove funzionalità async/await di ecmascript ed è stato convertito in un modulo Node.js basato su Puppetteer.
Maggiori informazioni qui.
Il video qui sotto mostra htcap mentre esegue il crawling di Gmail.
Il crawling è durato molte ore e sono state catturate circa 3000 richieste XHR.
Installa i requisiti ed esegui il seguente:
$ git clone https://github.com/fcavallarin/htcap.git htcap
$ htcap/htcap.py
Installa Docker ed esegui il seguente:
$ git clone https://github.com/fcavallarin/htcap.git htcap
$ cd htcap
$ docker build -t htcap --build-arg HTCAP_VERSION=master . # replace master by the desired htcap commit hash or branch
$ mkdir -p htcap-out && docker run -v "$(pwd)/htcap-out/":/out/ --rm --name htcap htcap
$ docker exec -it htcap bash
$ htcap # now you can use htcap in the Docker container
Puoi accedere ai servizi in ascolto sull'host Docker dall'interno del container Docker usando il nome host host.docker.internal.
Per ottenere l'IP per host.docker.internal, esegui il seguente comando all'interno del container Docker:
getent hosts host.docker.internal | awk '{print $1;}'
Documentazione, esempi e demo sono disponibili qui
Questo programma è software libero; puoi ridistribuirlo e/o modificarlo secondo i termini della GNU General Public License come pubblicata dalla Free Software Foundation; sia la versione 2 della Licenza, o (a tua scelta) qualsiasi versione successiva.