1
1
mirror of https://github.com/OJ/gobuster.git synced 2025-07-10 07:14:18 +02:00
gobuster/libgobuster/options.go
Adam Cammack 02b83910b1
Fix progress with patterns and backup discovery (#548)
* Account for patterns in total tries

Specifying patterns for the word list will no longer cause progress to
go past 100%. Additionally, the GobusterDir transformations for file
extensions and backups will be applied after pattern expansion.

Fixes #405, #480, and #533

* Run backup detection on success only

This is done by re-arranging the code from exiting on channel close to
using the contexts and the results counters to signal the end of work
processing. A little more work is needed to prevent infinite loops
caused by devious services/misconfiguration and to expose to the cli the
ability to have patterns run on successful finds.

Fixes #298

* Prioritize stopping when the context is done

From the Go spec:
> If one or more of the communications can proceed, a single one that
> can proceed is chosen via a uniform pseudo-random selection.

Previously, this meant that some indeterminate amount of work could have
been completed after the context's cancel function had been called.

* Prevent recursion of discovery guess

Successful guesses from the wordlist or a pattern will have discovery
patterns generated based on them and successful discovery guesses will
not. Further processing should require human curation to avoid
automatically generating an unbounded amount of traffic.

Also fixes reading the wordlist from standard in by making it more like
reading from a file now that we have dynamic progress updates.

* Add option for arbitrary discovery patterns

* Test only patterns if provided a pattern file

* Update discover pattern option description
2025-02-19 21:15:54 +01:00

23 lines
489 B
Go

package libgobuster
import (
"time"
)
// Options holds all options that can be passed to libgobuster
type Options struct {
Threads int
Debug bool
Wordlist string
WordlistOffset int
PatternFile string
DiscoverPatternFile string
Patterns []string
DiscoverPatterns []string
OutputFilename string
NoProgress bool
NoError bool
Quiet bool
Delay time.Duration
}