DEV Community

Gerrishon Sirere
Gerrishon Sirere

Posted on

Getting Started with webprobe

Twitter Follow

Logo

webprobe

Nifty and sophisticated web path scanner

A sophisticated web path scanner designed for the most descerning bug bounty hunters.

This CLI brute forces directories and files in webservers.

Installation & Usage

Requirement: python 3.8 or higher

  • Install with PyPi: pip install webprobe

How to use

Some common examples on how to use webprobe.

💡 If you need to see a list of all options, just use the -h | --help argument.

To use multiple wordlists, you can separate your wordlists with commas. Example: wordlist1.txt,wordlist2.txt

Simple usage


webprobe -u https://example.com

Enter fullscreen mode Exit fullscreen mode

webprobe -e php,html,js -u https://example.com

Enter fullscreen mode Exit fullscreen mode
webprobe -e php,html,js -u https://exaple.com -w /path/to/wordlist
Enter fullscreen mode Exit fullscreen mode

Pausing progress

You can pause the scanning progress with CTRL+C from here, you can save the progress (and continue later), skip the current target, or skip the current sub-directory.

Recursion

  • Brutforcing recursively can be achieved using -r or --recursive flag.

For example, if webprobe finds admin/, it will brute-force admin/* (* is where it brute forces).


webprobe -e php,html,js -u https://example.com -r

Enter fullscreen mode Exit fullscreen mode
  • You can set the max recursion depth with --recursion-depth and status codes to recurse with --recursion-status

webprobe -e php,html,js -u https://example.com -r --recursion-depth 3 --recursion-status 200-39

Enter fullscreen mode Exit fullscreen mode
  • You can brute force recursively all found paths, not just paths end with / using --force-recursive flag.

  • You can recursively brute-force all depths of a path (a/b/c => add a/, a/b/) using --deep-recursive flag.

  • If there are sub-directories that you do not want to brute-force recursively use --exclude-subdirs flag.


webprobe -e php,html,js -u https://example.com -r --exclude-subdirs image/,media/,css/

Enter fullscreen mode Exit fullscreen mode

Threads

Thread number (-t | --threads) reflects the number of separated brute force processes. The bigger the thread number, the faster webprobe runs. By default, the number of threads is 25, but you can increase it if you want to speed up the progress.

However, the speed still depends on the response time of the server.

💡 keep the threads number within a reasonable range because it can cause DoS (Denial of Service).


webprobe -e php,htm,js,bak,zip,tgz,txt -u https://example.com -t 20

Enter fullscreen mode Exit fullscreen mode

Filters

Use -i | --include-status and -x | --exclude-status flags to select allowed and not allowed response status-codes

For more advanced filters: --exclude-sizes, --exclude-texts, --exclude-regexps, --exclude-redirects and --exclude-response


webprobe  -e php,html,js -u https://example.com --exclude-sizes 1B,243KB

Enter fullscreen mode Exit fullscreen mode

webprobe -e php,html,js -u https://example.com --exclude-texts "403 Forbidden"

Enter fullscreen mode Exit fullscreen mode

webprobe -e php,html,js -u https://example.com --exclude-regexps "^Error$"

Enter fullscreen mode Exit fullscreen mode

webprobe -e php,html,js -u https://example.com --exclude-redirects "https://(.*).okta.com/*"

Enter fullscreen mode Exit fullscreen mode

webprobe -e php,html,js -u https://example.com --exclude-response /error.html

Enter fullscreen mode Exit fullscreen mode

Scan sub-directories

  • You can scan a list of sub-directories with --subdirs flag.

webprobe -e php,html,js -u https://example.com --subdirs /,admin/,folder/
Enter fullscreen mode Exit fullscreen mode

Proxies

  • Webprobe supports both SOCKS and HTTP proxy. You can enlist a proxy server or a list of proxy servers from a file.

webprobe -e php,html,js -u https://example.com --proxy 127.0.0.1:8080

Enter fullscreen mode Exit fullscreen mode

webprobe -e php,html,js -u https://example.com --proxy socks5://10.10.0.1:8080

Enter fullscreen mode Exit fullscreen mode

webprobe -e php,html,js -u https://example.com --proxylist proxyservers.txt

Enter fullscreen mode Exit fullscreen mode

More example commands


cat urls.txt | python3 webprobe --stdin

Enter fullscreen mode Exit fullscreen mode

webprobe -u https://example.com --max-time 360

Enter fullscreen mode Exit fullscreen mode

webprobe -u https://example.com --auth admin:pass --auth-type basic

Enter fullscreen mode Exit fullscreen mode

webprobe -u https://example.com --header-list rate-limit-bypasses.txt

Enter fullscreen mode Exit fullscreen mode

Reports

Supported report formats are: simple, plain, json, xml, md, csv, html, sqlite

💡 We will be adding yaml soon

 webprobe -e php -l URLs.txt --format plain -o report.txt
Enter fullscreen mode Exit fullscreen mode
 webprobe -e php -u https://example.com --format html -o example.json
Enter fullscreen mode Exit fullscreen mode

License📑

License: MIT

This software is licensed under the MIT License. See the License file in the top distribution directory for the full license text.

Donate🎁

In order to for us to maintain this project and grow our community of contributors.
Donate

Code of Conduct

Code of Conduct is adapted from the Contributor Covenant, version 1.2.0 available at Code of Conduct

Top comments (0)