
htcap ist ein Webanwendungs-Scanner, der Single-Page-Anwendungen (SPA) rekursiv durchsuchen kann, indem er AJAX-Aufrufe und DOM-Änderungen abfängt.
htcap ist ein Webanwendungs-Scanner, der in der Lage ist, Single-Page-Anwendungen (SPA) rekursiv zu durchsuchen, indem er Ajax-Aufrufe und DOM-änderungen abfängt.
Htcap ist nicht nur ein weiterer Schwachstellenscanner, da es sich auf den Crawling-Prozess konzentriert und darauf abzielt, Ajax/Fetch-Aufrufe, WebSockets, JSONP usw. zu erkennen und abzufangen. Es verwendet eigene Fuzzer sowie eine Reihe externer Werkzeuge, um Schwachstellen zu entdecken, und ist als Werkzeug für sowohl manuelle als auch automatisierte Penetrationstests moderner Webanwendungen konzipiert.
Es verfügt außerdem über ein kleines, aber leistungsstarkes Framework zur schnellen Entwicklung benutzerdefinierter Fuzzer mit weniger als 60 Zeilen Python. Die Fuzzer können mit GET/POST-Daten, XML- und JSON-Payloads arbeiten und zwischen POST und GET wechseln. Natürlich laufen die Fuzzer parallel in einer multithreaded Umgebung.
Dies ist die allererste Version, die headless Chrome anstelle von PhantomJS verwendet. Die Javascript-Crawling-Engine von Htcap wurde neu geschrieben, um die neuen Async/Await-Funktionen von ECMAScript zu nutzen, und wurde in ein Node.js-Modul umgewandelt, das auf Puppeteer aufbaut.
Weitere Informationen hier.
Das folgende Video zeigt htcap beim Crawlen von Gmail.
Der Crawl dauerte viele Stunden und etwa 3000 XHR-Anfragen wurden erfasst.
Installieren Sie die Voraussetzungen und führen Sie Folgendes aus:
$ git clone https://github.com/fcavallarin/htcap.git htcap
$ htcap/htcap.py
Installieren Sie Docker und führen Sie Folgendes aus:
$ 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
Sie können auf Dienste, die auf dem Docker-Host lauschen, aus dem Docker-Container heraus mit dem Hostnamen host.docker.internal zugreifen.
Um die IP für host.docker.internal zu erhalten, führen Sie den folgenden Befehl im Docker-Container aus:
getent hosts host.docker.internal | awk '{print $1;}'
Dokumentation, Beispiele und Demos finden Sie hier
Dieses Programm ist freie Software; Sie können es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren; entweder gemäß Version 2 der Lizenz oder (nach Ihrer Wahl) jeder späteren Version.