Documentation
¶
Index ¶
- Variables
- func Format(opts Option)
- func InitDefaultConfig(cfg interface{}, indentLevel int) string
- func LoadConfig(filename string, v interface{}) error
- func PrintPreset()
- type FingerOptions
- type FunctionOptions
- type InputOptions
- type MiscOptions
- type ModeOptions
- type Option
- func (opt *Option) BuildPlugin(r *Runner) error
- func (opt *Option) BuildTasks(r *Runner) (*TaskGenerator, error)
- func (opt *Option) BuildWords(r *Runner) error
- func (opt *Option) NewRunner() (*Runner, error)
- func (opt *Option) Prepare() error
- func (opt *Option) PrintPlugin()
- func (opt *Option) Validate() error
- type Origin
- type OutputOptions
- type PluginOptions
- type RequestOptions
- type Runner
- func (r *Runner) AddPool(task *Task)
- func (r *Runner) AddRecursive(bl *pkg.Baseline)
- func (r *Runner) AppendFunction(fn func(string) []string)
- func (r *Runner) Done()
- func (r *Runner) Output(bl *pkg.Baseline)
- func (r *Runner) OutputHandler()
- func (r *Runner) Prepare(ctx context.Context) error
- func (r *Runner) PrepareConfig() *pool.Config
- func (r *Runner) PrintStat(pool *pool.BrutePool)
- func (r *Runner) Run(ctx context.Context)
- func (r *Runner) RunWithCheck(ctx context.Context)
- type Task
- type TaskGenerator
Constants ¶
This section is empty.
Variables ¶
View Source
var ( DefaultFingerPath = "fingers" DefaultFingerTemplate = "fingers/templates" FingerConfigs = map[string]string{ fingers.FingersEngine: "fingers_http.json.gz", fingers.FingerPrintEngine: "fingerprinthub_v3.json.gz", fingers.WappalyzerEngine: "wappalyzer.json.gz", fingers.EHoleEngine: "ehole.json.gz", fingers.GobyEngine: "goby.json.gz", } )
View Source
var ( DefaultThreads = 20 SkipChar = "%SKIP%" )
View Source
var (
MAX = 2147483647
)
Functions ¶
func InitDefaultConfig ¶
func LoadConfig ¶
func PrintPreset ¶ added in v1.1.0
func PrintPreset()
Types ¶
type FingerOptions ¶
type FingerOptions struct {
Finger bool `long:"finger" description:"Bool, enable active finger detect" config:"finger"`
FingerUpdate bool `long:"update" description:"Bool, update finger database" config:"update"`
FingerPath string `long:"finger-path" default:"fingers" description:"String, 3rd finger config path" config:"finger-path"`
//FingersTemplatesPath string `long:"finger-template" default:"fingers/templates" description:"Bool, use finger templates path" config:"finger-template"`
FingerEngines string `` /* 133-byte string literal not displayed */
}
func (*FingerOptions) LoadLocalFingerConfig ¶
func (opt *FingerOptions) LoadLocalFingerConfig() error
func (*FingerOptions) UpdateFinger ¶
func (opt *FingerOptions) UpdateFinger() error
func (*FingerOptions) Validate ¶
func (opt *FingerOptions) Validate() error
type FunctionOptions ¶
type FunctionOptions struct {
Extensions string `short:"e" long:"extension" description:"String, add extensions (separated by commas), e.g.: -e jsp,jspx" config:"extension"`
ForceExtension bool `long:"force-extension" description:"Bool, force add extensions" config:"force-extension"`
ExcludeExtensions string `` /* 150-byte string literal not displayed */
RemoveExtensions string `` /* 146-byte string literal not displayed */
Uppercase bool `short:"U" long:"uppercase" description:"Bool, upper wordlist, e.g.: --uppercase" config:"upper"`
Lowercase bool `short:"L" long:"lowercase" description:"Bool, lower wordlist, e.g.: --lowercase" config:"lower"`
Prefixes []string `long:"prefix" description:"Strings, add prefix, e.g.: --prefix aaa --prefix bbb" config:"prefix"`
Suffixes []string `long:"suffix" description:"Strings, add suffix, e.g.: --suffix aaa --suffix bbb" config:"suffix"`
Replaces map[string]string `long:"replace" description:"Strings, replace string, e.g.: --replace aaa:bbb --replace ccc:ddd" config:"replace"`
Skips []string `long:"skip" description:"String, skip word when generate. rule, e.g.: --skip aaa" config:"skip"`
}
type InputOptions ¶
type InputOptions struct {
ResumeFrom string `long:"resume" description:"File, resume filename" `
Config string `short:"c" long:"config" description:"File, config filename"`
URL []string `short:"u" long:"url" description:"Strings, input baseurl, e.g.: http://google.com"`
URLFile string `short:"l" long:"list" description:"File, input filename"`
PortRange string `short:"p" long:"port" description:"String, input port range, e.g.: 80,8080-8090,db"`
CIDRs []string `short:"i" long:"cidr" description:"String, input cidr, e.g.: 1.1.1.1/24 "`
RawFile string `long:"raw" description:"File, input raw request filename"`
Dictionaries []string `short:"d" long:"dict" description:"Files, Multi,dict files, e.g.: -d 1.txt -d 2.txt" config:"dictionaries"`
DefaultDict bool `short:"D" long:"default" description:"Bool, use default dictionary" config:"default"`
Word string `short:"w" long:"word" description:"String, word generate dsl, e.g.: -w test{?ld#4}" config:"word"`
Rules []string `short:"r" long:"rules" description:"Files, rule files, e.g.: -r rule1.txt -r rule2.txt" config:"rules"`
AppendRule []string `` /* 138-byte string literal not displayed */
FilterRule string `long:"filter-rule" description:"String, filter rule, e.g.: --rule-filter '>8 <4'" config:"filter-rule"`
AppendFile []string `long:"append" description:"Files, when found valid path , use append file new word with current path" config:"append-files"`
Offset int `long:"offset" description:"Int, wordlist offset"`
Limit int `long:"limit" description:"Int, wordlist limit, start with offset. e.g.: --offset 1000 --limit 100"`
}
type MiscOptions ¶
type MiscOptions struct {
Mod string `short:"m" long:"mod" default:"path" choice:"path" choice:"host" description:"String, path/host spray" config:"mod"`
Client string `` /* 134-byte string literal not displayed */
Deadline int `long:"deadline" default:"999999" description:"Int, deadline (seconds)" config:"deadline"` // todo 总的超时时间,适配云函数的deadline
Timeout int `short:"T" long:"timeout" default:"5" description:"Int, timeout with request (seconds)" config:"timeout"`
PoolSize int `short:"P" long:"pool" default:"5" description:"Int, Pool size" config:"pool"`
Threads int `short:"t" long:"thread" default:"20" description:"Int, number of threads per pool" config:"thread"`
Debug bool `long:"debug" description:"Bool, output debug info" config:"debug"`
Version bool `long:"version" description:"Bool, show version"`
Verbose []bool `short:"v" description:"Bool, log verbose level ,default 0, level1: -v level2 -vv " config:"verbose"`
Proxy string `long:"proxy" description:"String, proxy address, e.g.: --proxy socks5://127.0.0.1:1080" config:"proxy"`
InitConfig bool `long:"init" description:"Bool, init config file"`
PrintPreset bool `long:"print" description:"Bool, print preset all preset config "`
}
type ModeOptions ¶
type ModeOptions struct {
RateLimit int `long:"rate-limit" default:"0" description:"Int, request rate limit (rate/s), e.g.: --rate-limit 100" config:"rate-limit"`
Force bool `long:"force" description:"Bool, skip error break" config:"force"`
NoScope bool `long:"no-scope" description:"Bool, no scope" config:"no-scope"`
Scope []string `long:"scope" description:"String, custom scope, e.g.: --scope *.example.com" config:"scope"`
Recursive string `` /* 139-byte string literal not displayed */
Depth int `long:"depth" default:"0" description:"Int, recursive depth" config:"depth"`
Index string `long:"index" default:"/" description:"String, custom index path" config:"index"`
Random string `long:"random" default:"" description:"String, custom random path" config:"random"`
CheckPeriod int `long:"check-period" default:"200" description:"Int, check period when request" config:"check-period"`
ErrPeriod int `long:"error-period" default:"10" description:"Int, check period when error" config:"error-period"`
BreakThreshold int `long:"error-threshold" default:"20" description:"Int, break when the error exceeds the threshold" config:"error-threshold"`
BlackStatus string `long:"black-status" default:"400,410" description:"Strings (comma split),custom black status" config:"black-status"`
WhiteStatus string `long:"white-status" default:"200" description:"Strings (comma split), custom white status" config:"white-status"`
FuzzyStatus string `` /* 132-byte string literal not displayed */
UniqueStatus string `long:"unique-status" default:"403,200,404" description:"Strings (comma split), custom unique status" config:"unique-status"`
Unique bool `long:"unique" description:"Bool, unique response" config:"unique"`
RetryCount int `long:"retry" default:"0" description:"Int, retry count" config:"retry"`
SimhashDistance int `long:"sim-distance" default:"8" config:"sim-distance"`
}
type Option ¶
type Option struct {
InputOptions `group:"Input Options" config:"input" `
FunctionOptions `group:"Function Options" config:"functions" `
OutputOptions `group:"Output Options" config:"output"`
PluginOptions `group:"Plugin Options" config:"plugins"`
FingerOptions `group:"Finger Options" config:"finger"`
RequestOptions `group:"Request Options" config:"request"`
ModeOptions `group:"Modify Options" config:"mode"`
MiscOptions `group:"Miscellaneous Options" config:"misc"`
}
func (*Option) BuildPlugin ¶ added in v1.1.0
func (*Option) BuildTasks ¶ added in v1.0.0
func (opt *Option) BuildTasks(r *Runner) (*TaskGenerator, error)
func (*Option) BuildWords ¶ added in v1.0.0
func (*Option) PrintPlugin ¶ added in v1.0.0
func (opt *Option) PrintPlugin()
type OutputOptions ¶
type OutputOptions struct {
Match string `long:"match" description:"String, custom match function, e.g.: --match 'current.Status != 200''" config:"match" `
Filter string `long:"filter" description:"String, custom filter function, e.g.: --filter 'current.Body contains \"hello\"'" config:"filter"`
Fuzzy bool `long:"fuzzy" description:"String, open fuzzy output" config:"fuzzy"`
OutputFile string `short:"f" long:"file" description:"String, output filename" json:"output_file,omitempty" config:"output-file"`
DumpFile string `long:"dump-file" description:"String, dump all request, and write to filename" config:"dump-file"`
Dump bool `long:"dump" description:"Bool, dump all request" config:"dump"`
AutoFile bool `long:"auto-file" description:"Bool, auto generator output and fuzzy filename" config:"auto-file"`
Format string `short:"F" long:"format" description:"String, output format, e.g.: --format 1.json" config:"format"`
Json bool `short:"j" long:"json" description:"Bool, output json" config:"json"`
OutputProbe string `short:"o" long:"probe" description:"String, output format" config:"output_probe"`
Quiet bool `short:"q" long:"quiet" description:"Bool, Quiet" config:"quiet"`
NoColor bool `long:"no-color" description:"Bool, no color" config:"no-color"`
NoBar bool `long:"no-bar" description:"Bool, No progress bar" config:"no-bar"`
NoStat bool `long:"no-stat" description:"Bool, No stat file output" config:"no-stat"`
}
type PluginOptions ¶
type PluginOptions struct {
Advance bool `short:"a" long:"advance" description:"Bool, enable all plugin" config:"all" `
Extracts []string `` /* 128-byte string literal not displayed */
ExtractConfig string `long:"extract-config" description:"String, extract config filename" config:"extract-config"`
ActivePlugin bool `long:"active" description:"Bool, enable active finger path"`
ReconPlugin bool `long:"recon" description:"Bool, enable recon" config:"recon"`
BakPlugin bool `long:"bak" description:"Bool, enable bak found" config:"bak"`
CommonPlugin bool `long:"common" description:"Bool, enable common file found" config:"common"`
CrawlPlugin bool `long:"crawl" description:"Bool, enable crawl" config:"crawl"`
CrawlDepth int `long:"crawl-depth" default:"3" description:"Int, crawl depth" config:"crawl-depth"`
}
type RequestOptions ¶
type RequestOptions struct {
Method string `short:"x" long:"method" default:"GET" description:"String, request method, e.g.: --method POST" config:"method"`
Headers []string `long:"header" description:"Strings, custom headers, e.g.: --headers 'Auth: example_auth'" config:"headers"`
UserAgent string `long:"user-agent" description:"String, custom user-agent, e.g.: --user-agent Custom" config:"useragent"`
RandomUserAgent bool `long:"random-agent" description:"Bool, use random with default user-agent" config:"random-useragent"`
Cookie []string `long:"cookie" description:"Strings, custom cookie" config:"cookies"`
ReadAll bool `long:"read-all" description:"Bool, read all response body" config:"read-all"`
MaxBodyLength int64 `` /* 168-byte string literal not displayed */
}
type Runner ¶
type Runner struct {
*Option
IsCheck bool
Pools *ants.PoolWithFunc
PoolName map[string]bool
Tasks *TaskGenerator
Rules *rule.Program
AppendRules *rule.Program
Headers map[string]string
FilterExpr *vm.Program
MatchExpr *vm.Program
RecursiveExpr *vm.Program
OutputFile *files.File
//FuzzyFile *files.File
DumpFile *files.File
StatFile *files.File
Progress *mpb.Progress
Fns []func(string) []string
Count int // tasks total number
Wordlist []string
AppendWords []string
RecuDepth int
ClientType int
Probes []string
Total int // wordlist total number
Color bool
Jsonify bool
// contains filtered or unexported fields
}
func (*Runner) AddRecursive ¶
func (*Runner) AppendFunction ¶
func (*Runner) OutputHandler ¶
func (r *Runner) OutputHandler()
func (*Runner) PrepareConfig ¶
func (*Runner) RunWithCheck ¶
type TaskGenerator ¶ added in v1.0.0
func NewTaskGenerator ¶ added in v1.0.0
func NewTaskGenerator(port string) *TaskGenerator
func (*TaskGenerator) Close ¶ added in v1.0.0
func (gen *TaskGenerator) Close()
func (*TaskGenerator) Run ¶ added in v1.0.0
func (gen *TaskGenerator) Run(baseurl string)
Source Files
¶
Click to show internal directories.
Click to hide internal directories.