
JavaScript 파일에서 엔드포인트를 찾는 Python 스크립트
LinkFinder는 JavaScript 파일에서 엔드포인트와 그 매개변수를 발견하기 위해 작성된 파이썬 스크립트입니다. 이를 통해 침투 테스터와 버그 헌터는 테스트 중인 웹사이트에서 새로운 숨겨진 엔드포인트를 수집할 수 있습니다. 이는 새로운 테스트 영역을 제공하며, 새로운 취약점을 포함할 가능성이 있습니다. 이 스크립트는 Python용 jsbeautifier와 상당히 큰 정규 표현식을 함께 사용하여 작동합니다. 정규 표현식은 네 개의 작은 정규 표현식으로 구성됩니다. 이들은 다음을 찾는 역할을 합니다:
https://example.com/*)/* 또는 ../*)text/test.php)test.php)출력은 HTML 또는 일반 텍스트로 제공됩니다. @karel_origin이 LinkFinder용 Chrome 확장 프로그램을 작성했으며, 여기에서 찾을 수 있습니다.

LinkFinder는 Python 3를 지원합니다.
$ git clone https://github.com/GerbenJavado/LinkFinder.git
$ cd LinkFinder
$ python setup.py install
LinkFinder는 argparse 및 jsbeautifier Python 모듈에 의존합니다. 이러한 종속성은 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 | 여러 JS 파일이 포함된 Burp 'Save selected' 파일을 입력할 때 사용하는 토글 |
| -c | --cookies | 요청에 쿠키 추가 |
| -h | --help | 도움말 메시지를 표시하고 종료 |