internal

package
v0.6.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 4, 2023 License: GPL-3.0 Imports: 26 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CheckSource sourceType = iota + 1
	InitRandomSource
	InitIndexSource
	RedirectSource
	CrawlSource
	ActiveSource
	WordSource
	WafSource
)

Variables

View Source
var (
	WhiteStatus = []int{200}
	BlackStatus = []int{400, 404, 410}
	FuzzyStatus = []int{403, 500, 501, 502, 503}
	WAFStatus   = []int{493, 418}
)

Functions

func CompareWithExpr added in v0.4.1

func CompareWithExpr(exp *vm.Program, params map[string]interface{}) bool

func Format

func Format(filename string)

func IntsContains added in v0.1.1

func IntsContains(s []int, e int) bool

func StringsContains added in v0.1.1

func StringsContains(s []string, e string) bool

Types

type CheckPool added in v0.1.2

type CheckPool struct {
	*pkg.Config
	// contains filtered or unexported fields
}

func NewCheckPool added in v0.1.2

func NewCheckPool(ctx context.Context, config *pkg.Config) (*CheckPool, error)

func (*CheckPool) Close added in v0.1.2

func (p *CheckPool) Close()

func (*CheckPool) Run added in v0.1.2

func (p *CheckPool) Run(ctx context.Context, offset, limit int)

type ErrorType added in v0.1.0

type ErrorType uint
const (
	ErrBadStatus ErrorType = iota
	ErrSameStatus
	ErrRequestFailed
	ErrWaf
	ErrRedirect
	ErrCompareFailed
	ErrFuzzyCompareFailed
	ErrCustomCompareFailed
	ErrCustomFilter
)

func (ErrorType) Error added in v0.1.0

func (e ErrorType) Error() string

type FunctionOptions

type FunctionOptions struct {
	Extensions        string            `short:"e" long:"extension" description:"String, add extensions (separated by commas), e.g.: -e jsp,jspx"`
	ExcludeExtensions string            `long:"exclude-extension" description:"String, exclude extensions (separated by commas), e.g.: --exclude-extension jsp,jspx"`
	RemoveExtensions  string            `long:"remove-extension" description:"String, remove extensions (separated by commas), e.g.: --remove-extension jsp,jspx"`
	Uppercase         bool              `short:"U" long:"uppercase" desvcription:"Bool, upper wordlist, e.g.: --uppercase"`
	Lowercase         bool              `short:"L" long:"lowercase" description:"Bool, lower wordlist, e.g.: --lowercase"`
	Prefixes          []string          `long:"prefix" description:"Strings, add prefix, e.g.: --prefix aaa --prefix bbb"`
	Suffixes          []string          `long:"suffix" description:"Strings, add suffix, e.g.: --suffix aaa --suffix bbb"`
	Replaces          map[string]string `long:"replace" description:"Strings, replace string, e.g.: --replace aaa:bbb --replace ccc:ddd"`
}

type InputOptions

type InputOptions struct {
	ResumeFrom   string   `long:"resume"`
	URL          string   `short:"u" long:"url" description:"String, input baseurl (separated by commas), e.g.: http://google.com, http://baidu.com"`
	URLFile      string   `short:"l" long:"list" description:"File, input filename"`
	Raw          string   `long:"raw" description:"File, input raw request filename"`
	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"`
	Dictionaries []string `short:"d" long:"dict" description:"Files, dict files, e.g.: -d 1.txt -d 2.txt"`
	Word         string   `short:"w" long:"word" description:"String, word generate dsl, e.g.: -w test{?ld#4}"`
	FilterRule   string   `long:"rule-filter" description:"String, filter rule, e.g.: --rule-filter '>8'"`
	Rules        []string `short:"r" long:"rules" description:"Files, rule files, e.g.: -r rule1.txt -r rule2.txt"`
}

type MiscOptions

type MiscOptions struct {
	Deadline int    `long:"deadline" default:"999999" description:"Int, deadline (seconds)"` // todo 总的超时时间,适配云函数的deadline
	Timeout  int    `long:"timeout" default:"2" description:"Int, timeout with request (seconds)"`
	PoolSize int    `short:"p" long:"pool" default:"5" description:"Int, Pool size"`
	Threads  int    `short:"t" long:"thread" default:"20" description:"Int, number of threads per pool"`
	Debug    bool   `long:"debug" description:"Bool, output debug info"`
	Quiet    bool   `short:"q" long:"quiet" description:"Bool, Quiet"`
	NoColor  bool   `long:"no-color" description:"Bool, no color"`
	NoBar    bool   `long:"no-bar" description:"Bool, No progress bar"`
	Mod      string `short:"m" long:"mod" default:"path" choice:"path" choice:"host" description:"String, path/host spray"`
	Client   string `short:"c" long:"client" default:"auto" choice:"fast" choice:"standard" choice:"auto" description:"String, Client type"`
}

type ModeOptions

type ModeOptions struct {
	Advance         bool   `short:"a" long:"advance" description:"Bool, enable crawl and active"`
	Force           bool   `long:"force" description:"Bool, skip error break"`
	CheckOnly       bool   `long:"check-only" description:"Bool, check only"`
	Recursive       string `long:"recursive" default:"current.IsDir()" description:"String,custom recursive rule, e.g.: --recursive current.IsDir()"`
	Depth           int    `long:"depth" default:"0" description:"Int, recursive depth"`
	Active          bool   `long:"active" description:"Bool, enable active finger detect"`
	Crawl           bool   `long:"crawl" description:"Bool, enable crawl"`
	CrawlDepth      int    `long:"crawl-depth" default:"3" description:"Int, crawl depth"`
	CheckPeriod     int    `long:"check-period" default:"200" description:"Int, check period when request"`
	ErrPeriod       int    `long:"error-period" default:"10" description:"Int, check period when error"`
	BreakThreshold  int    `long:"error-threshold" default:"20" description:"Int, break when the error exceeds the threshold "`
	BlackStatus     string `long:"black-status" default:"404,400,410" description:"Strings (comma split),custom black status, "`
	WhiteStatus     string `long:"white-status" default:"200" description:"Strings (comma split), custom white status"`
	FuzzyStatus     string `long:"fuzzy-status" default:"403,500,501,502,503" description:"Strings (comma split), custom fuzzy status"`
	SimhashDistance int    `long:"distance" default:"5"`
}

