
Uno script Python che trova endpoint nei file JavaScript
LinkFinder è uno script Python scritto per scoprire endpoint e i loro parametri nei file JavaScript. In questo modo, penetration tester e cacciatori di bug possono raccogliere nuovi endpoint nascosti nei siti web che stanno testando. Ciò si traduce in un nuovo terreno di prova, con la possibilità di contenere nuove vulnerabilità. Lo fa utilizzando jsbeautifier per Python in combinazione con un'espressione regolare piuttosto grande. L'espressione regolare è composta da quattro piccole espressioni regolari. Queste sono responsabili per trovare:
https://example.com/*)/\* o ../*)text/test.php)test.php)L'output viene fornito in HTML o testo semplice. @karel_origin ha scritto un'estensione Chrome per LinkFinder che può essere trovata qui.

LinkFinder supporta Python 3.
$ git clone https://github.com/GerbenJavado/LinkFinder.git
$ cd LinkFinder
$ python setup.py install
LinkFinder dipende dai moduli Python argparse e jsbeautifier. Queste dipendenze possono essere tutte installate usando pip.
$ 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, e fornisci quel file come input):python linkfinder.py -i burpfile -b
python linkfinder.py -i 'Desktop/*.js' -r ^/api/ -o results.html
Costruisci l'immagine Docker:
docker build -t linkfinder
Esegui con Docker
docker run --rm -v $(pwd):/linkfinder/output linkfinder -i http://example.com/1.js -o /linkfinder/output/output.html
Assicurati di usare il percorso /linkfinder/output nel tuo percorso di output, altrimenti l'output andrà perso quando il contenitore terminerà.
pytest test_parser.py
| Forma breve | Forma lunga | Descrizione |
|---|
| -i | --input | Inserisci un: URL, file o cartella. Per le cartelle è possibile utilizzare un carattere jolly (es. '/*.js'). |
| -o | --output | "cli" per stampare su STDOUT, altrimenti dove salvare il file HTML. Predefinito: output.html |
| -r | --regex | Espressione regolare per scopi di filtraggio rispetto agli endpoint trovati (es. ^/api/) |
| -d | --domain | Attiva per usare quando si analizza un intero dominio. Enumera tutti i file JS trovati. |
| -b | --burp | Attiva per usare quando si inserisce un file 'Salva selezionati' di Burp contenente più file JS |
| -c | --cookies | Aggiungi cookie alla richiesta |
| -h | --help | mostra il messaggio di aiuto ed esce |