Versions in this module Expand all Collapse all v2 v2.1.0 Sep 16, 2023 Changes in this version + var AUTOCALIBDIR = filepath.Join(CONFIGDIR, "autocalibration") + type AutocalibrationStrategy map[string][]string type Config + AutoCalibrationStrategies []string + ClientCert string + ClientKey string + Encoders []string + Raw bool type GeneralOptions + AutoCalibrationStrategies []string type HTTPOptions + ClientCert string + ClientKey string + Raw bool type InputOptions + Encoders []string type InputProviderConfig + Encoders string v2.0.0 Feb 6, 2023 Changes in this version + var CONFIGDIR = filepath.Join(xdg.ConfigHome, "ffuf") + var HISTORYDIR = filepath.Join(CONFIGDIR, "history") + var SCRAPERDIR = filepath.Join(CONFIGDIR, "scraper") + var VERSION = "2.0.0" + var VERSION_APPENDIX = "-dev" + func CheckOrCreateConfigDir() error + func FileExists(path string) bool + func HistoryReplayable(conf *Config) (bool, string) + func HostURLFromRequest(req Request) string + func RandomString(n int) string + func RequestContainsKeyword(req Request, kw string) bool + func StrInSlice(key string, slice []string) bool + func UniqStringSlice(inslice []string) []string + func UrlEqual(url1, url2 *url.URL) bool + func Version() string + func WriteHistoryEntry(conf *Config) (string, error) + type Config struct + AutoCalibration bool + AutoCalibrationKeyword string + AutoCalibrationPerHost bool + AutoCalibrationStrategy string + AutoCalibrationStrings []string + Cancel context.CancelFunc + Colors bool + CommandKeywords []string + CommandLine string + ConfigFile string + Context context.Context + Data string + Debuglog string + Delay optRange + DirSearchCompat bool + Extensions []string + FilterMode string + FollowRedirects bool + Headers map[string]string + Http2 bool + IgnoreBody bool + IgnoreWordlistComments bool + InputMode string + InputNum int + InputProviders []InputProviderConfig + InputShell string + Json bool + MatcherManager MatcherManager + MatcherMode string + MaxTime int + MaxTimeJob int + Method string + Noninteractive bool + OutputDirectory string + OutputFile string + OutputFormat string + OutputSkipEmptyFile bool + ProgressFrequency int + ProxyURL string + Quiet bool + Rate int64 + Recursion bool + RecursionDepth int + RecursionStrategy string + ReplayProxyURL string + RequestFile string + RequestProto string + SNI string + ScraperFile string + Scrapers string + StopOn403 bool + StopOnAll bool + StopOnErrors bool + Threads int + Timeout int + Url string + Verbose bool + Wordlists []string + func ConfigFromOptions(parseOpts *ConfigOptions, ctx context.Context, cancel context.CancelFunc) (*Config, error) + func NewConfig(ctx context.Context, cancel context.CancelFunc) Config + func (c *Config) SetContext(ctx context.Context, cancel context.CancelFunc) + func (c *Config) ToOptions() ConfigOptions + type ConfigOptions struct + Filter FilterOptions + General GeneralOptions + HTTP HTTPOptions + Input InputOptions + Matcher MatcherOptions + Output OutputOptions + func NewConfigOptions() *ConfigOptions + func ReadConfig(configFile string) (*ConfigOptions, error) + func ReadDefaultConfig() (*ConfigOptions, error) + type ConfigOptionsHistory struct + Time time.Time + func SearchHash(hash string) ([]ConfigOptionsHistory, int, error) + type FilterOptions struct + Lines string + Mode string + Regexp string + Size string + Status string + Time string + Words string + type FilterProvider interface + Filter func(response *Response) (bool, error) + Repr func() string + ReprVerbose func() string + type GeneralOptions struct + AutoCalibration bool + AutoCalibrationKeyword string + AutoCalibrationPerHost bool + AutoCalibrationStrategy string + AutoCalibrationStrings []string + Colors bool + ConfigFile string + Delay string + Json bool + MaxTime int + MaxTimeJob int + Noninteractive bool + Quiet bool + Rate int + ScraperFile string + Scrapers string + Searchhash string + ShowVersion bool + StopOn403 bool + StopOnAll bool + StopOnErrors bool + Threads int + Verbose bool + type HTTPOptions struct + Cookies []string + Data string + FollowRedirects bool + Headers []string + Http2 bool + IgnoreBody bool + Method string + ProxyURL string + Recursion bool + RecursionDepth int + RecursionStrategy string + ReplayProxyURL string + SNI string + Timeout int + URL string + type InputOptions struct + DirSearchCompat bool + Extensions string + IgnoreWordlistComments bool + InputMode string + InputNum int + InputShell string + Inputcommands []string + Request string + RequestProto string + Wordlists []string + type InputProvider interface + ActivateKeywords func([]string) + AddProvider func(InputProviderConfig) error + Keywords func() []string + Next func() bool + Position func() int + Reset func() + SetPosition func(int) + Total func() int + Value func() map[string][]byte + type InputProviderConfig struct + Keyword string + Name string + Template string + Value string + type InternalInputProvider interface + Active func() bool + Disable func() + Enable func() + IncrementPosition func() + Keyword func() string + Next func() bool + Position func() int + ResetPosition func() + SetPosition func(int) + Total func() int + Value func() []byte + type Job struct + Config *Config + Count403 int + Count429 int + Counter int + Error string + ErrorCounter int + ErrorMutex sync.Mutex + Input InputProvider + Jobhash string + Output OutputProvider + Paused bool + Rate *RateThrottle + ReplayRunner RunnerProvider + Runner RunnerProvider + Running bool + RunningJob bool + Scraper Scraper + SpuriousErrorCounter int + Total int + func NewJob(conf *Config) *Job + func (j *Job) Calibrate(input map[string][]byte) error + func (j *Job) CalibrateForHost(host string, baseinput map[string][]byte) error + func (j *Job) CalibrateIfNeeded(host string, input map[string][]byte) error + func (j *Job) CheckStop() + func (j *Job) DeleteQueueItem(index int) + func (j *Job) Next() + func (j *Job) Pause() + func (j *Job) QueuedJobs() []QueueJob + func (j *Job) Reset(cycle bool) + func (j *Job) Resume() + func (j *Job) SkipQueue() + func (j *Job) Start() + func (j *Job) Stop() + type MatcherManager interface + AddFilter func(name string, option string, replace bool) error + AddMatcher func(name string, option string) error + AddPerDomainFilter func(domain string, name string, option string) error + Calibrated func() bool + CalibratedForDomain func(domain string) bool + FiltersForDomain func(domain string) map[string]FilterProvider + GetFilters func() map[string]FilterProvider + GetMatchers func() map[string]FilterProvider + RemoveFilter func(name string) + SetCalibrated func(calibrated bool) + SetCalibratedForHost func(host string, calibrated bool) + type MatcherOptions struct + Lines string + Mode string + Regexp string + Size string + Status string + Time string + Words string + type Multierror struct + func NewMultierror() Multierror + func (m *Multierror) Add(err error) + func (m *Multierror) ErrorOrNil() error + type OutputOptions struct + DebugLog string + OutputDirectory string + OutputFile string + OutputFormat string + OutputSkipEmptyFile bool + type OutputProvider interface + Banner func() + Cycle func() + Error func(errstring string) + Finalize func() error + GetCurrentResults func() []Result + Info func(infostring string) + PrintResult func(res Result) + Progress func(status Progress) + Raw func(output string) + Reset func() + Result func(resp Response) + SaveFile func(filename, format string) error + SetCurrentResults func(results []Result) + Warning func(warnstring string) + type Progress struct + ErrorCount int + QueuePos int + QueueTotal int + ReqCount int + ReqSec int64 + ReqTotal int + StartedAt time.Time + type QueueJob struct + Url string + type RateThrottle struct + Config *Config + RateLimiter *time.Ticker + RateMutex sync.Mutex + func NewRateThrottle(conf *Config) *RateThrottle + func (r *RateThrottle) ChangeRate(rate int) + func (r *RateThrottle) CurrentRate() int64 + func (r *RateThrottle) Tick(start, end time.Time) + type Request struct + Data []byte + Headers map[string]string + Host string + Input map[string][]byte + Method string + Position int + Raw string + Url string + func BaseRequest(conf *Config) Request + func CopyRequest(basereq *Request) Request + func NewRequest(conf *Config) Request + func RecursionRequest(conf *Config, path string) Request + func SniperRequests(basereq *Request, template string) []Request + type Response struct + Cancelled bool + ContentLength int64 + ContentLines int64 + ContentType string + ContentWords int64 + Data []byte + Headers map[string][]string + Raw string + Request *Request + ResultFile string + ScraperData map[string][]string + StatusCode int64 + Time time.Duration + func NewResponse(httpresp *http.Response, req *Request) Response + func (resp *Response) GetRedirectLocation(absolute bool) string + type Result struct + ContentLength int64 + ContentLines int64 + ContentType string + ContentWords int64 + Duration time.Duration + HTMLColor string + Host string + Input map[string][]byte + Position int + RedirectLocation string + ResultFile string + ScraperData map[string][]string + StatusCode int64 + Url string + type RunnerProvider interface + Dump func(req *Request) ([]byte, error) + Execute func(req *Request) (Response, error) + Prepare func(input map[string][]byte, basereq *Request) (Request, error) + type Scraper interface + AppendFromFile func(path string) error + Execute func(resp *Response, matched bool) []ScraperResult + type ScraperResult struct + Action []string + Name string + Results []string + Type string + type ValueRange struct + Max int64 + Min int64 + func ValueRangeFromString(instr string) (ValueRange, error) Other modules containing this package github.com/ffuf/ffuf