Giter Site home page Giter Site logo

hueristiq / xurlfind3r Goto Github PK

View Code? Open in Web Editor NEW
522.0 9.0 63.0 270 KB

A command-line interface (CLI) based passive URLs discovery utility. It is designed to efficiently identify known URLs of given domains by tapping into a multitude of curated online passive sources.

Home Page: https://github.com/hueristiq/xurlfind3r

License: MIT License

Go 98.49% Makefile 1.51%
osint penetration-testing penetration-testing-tools bug-bounty bug-bounty-tools ethical-hacking ethical-hacking-tools osint-tools red-teaming red-teaming-tools

xurlfind3r's Introduction

xurlfind3r

made with go go report card release open issues closed issues license maintenance contribution

xurlfind3r is a command-line interface (CLI) based passive URLs discovery utility. It is designed to efficiently identify known URLs of given domains by tapping into a multitude of curated online passive sources.

Resource

Features

  • Fetches URLs from curated passive sources to maximize results.
  • Parses URLs from wayback webpages and robots.txt snapshots.
  • Filters out duplicate URLs.
  • Supports URLs matching and filtering.
  • Supports stdin and stdout for easy integration into workflows.
  • Cross-Platform (Windows, Linux & macOS).

Installation

Install release binaries (Without Go Installed)

Visit the releases page and find the appropriate archive for your operating system and architecture. Download the archive from your browser or copy its URL and retrieve it with wget or curl:

  • ...with wget:

     wget https://github.com/hueristiq/xurlfind3r/releases/download/v<version>/xurlfind3r-<version>-linux-amd64.tar.gz
  • ...or, with curl:

     curl -OL https://github.com/hueristiq/xurlfind3r/releases/download/v<version>/xurlfind3r-<version>-linux-amd64.tar.gz

...then, extract the binary:

tar xf xurlfind3r-<version>-linux-amd64.tar.gz

TIP: The above steps, download and extract, can be combined into a single step with this onliner

curl -sL https://github.com/hueristiq/xurlfind3r/releases/download/v<version>/xurlfind3r-<version>-linux-amd64.tar.gz | tar -xzv

NOTE: On Windows systems, you should be able to double-click the zip archive to extract the xurlfind3r executable.

...move the xurlfind3r binary to somewhere in your PATH. For example, on GNU/Linux and OS X systems:

sudo mv xurlfind3r /usr/local/bin/

NOTE: Windows users can follow How to: Add Tool Locations to the PATH Environment Variable in order to add xurlfind3r to their PATH.

Install source (With Go Installed)

Before you install from source, you need to make sure that Go is installed on your system. You can install Go by following the official instructions for your operating system. For this, we will assume that Go is already installed.

go install ...

go install -v github.com/hueristiq/xurlfind3r/cmd/xurlfind3r@latest

go build ... the development Version

  • Clone the repository

     git clone https://github.com/hueristiq/xurlfind3r.git 
  • Build the utility

     cd xurlfind3r/cmd/xurlfind3r && \
     go build .
  • Move the xurlfind3r binary to somewhere in your PATH. For example, on GNU/Linux and OS X systems:

     sudo mv xurlfind3r /usr/local/bin/

    NOTE: Windows users can follow How to: Add Tool Locations to the PATH Environment Variable in order to add xurlfind3r to their PATH.

NOTE: While the development version is a good way to take a peek at xurlfind3r's latest features before they get released, be aware that it may have bugs. Officially released versions will generally be more stable.

Post Installation

xurlfind3r will work right after installation. However, BeVigil, Github and Intelligence X require API keys to work, URLScan supports API key but not required. The API keys are stored in the $HOME/.hueristiq/xurlfind3r/config.yaml file - created upon first run - and uses the YAML format. Multiple API keys can be specified for each of these source from which one of them will be used.

Example config.yaml:

NOTE: The keys/tokens below are invalid, use your own keys/tokens!

version: 0.4.0
sources:
    - bevigil
    - commoncrawl
    - github
    - intelx
    - otx
    - urlscan
    - wayback
keys:
    bevigil:
        - awA5nvpKU3N8ygkZ
    github:
        - d23a554bbc1aabb208c9acfbd2dd41ce7fc9db39
        - asdsd54bbc1aabb208c9acfbd2dd41ce7fc9db39
    intelx:
        - 2.intelx.io:00000000-0000-0000-0000-000000000000
    urlscan:
        - d4c85d34-e425-446e-d4ab-f5a3412acbe8

Usage

To display help message for xurlfind3r use the -h flag:

xurlfind3r -h

help message:


                 _  __ _           _ _____
