{"id":13844666,"url":"https://github.com/JohnWoodman/FES","last_synced_at":"2025-07-12T00:31:06.134Z","repository":{"id":89525691,"uuid":"280531257","full_name":"JohnWoodman/FES","owner":"JohnWoodman","description":"Fast Endpoint Scanner","archived":false,"fork":false,"pushed_at":"2020-12-23T04:50:16.000Z","size":159721,"stargazers_count":52,"open_issues_count":1,"forks_count":6,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-08-05T17:42:50.967Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JohnWoodman.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2020-07-17T21:49:16.000Z","updated_at":"2024-07-21T12:38:09.000Z","dependencies_parsed_at":"2024-02-16T16:22:17.359Z","dependency_job_id":"7f238739-fb84-4289-a8cb-119547cd7624","html_url":"https://github.com/JohnWoodman/FES","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnWoodman%2FFES","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnWoodman%2FFES/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnWoodman%2FFES/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnWoodman%2FFES/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JohnWoodman","download_url":"https://codeload.github.com/JohnWoodman/FES/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225772722,"owners_count":17521877,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-04T17:02:51.099Z","updated_at":"2024-11-21T17:30:40.929Z","avatar_url":"https://github.com/JohnWoodman.png","language":"Rust","funding_links":[],"categories":["Rust (42)","Rust"],"sub_categories":[],"readme":"# FES - Fast Endpoint Scanner\nA web application endpoint scanner written in Rust, designed to put less load on the domains it scans with parsing features to help grab the important stuff (inspired by tomnomnom's meg).\n```\n          _____                    _____                    _____          \n         /\\    \\                  /\\    \\                  /\\    \\         \n        /::\\    \\                /::\\    \\                /::\\    \\        \n       /::::\\    \\              /::::\\    \\              /::::\\    \\       \n      /::::::\\    \\            /::::::\\    \\            /::::::\\    \\      \n     /:::/\\:::\\    \\          /:::/\\:::\\    \\          /:::/\\:::\\    \\     \n    /:::/__\\:::\\    \\        /:::/__\\:::\\    \\        /:::/__\\:::\\    \\    \n   /::::\\   \\:::\\    \\      /::::\\   \\:::\\    \\       \\:::\\   \\:::\\    \\   \n  /::::::\\   \\:::\\    \\    /::::::\\   \\:::\\    \\    ___\\:::\\   \\:::\\    \\  \n /:::/\\:::\\   \\:::\\    \\  /:::/\\:::\\   \\:::\\    \\  /\\   \\:::\\   \\:::\\    \\ \n/:::/  \\:::\\   \\:::\\____\\/:::/__\\:::\\   \\:::\\____\\/::\\   \\:::\\   \\:::\\____\\\n\\::/    \\:::\\   \\::/    /\\:::\\   \\:::\\   \\::/    /\\:::\\   \\:::\\   \\::/    /\n \\/____/ \\:::\\   \\/____/  \\:::\\   \\:::\\   \\/____/  \\:::\\   \\:::\\   \\/____/ \n          \\:::\\    \\       \\:::\\   \\:::\\    \\       \\:::\\   \\:::\\    \\     \n           \\:::\\____\\       \\:::\\   \\:::\\____\\       \\:::\\   \\:::\\____\\    \n            \\::/    /        \\:::\\   \\::/    /        \\:::\\  /:::/    /    \n             \\/____/          \\:::\\   \\/____/          \\:::\\/:::/    /     \n                               \\:::\\    \\               \\::::::/    /      \n                                \\:::\\____\\               \\::::/    /       \n                                 \\::/    /                \\::/    /        \n                                  \\/____/                  \\/____/   \n                                  \n```\n\u003cimg src=\"https://img.shields.io/badge/Built%20with-Rust-Purple\"\u003e\n\n## Installation\n### Debian Based\n[You can download the latest binary or .deb file from the releases page](https://github.com/JohnWoodman/FES/releases)\n### Building From Source\n1. Make sure you have cargo and rust installed\n2. Git clone the repo\n3. cd into the git repo and run `carg build --release`\n4. The binary is located at `target/release/fes`\n5. You can then symlink to the binary or move it to a directory in your PATH\n## Usage\n```                                                                                \nfes 1.1\nJohn Woodman \u003cjohn.woodman11@gmail.com\u003e\nFast Endpoint Scanner Built In Rust\n\nUSAGE:\n    fes [FLAGS] [OPTIONS] --paths \u003cpaths_file\u003e --urls \u003curls_file\u003e\n\nFLAGS:\n    -a, --anomalies          Output sorted anomalous responses based on hashed response body (use with -t, default\n                             threshold is 3) (requires -g flag)\n    -r, --follow-redirect    Follow redirects (up to 10)\n    -s, --hash-output        Store only the hash of the response body (takes up a lot less space)\n    -h, --help               Prints help information\n    -V, --version            Prints version information\n    -v, --verbose            Verbose output\n\nOPTIONS:\n    -f, --status-code=\u003callowed_statuses\u003e\n            Filter and store only the specified status codes (comma separated)\n\n    -g, --parse \u003cdir\u003e\n            Specify this flag for parsing an existing fes output directory (this flag is required in order to use the\n            following parsing flags: --anomalies (-a), --keyword (-k), --anomaly-threshold (-t)\n    -d, --disallowed-status-code=\u003cdisallowed_statuses\u003e\n            Filter and don't store the specified status codes (comma separated)\n\n    -k, --keyword=\u003ckeywords\u003e\n            Specify keywords to search for in responses to output (comma separated) (requires -g flag)\n\n    -t, --anomaly-threshold \u003climit_val\u003e\n            Specify the minimum threshold of duplicate responses for anomalies (requires -g flag)\n\n    -c, --concurrency \u003cnum\u003e                               Set the number of parallel requests [default: 20]\n    -o, --output \u003coutput_dir\u003e                             Specify the directory for output [default: fes_out]\n    -p, --paths \u003cpaths_file\u003e                              File with list of endpoints\n    -x, --timeout \u003ctimeout\u003e                               Specify the timeout (in seconds) for the requests [default: 3]\n    -u, --urls \u003curls_file\u003e                                File with list of urls\n```\n## Examples\nThe below example scans the given urls.txt for the given paths.txt, only saving responses with status code 200 (-f=200), following redirects (-r), sending 100 requests at a time (-c 100), and storing the output in the directory `test_output/` (-o test_output):\n```\nfes --paths paths.txt --urls urls.txt -f=200 -r -c 100 -o test_output\n```\nThe below example is parsing an already existing FES output directory (-g test_output/), printing unique responses (-a), and printing responses that contain the keyword \"password\" (-k=password):\n```\nfes -g test_output/ -a -k=password\n``` \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJohnWoodman%2FFES","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FJohnWoodman%2FFES","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJohnWoodman%2FFES/lists"}