
Ein Python-Skript, das Endpunkte in JavaScript-Dateien findet
LinkFinder ist ein Python-Skript, das entwickelt wurde, um Endpunkte und deren Parameter in JavaScript-Dateien zu entdecken. Auf diese Weise können Pentester und Bug-Hunter neue, versteckte Endpunkte auf den von ihnen getesteten Websites sammeln. Dies führt zu neuen Testmöglichkeiten, die möglicherweise neue Schwachstellen enthalten. Es verwendet dazu jsbeautifier für Python in Kombination mit einem relativ großen regulären Ausdruck. Der reguläre Ausdruck besteht aus vier kleinen regulären Ausdrücken. Diese sind für das Auffinden von Folgendem verantwortlich:
https://example.com/*)/\* or ../*)text/test.php)test.php)Die Ausgabe erfolgt in HTML oder Klartext. @karel_origin hat eine Chrome-Erweiterung für LinkFinder geschrieben, die hier zu finden ist.

LinkFinder unterstützt Python 3.
$ git clone https://github.com/GerbenJavado/LinkFinder.git
$ cd LinkFinder
$ python setup.py install
LinkFinder ist von den Python-Modulen argparse und jsbeautifier abhängig. Diese Abhängigkeiten können alle mit pip installiert werden.
$ pip3 install -r requirements.txt
python linkfinder.py -i https://example.com/1.js -o results.html
python linkfinder.py -i https://example.com/1.js -o cli
python linkfinder.py -i https://example.com -d
Save selected items, geben Sie diese Datei als Eingabe ein):python linkfinder.py -i burpfile -b
python linkfinder.py -i 'Desktop/*.js' -r ^/api/ -o results.html
Das Docker-Image erstellen:
docker build -t linkfinder
Mit Docker ausführen
docker run --rm -v $(pwd):/linkfinder/output linkfinder -i http://example.com/1.js -o /linkfinder/output/output.html
Stellen Sie sicher, dass Sie den Pfad /linkfinder/output in Ihrem Ausgabepfad verwenden, da die Ausgabe sonst verloren geht, wenn der Container beendet wird.
pytest test_parser.py
| Kurzform | Langform | Beschreibung |
|---|
| -i | --input | Geben Sie eine URL, Datei oder einen Ordner ein. Für Ordner kann ein Platzhalter verwendet werden (z. B. '/*.js'). |
| -o | --output | "cli", um auf STDOUT auszugeben, ansonsten der Speicherort für die HTML-Datei. Standard: output.html |
| -r | --regex | RegEx für Filterzwecke gegen gefundene Endpunkte (z. B. ^/api/) |
| -d | --domain | Umschalten, wenn eine gesamte Domain analysiert wird. Zählt alle gefundenen JS-Dateien auf. |
| -b | --burp | Umschalten, wenn eine Burp-Datei 'Save selected' mit mehreren JS-Dateien eingegeben wird |
| -c | --cookies | Cookies zur Anfrage hinzufügen |
| -h | --help | zeigt die Hilfemeldung an und beendet das Programm |