__  ___   _ _ __| |/ _(_)_ __   __| |___ / _ __
\ \/ / | | | '__| | |_| | '_ \ / _` | |_ \| '__|
 >  <| |_| | |  | |  _| | | | | (_| |___) | |
/_/\_\\__,_|_|  |_|_| |_|_| |_|\__,_|____/|_|
                                          v0.4.0

                with <3 by Hueristiq Open Source

USAGE:
  xurlfind3r [OPTIONS]

CONFIGURATION:
 -c, --configuration string          configuration file path (default: $HOME/.config/xurlfind3r/config.yaml)

INPUT:
 -d, --domain string[]               target domain
 -l, --list string                   target domains' list file path

   TIP: For multiple input domains use comma(,) separated value with `-d`,
        specify multiple `-d`, load from file with `-l` or load from stdin.

SCOPE:
     --include-subdomains bool       match subdomain's URLs

SOURCES:
     --sources bool                  list supported sources
 -u, --use-sources string[]          comma(,) separated sources to use
 -e, --exclude-sources string[]      comma(,) separated sources to exclude
     --parse-wayback-robots bool     with wayback, parse robots.txt snapshots
     --parse-wayback-source bool     with wayback, parse source code snapshots

FILTER & MATCH:
 -f, --filter string                 regex to filter URLs
 -m, --match string                  regex to match URLs

OUTPUT:
     --no-color bool                 disable colored output
 -o, --output string                 output URLs file path
 -O, --output-directory string       output URLs directory path
 -s, --silent bool                   display output subdomains only
 -v, --verbose bool                  display verbose output

Examples

Basic

xurlfind3r -d hackerone.com --include-subdomains

Filter Regex

# filter images
xurlfind3r -d hackerone.com --include-subdomains -f '`^https?://[^/]*?/.*\.(jpg|jpeg|png|gif|bmp)(\?[^\s]*)?$`'

Match Regex

# match js URLs
xurlfind3r -d hackerone.com --include-subdomains -m '^https?://[^/]*?/.*\.js(\?[^\s]*)?$'

Contributing

Issues and Pull Requests are welcome! Check out the contribution guidelines.

Licensing

This utility is distributed under the MIT license.

Credits

Contributors

Thanks to the amazing contributors for keeping this project alive.

contributors

Similar Projects

Thanks to similar open source projects - check them out, may fit in your workflow.

gau โ—‡ waybackurls โ—‡ waymore

xurlfind3r's People

Contributors

dependabot[bot] avatar enenumxela avatar hue0x2751 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

xurlfind3r's Issues

config.yaml new loaction

Hey there,

config.yaml file is no longer under $HOME/.hueristiq/xurlfind3r/config.yaml , it's currently under /$HOME/.config/xurlfind3r/config.yaml , please update it in the readme file

[BUG]

Description
Hi, thanks for the amazing tool. When I playing around using 'commoncrawl' as the source I found it sometimes can print out urls but sometimes can't. So I modified the code to print out the errors alongside then I found commoncrawl returned tons of 503 and timeout

Steps To Reproduce
./sigurlfind3r -d tesla.com --include-subs -uS commoncrawl

Screenshots
Screenshot_sigurlfind3r_1
Screenshot_sigurlfind3r_2

Additional context
I tested over my home network as well as a VPS located on Los Angeles.
I changed a bit of the code to avoid parallel processing and increased the timeout to 60s from 10s. Then it worked as expected.
I haven't found any official documented rate limit of commoncrawl though, but reliability is the top concern in my opinion, especially in terms of automation. Just for your reference and thanks again for your work :)

Question

I see this alot but figured i would ask you, why would you use import "github.com/signedsecurity/sigurlfind3r/pkg/sigurlfind3r/session"

when you can just

import crawler_utils "path_to_File_name_of_package"

URLscan check is limited

Hi,
As it stands, the URLScan check seems to me to be limited for two reasons :

[BUG]

Describe the bug
panic: runtime error: index out of range [0] with length 0

Steps To Reproduce
./sigurlfind3r -d example.com -iS
Output
[ INF ] fetching urls for

panic: runtime error: index out of range [0] with length 0

goroutine 18 [running]:
github.com/signedsecurity/sigurlfind3r/pkg/sigurlfind3r/scraping/sources/commoncrawl.(*Source).Run.func1()
/Users/emilaltynbaev/Documents/bugbounty/tools/sigurlfind3r/pkg/sigurlfind3r/scraping/sources/commoncrawl/commoncrawl.go:82 +0x7bc
created by github.com/signedsecurity/sigurlfind3r/pkg/sigurlfind3r/scraping/sources/commoncrawl.(*Source).Run
/Users/emilaltynbaev/Documents/bugbounty/tools/sigurlfind3r/pkg/sigurlfind3r/scraping/sources/commoncrawl/commoncrawl.go:63 +0xf2

Additional context
MacOS 12.1

help

how use cat sub.txt | sigurlfind3r

Option to filter extensions

Hi,
Thanks for this tool !

I think it would be interesting to add a flag to filter out certain extensions, something like :

-f     --filter                            comma(,) separated extensions to excludes (ex: jpg,png,svg)

Regards

Option to specify config file

Hi,
I think it would be great to add a flag to specify the config file location, something like :

-c     --config                            config file location

Regards

No results from intelx

Hey there, I hope all is good.

While we already discussed this, I will create an issue for it to keep things on track.

The tool does indeed issue a request to intelx /phonebook/search path, however, it doesn't return any results in return.

Output save in File

Hello , Really great tool but I noticed that there is no option for saving output in a file that causes a lot of problem for me. It would be really really best if you kindly add this feature to this tool for saving output in a file.

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.