
Скрипт на Python для поиска конечных точек в JavaScript-файлах.
LinkFinder — это скрипт на Python, предназначенный для обнаружения конечных точек и их параметров в JavaScript-файлах. Благодаря этому тестировщики на проникновение и охотники за багами могут находить новые, скрытые конечные точки на тестируемых сайтах. Это открывает новые области для тестирования, которые могут содержать уязвимости. Скрипт использует jsbeautifier для Python в сочетании с довольно большим регулярным выражением. Регулярное выражение состоит из четырёх небольших частей, отвечающих за поиск:
https://example.com/*)/\* или ../*)text/test.php)test.php)Результат выводится в формате HTML или обычного текста. @karel_origin написал расширение для Chrome, которое можно найти здесь.

LinkFinder поддерживает Python 3.
$ git clone https://github.com/GerbenJavado/LinkFinder.git
$ cd LinkFinder
$ python setup.py install
LinkFinder зависит от модулей Python argparse и jsbeautifier. Все эти зависимости можно установить с помощью 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, передайте этот файл как входной):python linkfinder.py -i burpfile -b
python linkfinder.py -i 'Desktop/*.js' -r ^/api/ -o results.html
Сборка Docker-образа:
docker build -t linkfinder
Запуск с Docker
docker run --rm -v $(pwd):/linkfinder/output linkfinder -i http://example.com/1.js -o /linkfinder/output/output.html
Убедитесь, что в пути вывода используется /linkfinder/output, иначе результат будет потерян при завершении контейнера.
pytest test_parser.py
| Краткая форма | Полная форма | Описание |
|---|
| -i | --input | Ввод: URL, файл или папка. Для папок можно использовать маску (например, '/*.js'). |
| -o | --output | "cli" для вывода в STDOUT, иначе путь для сохранения HTML-файла. По умолчанию: output.html |
| -r | --regex | Регулярное выражение для фильтрации найденных конечных точек (например, ^/api/) |
| -d | --domain | Используйте при анализе целого домена. Перечисляет все найденные JS-файлы. |
| -b | --burp | Используйте при передаче файла Burp 'Save selected', содержащего несколько JS-файлов. |
| -c | --cookies | Добавить cookies к запросу. |
| -h | --help | Показать справку и выйти. |