Pentest-Tool #6 – XSStrike – Ein multifunktionaler XSS-Scanner

Diese Woche stellen wir in unserer Serie Pentest-Tools das Pentest-Tool #6 „XSStrike“ vor. XSStrike ist ein Scanner und wird zum Auffinden von Cross Site Scripting (XSS) Schwachstellen verwendet. Es kann auch Web Application Firewalls (WAFs) untersuchen, Fingerabdrücke erstellen und fuzzen.


Installation von XSStrike

XSStrike ist in der Regel nicht vorinstalliert, ähnlich zum Portscanner Naabu. Um ein GitHub Repository in den aktuell ausgewählten Ordner zu klonen, müssen wir in unserem Terminal folgendes eingeben:

git clone https://github.com/s0md3v/XSStrike

In diesem Beispiel klonen wir das Repository unseres Pentest-Tool #6 XSStrike. Grundsätzlich kann mit dem Befehl „git clone“ jede Quelle von Github heruntergeladen werden. Nachdem wir das Tool auf unseren Rechner geklont haben, müssen wir in den Ordner wechseln, in dem wir den Befehl „Change Directory“ nutzen.

cd XSStrike
Nun sind wir mit dem Terminal im Ordner XSStrike und können direkt mit dem Tool interagieren. Das Tool ist in Python geschrieben und es gibt eine Datei namens „requirements.txt“. Diese Datei enthält alle Abhängigkeiten, die wir benötigen, um XSStrike zu starten. Wir können mit „pip“ und einem Befehl alle Abhängigkeiten direkt installieren. „pip“ ist ein Paketverwaltungsprogramm für Python-Pakete. Mit dem Schlüsselwort „install -r“ können wir alle in „Requirements.txt“ enthaltenen Abhängigkeiten direkt installieren. Da es sich bei XSStrike um ein Python3 Programm handelt rufen wir alles mit „pip3“ auf:

pip3 install -r requirements.txt

Nachdem alle Abhängigkeiten installiert sind, lässt sich das Programm einfach starten. Wir können verifizieren, dass bei der Installation alles geklappt hat, indem wir die Hilfe aufrufen:
python3 xsstrike.py --help

XSStrike-Hilfe

Nun können wir beginnen, dass Tool zu benutzen. Wie wir am obigen Beispiel erkennen können, rufen wir das Programm mit „python3 xsstrike.py“ auf. Nun können beginnen XSS-Schwachstellen zu suchen. Dafür benötigen wir eine Testseite, die Nutzereingaben verarbeitet, dies können „Suchfunktionen“ oder „Formulare“ sein.

Cross Site Scripting (XSS) ist eine der häufigsten Schwachstellen im Internet. Sie tritt besonders gern dort auf, wo Nutzereingaben verarbeitet werden, beispielsweise in Suchfeldern oder Kontaktformularen. Schadcode der durch einen Angreifer auf die Webseite geschleust wird, wird von anderen Nutzern im Vertrauenswürdigen Kontext der Webseite geöffnet und ausgeführt. Dadurch werden besonders gern Daten geklaut oder Informationen ausgelesen. Es gibt drei verschiedene Arten von Cross Site Scripting. Diese sind folgende: Reflektierte XSS-, Persistente XSS- und DOM-basierte XSS-Angriffe. Die drei Arten von XSS werden wir in einem zukünftigen Artikel genauer vorstellen.




Pentest-Tool #6 in der Praxis

Nach der Installation können wir viele Konfigurationsmöglichkeiten setzen, wie beispielsweise das entdecken von verwundbaren Parametern oder das auslassen bestimmter Tests. In unserem Beispiel testen wir eine Webseite, welche das scannen nach Schwachstellen bei Open Bug Bounty erlaubt. Zusätzlich wollen wir Parameter entdecken und DOM-XSS nicht überprüfen.

Um das Programm zu wird folgender Befehl im Terminal eingegeben:

python3 xsstrike.py -u "https://entervending.com/search?" --params --skip-dom

XSStrike-PraxisWir können sehen, dass vier Parameter gefunden werden, allerdings keine Angriffsvektoren erstellt wurden. Das Pentest-Tool #6 kann nun genutzt werden, um XSS Schwachstellen in diversen Webanwendungen aufzufinden.