
Un script de Python que encuentra endpoints en archivos JavaScript.
LinkFinder es un script en Python diseñado para descubrir endpoints y sus parámetros en archivos JavaScript. De esta manera, los testers de penetración y cazadores de bugs pueden recopilar nuevos endpoints ocultos en los sitios web que están probando, obteniendo así nuevos terrenos de prueba que posiblemente contengan nuevas vulnerabilidades. Lo hace utilizando jsbeautifier para Python en combinación con una expresión regular bastante grande. La expresión regular consta de cuatro pequeñas expresiones regulares. Estas son responsables de encontrar:
https://example.com/*)/\* o ../*)text/test.php)test.php)La salida se proporciona en HTML o texto plano. @karel_origin ha escrito una extensión de Chrome para LinkFinder que se puede encontrar aquí.

LinkFinder es compatible con Python 3.
$ git clone https://github.com/GerbenJavado/LinkFinder.git
$ cd LinkFinder
$ python setup.py install
LinkFinder depende de los módulos de Python argparse y jsbeautifier. Estas dependencias se pueden instalar todas 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, use ese archivo como entrada):python linkfinder.py -i burpfile -b
python linkfinder.py -i 'Desktop/*.js' -r ^/api/ -o results.html
Construir la imagen Docker:
docker build -t linkfinder
Ejecutar con Docker
docker run --rm -v $(pwd):/linkfinder/output linkfinder -i http://example.com/1.js -o /linkfinder/output/output.html
Asegúrese de usar la ruta /linkfinder/output en su ruta de salida, o la salida se perderá cuando el contenedor se detenga.
pytest test_parser.py
| Forma Corta | Forma Larga | Descripción |
|---|
| -i | --input | Ingrese una: URL, archivo o carpeta. Para carpetas se puede usar un comodín (ej. '/*.js'). |
| -o | --output | "cli" para imprimir en STDOUT, de lo contrario dónde guardar el archivo HTML. Por defecto: output.html |
| -r | --regex | Expresión regular para filtrar endpoints encontrados (ej. ^/api/) |
| -d | --domain | Activar al analizar un dominio completo. Enumera todos los archivos JS encontrados. |
| -b | --burp | Activar al ingresar un archivo 'Save selected' de Burp que contenga múltiples archivos JS |
| -c | --cookies | Agregar cookies a la solicitud |
| -h | --help | muestra el mensaje de ayuda y sale |