
htcap est un scanner d'applications web capable d'explorer récursivement les applications monopages (SPA) en interceptant les appels AJAX et les changements DOM.
htcap est un scanner d'applications web capable de crawler récursivement les applications monopages (SPA) en interceptant les appels ajax et les modifications du DOM.
Htcap n'est pas simplement un scanner de vulnérabilités de plus, car il est axé sur le processus de crawl et vise à détecter et intercepter les appels ajax/fetch, websockets, jsonp, etc. Il utilise ses propres fuzzers ainsi qu'un ensemble d'outils externes pour découvrir des vulnérabilités et est conçu pour être un outil à la fois pour les tests de pénétration manuels et automatisés des applications web modernes.
Il dispose également d'un framework petit mais puissant pour développer rapidement des fuzzers personnalisés avec moins de 60 lignes de python. Les fuzzers peuvent fonctionner avec des données GET/POST, des charges utiles XML et JSON et passer de POST à GET. Bien sûr, les fuzzers s'exécutent en parallèle dans un environnement multithreadé.
Ceci est la toute première version qui utilise headless chrome au lieu de phantomjs. Le moteur de crawl Javascript de Htcap a été réécrit pour tirer parti des nouvelles fonctionnalités async/await d'Ecmascript et a été converti en un module nodjes construit sur Puppetteer.
Plus d'infos ici.
La vidéo ci-dessous montre htcap en train de crawler gmail.
Le crawl a duré plusieurs heures et environ 3000 requêtes XHR ont été capturées.
Installez les prérequis et exécutez la commande suivante :
$ git clone https://github.com/fcavallarin/htcap.git htcap
$ htcap/htcap.py
Installez Docker et exécutez la commande suivante :
$ git clone https://github.com/fcavallarin/htcap.git htcap
$ cd htcap
$ docker build -t htcap --build-arg HTCAP_VERSION=master . # remplacez master par le hash de commit ou la branche htcap souhaitée
$ mkdir -p htcap-out && docker run -v "$(pwd)/htcap-out/":/out/ --rm --name htcap htcap
$ docker exec -it htcap bash
$ htcap # vous pouvez maintenant utiliser htcap dans le conteneur Docker
Vous pouvez accéder aux services écoutant sur l'hôte Docker depuis l'intérieur du conteneur Docker en utilisant le nom d'hôte host.docker.internal.
Pour obtenir l'adresse IP de host.docker.internal, exécutez la commande suivante à l'intérieur du conteneur Docker :
getent hosts host.docker.internal | awk '{print $1;}'
La documentation, des exemples et des démos peuvent être trouvés ici
Ce programme est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier selon les termes de la GNU General Public License telle que publiée par la Free Software Foundation ; soit la version 2 de la Licence, ou(à votre choix) toute version ultérieure.