GithubHelp home page GithubHelp logo

justm0rph3u5 / linkfinder Goto Github PK

View Code? Open in Web Editor NEW

This project forked from gerbenjavado/linkfinder

0.0 2.0 0.0 1.09 MB

A python script that finds endpoints in JavaScript files

Home Page: https://gerbenjavado.com/discovering-hidden-content-using-linkfinder

License: MIT License

Python 89.01% HTML 10.99%

linkfinder's Introduction

About LinkFinder

LinkFinder is a python script written to discover endpoints and their parameters in JavaScript files. This way penetration testers and bug hunters are able to gather new, hidden endpoints on the websites they are testing. Resulting in new testing ground, possibility containing new vulnerabilities. It does so by using jsbeautifier for python in combination with a fairly large regular expression. The regular expressions consists of four small regular expressions. These are responsible for finding:

  • Full URLs (https://example.com/*)
  • Absolute URLs or dotted URLs (/* or ../*)
  • Relative URLs with atleast one slash (text/test.php)
  • Relative URLs without a slash (test.php)

The output is given in HTML. Karel_origin has written a chrome extension for LinkFinder which can be found here.

Screenshots

LinkFinder

Installation

LinkFinder supports Python 2 & 3.

$ git clone https://github.com/GerbenJavado/LinkFinder.git
$ cd LinkFinder
$ python setup.py install

Dependencies

LinkFinder depends on the argparse and jsbeautifier python modules. These dependencies can all be installed using pip.

Usage

Short Form Long Form Description
-i --input Input a: URL, file or folder. For folders a wildcard can be used (e.g. '/*.js').
-o --output Where to save the file, including file name or output to CLI. Default: output.html
-r --regex RegEx for filtering purposes against found endpoints (e.g. ^/api/)
-d --domain Toggle to use when analyzing an entire domain. Enumerates over all found JS files.
-b --burp Toggle to use when inputting a Burp 'Save selected' file containing multiple JS files
-c --cookies Add cookies to the request
-h --help show the help message and exit

Examples

  • Most basic usage to find endpoints in an online JavaScript file and output the results to results.html:

python linkfinder.py -i https://example.com/1.js -o results.html

  • CLI ouput (doesn't use jsbeautifier, which makes it very fast):

python linkfinder.py -i https://example.com/1.js -o cli

  • Analyzing an entire domain and its JS files:

python linkfinder.py -i https://example.com -d

  • Burp input (select in target the files you want to save, right click, Save selected items, feed that file as input):

python linkfinder.py -i burpfile -b

  • Enumerating an entire folder for JavaScript files, while looking for endpoints starting with /api/ and finally saving the results to results.html:

python linkfinder.py -i 'Desktop/*.js' -r ^/api/ -o results.html

Unit-test

  • Require pytest

pytest test_parser.py

Final remarks

  • This is the first time I publicly release a tool. Contributions are much appreciated!
  • LinkFinder is published under the MIT License.
  • Thanks to @jackhcable for providing me with feedback.
  • Special thanks @edoverflow for making this project a lot cleaner and awesome.

linkfinder's People

Contributors

gerbenjavado avatar bankde avatar edoverflow avatar dostoevskylabs avatar 0xibram avatar willianvdv avatar

Watchers

James Cloos avatar Alexander avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.