type Option

type Option struct {
	InputOptions    `group:"Input Options"`
	FunctionOptions `group:"Function Options"`
	OutputOptions   `group:"Output Options"`
	RequestOptions  `group:"Request Options"`
	ModeOptions     `group:"Modify Options"`
	MiscOptions     `group:"Miscellaneous Options"`
}

func (*Option) PrepareRunner added in v0.1.0

func (opt *Option) PrepareRunner() (*Runner, error)

func (*Option) Validate

func (opt *Option) Validate() bool

type OutputOptions

type OutputOptions struct {
	Match       string   `long:"match" description:"String, custom match function, e.g.: --match current.Status != 200" json:"match,omitempty"`
	Filter      string   `` /* 128-byte string literal not displayed */
	Extracts    []string `` /* 136-byte string literal not displayed */
	OutputFile  string   `short:"f" description:"String, output filename" json:"output_file,omitempty"`
	Format      string   `short:"F" long:"format" description:"String, output format, e.g.: --format 1.json"`
	FuzzyFile   string   `long:"fuzzy-file" description:"String, fuzzy output filename" json:"fuzzy_file,omitempty"`
	DumpFile    string   `long:"dump-file" description:"String, dump all request, and write to filename"`
	Dump        bool     `long:"dump" description:"Bool, dump all request"`
	AutoFile    bool     `long:"auto-file" description:"Bool, auto generator output and fuzzy filename" `
	Fuzzy       bool     `long:"fuzzy" description:"String, open fuzzy output" json:"fuzzy,omitempty"`
	OutputProbe string   `short:"o" long:"probe" description:"String, output format" json:"output_probe,omitempty"`
}

type Pool added in v0.1.0

type Pool struct {
	*pkg.Config
	Statistor *pkg.Statistor
	// contains filtered or unexported fields
}

func NewPool added in v0.1.0

func NewPool(ctx context.Context, config *pkg.Config) (*Pool, error)

func (*Pool) BaseCompare added in v0.1.1

func (pool *Pool) BaseCompare(bl *pkg.Baseline) bool

func (*Pool) Close added in v0.1.0

func (pool *Pool) Close()

func (*Pool) Init added in v0.1.0

func (pool *Pool) Init() error

func (*Pool) PreCompare added in v0.1.0

func (pool *Pool) PreCompare(resp *ihttp.Response) error

func (*Pool) Run added in v0.1.0

func (pool *Pool) Run(ctx context.Context, offset, limit int)

type RequestOptions

type RequestOptions struct {
	Headers         []string `long:"header" description:"String, custom headers, e.g.: --headers 'Auth: example_auth'"`
	UserAgent       string   `long:"user-agent" description:"String, custom user-agent, e.g.: --user-agent Custom"`
	RandomUserAgent bool     `long:"random-agent" description:"Bool, use random with default user-agent"`
	Cookie          []string `long:"cookie" description:"String, custom cookie"`
	MaxBodyLength   int      `long:"max-length" default:"100" description:"Int, max response body length (kb), default 100k, e.g. -max-length 1000"`
}

type Runner

type Runner struct {
	Tasks          []*Task
	URLList        []string
	Wordlist       []string
	Rules          []rule.Expression
	Headers        map[string]string
	Fns            []func(string) string
	FilterExpr     *vm.Program
	MatchExpr      *vm.Program
	RecursiveExpr  *vm.Program
	RecuDepth      int
	Threads        int
	PoolSize       int
	Pools          *ants.PoolWithFunc
	PoolName       map[string]bool
	Timeout        int
	Mod            string
	Probes         []string
	OutputCh       chan *pkg.Baseline
	FuzzyCh        chan *pkg.Baseline
	Fuzzy          bool
	OutputFile     *files.File
	FuzzyFile      *files.File
	DumpFile       *files.File
	StatFile       *files.File
	Progress       *uiprogress.Progress
	Offset         int
	Limit          int
	Total          int
	Deadline       int
	CheckPeriod    int
	ErrPeriod      int
	BreakThreshold int
	Color          bool
	CheckOnly      bool
	Force          bool
	IgnoreWaf      bool
	Crawl          bool
	Active         bool
	// contains filtered or unexported fields
}

func (*Runner) AddPool

func (r *Runner) AddPool(task *Task)

func (*Runner) Done

func (r *Runner) Done()

func (*Runner) Outputting added in v0.1.0

func (r *Runner) Outputting()

func (*Runner) Prepare

func (r *Runner) Prepare(ctx context.Context) error

func (*Runner) PrepareConfig

func (r *Runner) PrepareConfig() *pkg.Config

func (*Runner) Run

func (r *Runner) Run(ctx context.Context)

func (*Runner) RunWithCheck

func (r *Runner) RunWithCheck(ctx context.Context)

type Task

type Task struct {
	// contains filtered or unexported fields
}

type Unit added in v0.1.0

type Unit struct {
	// contains filtered or unexported fields
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL