Code Monkey home page Code Monkey logo

feroxbuster's People

Contributors

aancw avatar aidanhall34 avatar allcontributors[bot] avatar andreademurtas avatar bpsizemore avatar bsysop avatar cortantief avatar craig avatar dependabot-preview[bot] avatar dependabot[bot] avatar eltociear avatar eonraider avatar epi052 avatar evanrichter avatar godylockz avatar herrcykel avatar joohoi avatar jsav0 avatar kmanc avatar lavafroth avatar md-levitan avatar n-thumann avatar n0kovo avatar noraj avatar restyled-commits avatar spikecodes avatar tomtastic avatar tritoke avatar udoprog avatar wtwver 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  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

feroxbuster's Issues

improve integration tests

very little is currently integration tested, any improvement here is beneficial. Will map out a lit of needs later

Fuzzing terminate due to unknow stack trace error

Describe the bug
Hello
Thank you for the awesome tool

I've been encountering this issue when fuzzing a url it abort the fuzzing and throw so unknow errors
To Reproduce
Steps to reproduce the behavior:

  1. Downloaded the latest relases
  2. Made an alias for automation looks like this
fastfuzz> # Defined in /root/.config/fish/functions/fastfuzz.fish @ line 1
          function fastfuzz
              feroxbuster --url $argv -w /opt/SecLists/Discovery/Web-Content/dic.txt -d 3 -x html,aspx,php,asp,log
          end

Works in fish
3. I run fastfuzz

Expected behavior
Bruteforce recursively and print out results

Traceback / Error Output

[>-------------------] - 8m     44744/1018686 85/s    http://95.163.33.203/
thread 'tokio-runtime-worker' panicked at 'Already joining!', /github/home/.cargo/registry/src/github.com-1ecc6299db9ec823/indicatif-0.15.0/src/progress.rs:1035:13
stack backtrace:
   0:           0x679af8 - <unknown>
   1:           0x48d8ec - <unknown>
   2:           0x6791a6 - <unknown>
   3:           0x678baa - <unknown>
   4:           0x678431 - <unknown>
   5:           0x533e94 - <unknown>
   6:           0x53fbca - <unknown>
   7:           0x4e8dea - <unknown>
   8:           0x68d290 - <unknown>
   9:           0x68d025 - <unknown>
  10:           0x6873c5 - <unknown>
fish: Job 1, 'feroxbuster --url $argv -w /optโ€ฆ' terminated by signal SIGABRT (Abort)

Environment (please complete the following information):

  • feroxbuster version: 1.0.0
  • OS [WSL 1]

[FEATURE REQUEST] add replay proxy option

Is your feature request related to a problem? Please describe.
I only want to see unfiltered responses in burp

Describe the solution you'd like
A --replay-proxy option that would only send responses identified as valid (basically not filtered out) to the proxy

Additional context
Thanks to @aringo and @hellor00t for the suggestion

[BUG] SHA256 mismatch for MacOS

Describe the bug
Using the 2 provided commands to install on Mac gives a SHA256 mismatch

To Reproduce
Steps to reproduce the behavior:

  1. brew tap tgotwig/feroxbuster
  2. brew install feroxbuster

Expected behavior
A successful install

Traceback / Error Output
brew install feroxbuster
Updating Homebrew...
==> Installing feroxbuster from tgotwig/feroxbuster
==> Downloading https://raw.githubusercontent.com/epi052/feroxbuster/master/ferox-config.toml.example
######################################################################## 100.0%
Error: SHA256 mismatch
Expected: 70ace4e70c7f532cc4f7e7958106d035c62bd9d12a6a91de433b815f607911ba
Actual: d53171328e75472612470e337ec374376ede56631d12129aecb1cd29fefb69b8

Environment (please complete the following information):

  • feroxbuster version: [ v1.4.0]
  • OS [mac OS Catalina 10.15.7]

[BUG] Properly notify users of bad certs

Describe the bug
When scanning a site that doesn't have a valid cert, the error message doesn't let the user know that the problem is certs. Instead, all that's shown is that ferox can't connect

