Package: webprobe
webprobeNifty and sophisticated web path scannerA sophisticated web path scanner designed for the most descerning bug bounty hunters.This CLI brute forces directories and files in webservers.Installation & UsageRequirement: python 3.8 or higherInstall with PyPi:pip install webprobeHow to useSome common examples on how to use webprobe.:bulb: If you need to see a list of all options, just use the-h | --helpargument.To use multiple wordlists, you can separate your wordlists with commas. Example:wordlist1.txt,wordlist2.txtSimple usagewebprobe-uhttps://example.comwebprobe-ephp,html,js-uhttps://example.comwebprobe-ephp,html,js-uhttps://exaple.com-w/path/to/wordlistPausing progressYou 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.RecursionBrutforcing recursively can be achieved using-ror--recursiveflag.For example, if webprobe findsadmin/, it will brute-forceadmin/*(*is where it brute forces).webprobe-ephp,html,js-uhttps://example.com-rYou can set the max recursion depth with--recursion-depthand status codes to recurse with--recursion-statuswebprobe-ephp,html,js-uhttps://example.com-r--recursion-depth3--recursion-status200-39You can brute force recursively all found paths, not just paths end with/using--force-recursiveflag.You can recursively brute-force all depths of a path (a/b/c=> adda/,a/b/) using--deep-recursiveflag.If there are sub-directories that you do not want to brute-force recursively use--exclude-subdirsflag.webprobe-ephp,html,js-uhttps://example.com-r--exclude-subdirsimage/,media/,css/ThreadsThread 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.:bulb: keep the threads number within a reasonable range because it can cause DoS (Denial of Service).webprobe-ephp,htm,js,bak,zip,tgz,txt-uhttps://example.com-t20FiltersUse-i | --include-statusand-x | --exclude-statusflags to select allowed and not allowed response status-codesFor more advanced filters:--exclude-sizes,--exclude-texts,--exclude-regexps,--exclude-redirectsand--exclude-responsewebprobe-ephp,html,js-uhttps://example.com--exclude-sizes1B,243KBwebprobe-ephp,html,js-uhttps://example.com--exclude-texts"403 Forbidden"webprobe-ephp,html,js-uhttps://example.com--exclude-regexps"^Error$"webprobe-ephp,html,js-uhttps://example.com--exclude-redirects"https://(.*).okta.com/*"webprobe-ephp,html,js-uhttps://example.com--exclude-response/error.htmlScan sub-directoriesYou can scan a list of sub-directories with--subdirsflag.webprobe-ephp,html,js-uhttps://example.com--subdirs/,admin/,folder/ProxiesWebprobe supports both SOCKS and HTTP proxy. You can enlist a proxy server or a list of proxy servers from a file.webprobe-ephp,html,js-uhttps://example.com--proxy127.0.0.1:8080webprobe-ephp,html,js-uhttps://example.com--proxysocks5://10.10.0.1:8080webprobe-ephp,html,js-uhttps://example.com--proxylistproxyservers.txtMore example commandscaturls.txt|python3webprobe--stdinwebprobe-uhttps://example.com--max-time360webprobe-uhttps://example.com--authadmin:pass--auth-typebasicwebprobe-uhttps://example.com--header-listrate-limit-bypasses.txtReportsSupported report formats are:simple,plain,json,xml,md,csv,html,sqlite:bulb: We will be addingyamlsoonwebprobe-ephp-lURLs.txt--formatplain-oreport.txtwebprobe-ephp-uhttps://example.com--formathtml-oexample.jsonLicense📑This software is licensed under theMIT License. See theLicensefile 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.DonateCode of ConductCode of Conduct is adapted from the Contributor Covenant, version 1.2.0 available atCode of Conduct