To Reproduce
Steps to reproduce the behavior:

  1. scan a site with an invalid cert
  2. see ERROR heuristics::connectivity_test Could not connect to any target provided

Expected behavior
I expect a clear message notifying the user that the certificate is invalid

Environment (please complete the following information):

  • feroxbuster version: v1.4.0

Additional context
Thanks to @Decap1tator for pointing out the issue

[FEATURE REQUEST] Create package suitable for PPA

Is your feature request related to a problem? Please describe.
I'd like to distribute feroxbuster through a PPA. Long-term, i'd love to see it integrated into an official distro's repo (debian / ubuntu / kali).

Describe the solution you'd like

sudo add-apt-repository ppa:SOME_PPA
sudo apt update
sudo apt install feroxbuster

Add Option Groups to parser

I'd like to have groups of options visually ... grouped together. Maybe not exactly these groups, but something along these lines. Currently clap doesn't offer this functionality but will in version 3.0.

Once clap 3.0 is released, this ticket can be completed.

Filter Options:
    -S, --filter-size <SIZE>...             Filter out messages of a particular size (ex: -S 5120 -S 4927,1970)
    -C, --filter-status <STATUS_CODE>...    Filter out status codes (deny list) (ex: -C 200 -C 401)
...

 Include Options:
    -s, --status-codes <STATUS_CODE>...     Status Codes to include (allow list) (default: 200 204 301 302 307 308 401)
...

Scan Options:
...

Client Options:
... 

[FEATURE REQUEST] Create Snap package

Is your feature request related to a problem? Please describe.
I'd like to offer snap installation as an option for feroxbuster.

Describe the solution you'd like
sudo snap install feroxbuster

If anyone decides to work on this other than me, a snapcraft.yaml would satisfy this issue. From there I can handle publishing etc...

https://snapcraft.io/docs/rust-applications

Add "no file descriptors available" description and solution to README.md

Depending on a user's operating system's open file limit, the user may see a bunch of no file descriptors available errors. A user can increase the limit by editing limits.conf or using ulimit.

I'd like a description of the problem and both solutions to be included in the readme.

Definition of Done:

  • entry in table of contents, something like Common Problems or similar
  • sub-entry in table of contents to the above that indicates this particular problem (no file descriptors available)
  • H2 heading that corresponds to the Common Problems or similar entry (include relevant emoji, warning symbol or something?)
  • H3 heading that corresponds to the particular problem
  • Under the H3 heading, a description of the problem and both limits.conf and ulimit solutions

Relevant discussions:

[FEATURE REQUEST] Way to limit scope when using --extract-links

Is your feature request related to a problem? Please describe.
When using --extract-links, it would be nice to have an option which only grabbed links from the original domain. I'm also not sure if it is starting to dir bust on other domains that are extracted? The output is unclear.

Describe the solution you'd like
A flag to limit the scope of the tool would be great. Also additional clarity in the ReadMe on if it starts busting new domains when using the --extract-links option would be great.

P.S. - Absolutely loving the tool! I think you've got a real edge on gobuster & ffuf with this one ๐Ÿ‘. I've been sharing will all my colleagues! You've done some really great work on this!

Links don't show up at the top like in the example[BUG]

When I run FeroxBuster with default settings, my output is full of status bars instead of all of the directories listed at the bottom. Is there a setting that I'm missing? I'm on Kali 2020, with the latest release 1.2.0

See Below:
image

Thank you

Timeout Issue

Is your feature request related to a problem? Please describe.

When you fuzz you need the most confortable output in order to analyze the results
When the request timeout it's shows in the output without any -v used

Describe the solution you'd like
I would like if possible a flag to supress this timeout urls and leave only the status code and useful information in the output

Screenshot
githubissue

[BUG] Excessive CPU usage

When the tool created multiple recursive jobs, at one point, it has output a lot of errors and the CPU usage got to 100% at my machine and it was finally killed.

I have even tried to lower the threads count from 50 to 20 but as the recursive jobs increase I think it didn't really matter

EXhr0WOfEJ

The best way in my opinion to avoid this is to add an argument that takes a number to set the most jobs running at once, and add the new jobs to queue.

Other than that, your tool is awesome, thank you for the efforts!

Remove ansi_term

With the inclusion of console, feroxbuster has two crates that can color the terminal. I use console for other things, so should swap the coloring to use console as well, then remove ansi_term.

[FEATURE REQUEST] Allow -v induced logging to be captured in a file

Is your feature request related to a problem? Please describe.
Due to how MultiProgress handles printing when not in a user_attended shell, there is no simple way to capture the output generated from -v+.

Describe the solution you'd like
A way for those logs to be captured in a file. I think a --logfile makes sense, but am open to suggestions.

[FEATURE REQUEST] Dynamically tuning concurrency/connection limit or bailing after n connection failures

A common problem I run into is that some sites have issues when supporting too many concurrent connections, or too high a rate of connections- of course every site has its breaking point- but read my next paragraph for more detail on this. This can be mitigated by tuning feroxbuster with -t and -L for each individual target, of course.

The problem comes in when doing testing across a large amount of sites at once, using, e.g. GNU parallel. If you are performing testing against a medium or large organization with many websites, sometimes you'll need to batch a large set of commands due to testing time constraints, and it won't be practical to test and tune the -t and -L setting for each individual site, since they can vary quite a bit within a large set. Consider for this example a list of 1000 or more sites.

A nice feature would be to either:

  1. (Simple Solution) Simply bail out after n connection failures
  2. (Complex / Better Solution) Tune the threads and/or concurrent connections setting dynamically, based on the occurrence of connection failures

Some workarounds here:

  1. As I mentioned, manually testing each site and having a per-site -t and -L setting; this is prohibitively expensive in terms of time during a large-scale test
  2. Using a very conservative value across all sites; this is detrimental to the large amount of sites that can handle (in many cases) many multiples of that conservative setting, slowing the entire testing run of the entire batch down significantly

This may be beyond the scope of what you would like to implement and maintain within feroxbuster, but for me, it would be a very useful feature.

Curious what you think about this

Thanks, I appreciate your development on this tool. I haven't seen a public tool that performs as well as feroxbuster, with such flexibility and robust and advanced features since skipfish- which is no longer maintained and never really had a happy medium between "way too agressive" and "completely limited in its findings"

Make output file write async

writing to output file is not async, make it so.

in doing so, i'd prefer the output file to be sorted by url before the program exits via a cleanup section (indicating to the user that scans are done and we're performing clean up things)

formalize output

  • put url at the end of the line instead of the middle
  • give size a normalized size with string formatting
  • decide whether to keep canonical status code reason in output or shrink to just the 2xx/3xx/4xx etc codes

[FEATURE REQUEST] -q Flag (same detail, less frequent updates)

Is your feature request related to a problem? Please describe.
Nope. Refer to previous post on the love of this script.

Describe the solution you'd like
To change (or have a different -q flag) for:
image

Describe alternatives you've considered
Using -q works but I would prefer to have all the information but the time visible. Or to show progress only once it has found a URL or String.

Additional context
My reasoning for this is I use TMUX and I have it set to notify me on panes when something appears in the HUD. Useful for notifying me well-running an HTTP server and picking up the request... or doing further enumeration well exploring other ports. Having this feature would mean I would only get a notification when a URL/string was found.

Limit number of recursive scans with a Queue

Is your feature request related to a problem? Please describe.
Per this issue, excessive CPU usage is a possibility given the current implementation of recursion.

Describe the solution you'd like
Limit the number of recursive scans by using a consumer/producer w/ queue system. The limit should have a sane default and be configurable from the command line/config file.

[FEATURE REQUEST] Automatically adjust nofile limit on linux/macos

Is your feature request related to a problem? Please describe.
As discussed here and here, low limits on number of open files allowed by the OS can result in spurious errors reported to the user.

Describe the solution you'd like
Use setrlimit syscall to adjust the number of open files allowed, if necessary.

  • The limit should be reset to normal once complete
  • will likely need to inspect the hard limit with getrlimit in order to know the max adjustment allowed for an unprivileged user
  • consider notifying the user of the change

[BUG] Erroneous output to terminal when using --extract-links

Is your feature request related to a problem? Please describe.
When using --extract-links, it would be nice to have an option which only grabbed links from the original domain. I'm also not sure if it is starting to dir bust on other domains that are extracted? The output is unclear.

Describe the solution you'd like
A flag to limit the scope of the tool would be great. Also additional clarity in the ReadMe on if it starts busting new domains when using the --extract-links option would be great.

P.S. - Absolutely loving the tool! I think you've got a real edge on gobuster & ffuf with this one ๐Ÿ‘. I've been sharing will all my colleagues! You've done some really great work on this!

Add strip to CD pipeline

For both linux binaries, strip -s should be run on the binary before upload in order to reduce final binary size.

If there is a similar command for macos, include that in the macos build.

[BUG] Duplicate scans occurring

Describe the bug
In certain situations, duplicate scans are kicking off against the same directory.

Expected behavior
A single scan per directory.

Environment (please complete the following information):

  • feroxbuster version: v1.0.1

Additional context
A HashSet of scanned urls would likely solve the problem.

start scan against URL-1
add URL-1 to the url-set
...
new URL found to scan
if new URL in url-set -> do nothing
else -> scan

[FEATURE REQUEST] Word count / line count filters - LMAY75

The ability to white/blacklist based off of characters/line count on the response page would be greatly appreciated. Sometimes you won't find what you want from a response code, but will from a char or line count. Both features are in wfuzz for comparison.

Originally reported by @LMAY75

[FEATURE REQUEST] Add LinkFinder-esque capability to find additional content

Describe the solution you'd like
As valid 2xx responses are found, examine their contents for additional files/directories.

All directories found should be added to new recursive scans, as long as they don't exceed the recursion depth limit. If a newly discovered directory is found and exceeds the limit, the user should still be notified.

Extracting links should be an opt-in feature, as there's a cost for the additional coverage provided.

Additional context
The feature branch for this is tracked in the linked pull request

[BUG] Progress bar not incremented correctly when using -x

Describe the bug
When -x is used, the scanner only increments the counter when a 'base' request is made. It exits shortly after the number of requests reach roughly the length of the wordlist. This indicates that requests generated from extensions aren't incrementing the progress bar as expected.

To Reproduce
Steps to reproduce the behavior:

  1. feroxbuster -u SOMEURL -x php

Take note of the # of words in the wordlist and the # of requests sent. Expect exit shortly after requests reach # of words.

Expected behavior
All requests should increment progress the bar, not only the base requests.

Environment (please complete the following information):

  • feroxbuster version: 1.0.0 - 1.1.1
  • OS:
    • kali 2020.2
    • ubuntu 20.04

[FEATURE REQUEST] Cancel threads from a recursive search.

Is your feature request related to a problem? Please describe.
Nope; actually I came across this last week and love it.

Describe the solution you'd like
The ability to cut a thread on a scan. So for instance, if I find a hidden CMS solution on a port at /wordpress/ and the scan begins scanning the /wordpress/ directory to stop the scan of the original directory. I get I could cancel or start a new instance but with application searching, you could filter your recursive searching to cut down on time. I guess you could also pipe it into an additional scan?

Describe alternatives you've considered
Cancelling the current scan and starting a new one.

Additional context
None.

[FEATURE REQUEST] Check for updates on startup

Is your feature request related to a problem? Please describe.
I'd prefer that folks are notified of new releases when they're available.

Describe the solution you'd like
A user runs feroxbuster, if the user's version is behind the current release, notify the user (probably in the banner)

Describe alternatives you've considered
The alternative to always checking would be a --update flag or similar, however, I prefer the auto check

[FEATURE REQUEST] Remove ๐ŸŽฏ, ๐Ÿš€, ...?

Hi, recently, I am testing to see what can feroxbuster do, from my local machine. But, I think that "๐ŸŽฏ", "๐Ÿš€", ... will make feroxbuster like a funny joke script rather than an advanced fuzzer, a complex fuzzing project. Should we delete it?

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.