Documentation
¶
Index ¶
- Variables
- func CheckingDNSLogOOB(token string, timeout ...float64) bool
- func ExecuteNucleiTags(tags []*NucleiTagData, sandbox *NucleiDSL, vars map[string]interface{}) (string, bool, []string)
- func ExpandPreprocessor(data string) string
- func ExtractKValFromResponse(rsp []byte) map[string]interface{}
- func ExtractResultToString(i interface{}) string
- func FuzzCalcExpr() map[string]interface{}
- func GetNucleiDSLFunctions() map[string]interface{}
- func IsExprReady(expr string, m map[string]interface{}) (bool, []string)
- func LoadVarFromRawResponse(rsp []byte, duration float64, sufs ...string) map[string]interface{}
- func MockEchoPlugin(onTokens ...func(string)) (string, error)
- func RequireOOBAddr(timeout ...float64) (string, string, error)
- func ScanAuto(items any, opt ...interface{})
- func ScanLegacy(target any, opt ...interface{}) (chan *tools.PocVul, error)
- func ScanPacket(req []byte, opts ...interface{})
- func ScanUrl(u string, opt ...interface{})
- type Config
- func (c *Config) AppendHTTPResultCallback(handler HTTPResultCallback)
- func (c *Config) AppendResultCallback(handler ResultCallback)
- func (c *Config) AppendTCPResultCallback(handler TCPResultCallback)
- func (c *Config) ExecuteResultCallback(y *YakTemplate, bulk *YakRequestBulkConfig, rsp []*lowhttp.LowhttpResponse, ...)
- func (c *Config) ExecuteTCPResultCallback(y *YakTemplate, bulk *YakNetworkBulkConfig, rsp []*NucleiTcpResponse, ...)
- func (c *Config) GenerateYakTemplate() (chan *YakTemplate, error)
- func (c *Config) IsNuclei() bool
- type ConfigOption
- func WithConcurrentInTemplates(i int) ConfigOption
- func WithConcurrentTarget(i int) ConfigOption
- func WithConcurrentTemplates(i int) ConfigOption
- func WithDebug(b bool) ConfigOption
- func WithDebugRequest(b bool) ConfigOption
- func WithDebugResponse(b bool) ConfigOption
- func WithEnableReverseConnectionFeature(b bool) ConfigOption
- func WithExcludeTemplates(s ...string) ConfigOption
- func WithFuzzQueryTemplate(s ...string) ConfigOption
- func WithMode(s string) ConfigOption
- func WithOOBRequireCallback(f func(...float64) (string, string, error)) ConfigOption
- func WithOOBRequireCheckingTrigger(f func(string, ...float64) bool) ConfigOption
- func WithOOBTimeout(f float64) ConfigOption
- func WithOnRisk(target string, onRisk func(i *yakit.Risk)) ConfigOption
- func WithResultCallback(f HTTPResultCallback) ConfigOption
- func WithTCPResultCallback(f TCPResultCallback) ConfigOption
- func WithTags(f ...string) ConfigOption
- func WithTemplateName(s ...string) ConfigOption
- func WithTemplateRaw(b string) ConfigOption
- func WithVerbose(b bool) ConfigOption
- type HTTPResultCallback
- type NucleiDSL
- type NucleiTagData
- type NucleiTcpResponse
- type RequestBulk
- type ResultCallback
- type TCPRequestBulk
- type TCPResultCallback
- type Var
- type YakExtractor
- type YakHTTPRequestPacket
- type YakMatcher
- func (y *YakMatcher) Execute(rsp *lowhttp.LowhttpResponse, vars map[string]interface{}, suf ...string) (bool, error)
- func (y *YakMatcher) ExecuteRaw(rsp []byte, vars map[string]interface{}, suf ...string) (bool, error)
- func (y *YakMatcher) ExecuteRawResponse(rsp []byte, vars map[string]interface{}, suf ...string) (bool, error)
- func (y *YakMatcher) ExecuteRawWithConfig(config *Config, rsp []byte, vars map[string]interface{}, suf ...string) (bool, error)
- func (y *YakMatcher) ExecuteWithConfig(config *Config, rsp *lowhttp.LowhttpResponse, vars map[string]interface{}, ...) (bool, error)
- type YakNetworkBulkConfig
- type YakPayload
- type YakPayloads
- type YakRequestBulkConfig
- type YakTcpHosts
- type YakTcpInput
- type YakTemplate
- type YakVariables
Constants ¶
This section is empty.
Variables ¶
View Source
var Exports = map[string]interface{}{ "Scan": ScanLegacy, "ScanAuto": ScanAuto, "tags": WithTags, "excludeTags": nucleiOptionDummy("excludeTags"), "workflows": nucleiOptionDummy("workflows"), "templates": WithTemplateName, "excludeTemplates": WithExcludeTemplates, "templatesDir": nucleiOptionDummy("templatesDir"), "headers": nucleiOptionDummy("headers"), "severity": nucleiOptionDummy("severity"), "output": nucleiOptionDummy("output"), "proxy": lowhttp.WithProxy, "logFile": nucleiOptionDummy("logFile"), "reportingDB": nucleiOptionDummy("reportingDB"), "reportingConfig": nucleiOptionDummy("reportingConfig"), "bulkSize": WithConcurrentTemplates, "templatesThreads": WithConcurrentInTemplates, "timeout": _timeout, "pageTimeout": _timeout, "retry": lowhttp.WithRetryTimes, "rateLimit": rateLimit, "headless": nucleiOptionDummy("headless"), "showBrowser": nucleiOptionDummy("showBrowser"), "dnsResolver": lowhttp.WithDNSServers, "systemDnsResolver": nucleiOptionDummy("systemDnsResolver"), "metrics": nucleiOptionDummy("metrics"), "debug": WithDebug, "interactshTimeout": WithOOBTimeout, "debugRequest": WithDebugRequest, "debugResponse": WithDebugResponse, "silent": nucleiOptionDummy("silent"), "version": nucleiOptionDummy("version"), "verbose": WithVerbose, "noColor": nucleiOptionDummy("noColor"), "updateTemplates": nucleiOptionDummy("updateTemplates"), "templatesVersion": nucleiOptionDummy("templatesVersion"), "templateList": nucleiOptionDummy("templateList"), "stopAtFirstMatch": nucleiOptionDummy("stopAtFirstMatch"), "noMeta": nucleiOptionDummy("noMeta"), "newTemplates": nucleiOptionDummy("newTemplates"), "noInteractsh": noInteractsh, "reverseUrl": nucleiOptionDummy("reverseUrl"), "enableReverseConnection": WithEnableReverseConnectionFeature, "targetConcurrent": WithConcurrentTarget, "rawTemplate": WithTemplateRaw, "fuzzQueryTemplate": WithFuzzQueryTemplate, "mode": WithMode, "resultCallback": _callback, "tcpResultCallback": _tcpCallback, "https": lowhttp.WithHttps, "http2": lowhttp.WithHttp2, "runtimeId": lowhttp.WithRuntimeId, "fromPlugin": lowhttp.WithFromPlugin, }
Functions ¶
func CheckingDNSLogOOB ¶ added in v1.2.2
func ExecuteNucleiTags ¶
func ExpandPreprocessor ¶
ExpandPreprocessor expands the pre-processors if any for a template data.
func ExtractKValFromResponse ¶
func ExtractResultToString ¶ added in v1.2.3
func ExtractResultToString(i interface{}) string
func FuzzCalcExpr ¶
func FuzzCalcExpr() map[string]interface{}
func GetNucleiDSLFunctions ¶
func GetNucleiDSLFunctions() map[string]interface{}
func LoadVarFromRawResponse ¶
func MockEchoPlugin ¶ added in v1.2.4
func RequireOOBAddr ¶ added in v1.2.2
func ScanLegacy ¶ added in v1.2.3
func ScanPacket ¶
func ScanPacket(req []byte, opts ...interface{})
Types ¶
type Config ¶
type Config struct { // Templates 内部 HTTP 网络并发 ConcurrentInTemplates int // Templates 外部 HTTP 网络并发 ConcurrentTemplates int // ConcurrentTarget 批量扫描的并发 ConcurrentTarget int Callback ResultCallback // nuclei / xray Mode string EnableReverseConnectionFeature bool // 搜索 yakit.YakScript SingleTemplateRaw string TemplateName []string FuzzQueryTemplate []string ExcludeTemplates []string Tags []string // DebugMode Debug bool DebugRequest bool DebugResponse bool Verbose bool OOBTimeout float64 OOBRequireCallback func(...float64) (string, string, error) OOBRequireCheckingTrigger func(string, ...float64) bool }
func NewConfig ¶
func NewConfig(opts ...ConfigOption) *Config
func (*Config) AppendHTTPResultCallback ¶ added in v1.2.2
func (c *Config) AppendHTTPResultCallback(handler HTTPResultCallback)
func (*Config) AppendResultCallback ¶
func (c *Config) AppendResultCallback(handler ResultCallback)
func (*Config) AppendTCPResultCallback ¶ added in v1.2.2
func (c *Config) AppendTCPResultCallback(handler TCPResultCallback)
func (*Config) ExecuteResultCallback ¶
func (c *Config) ExecuteResultCallback(y *YakTemplate, bulk *YakRequestBulkConfig, rsp []*lowhttp.LowhttpResponse, result bool, extractor map[string]interface{})
func (*Config) ExecuteTCPResultCallback ¶ added in v1.2.2
func (c *Config) ExecuteTCPResultCallback(y *YakTemplate, bulk *YakNetworkBulkConfig, rsp []*NucleiTcpResponse, result bool, extractor map[string]interface{})
func (*Config) GenerateYakTemplate ¶
func (c *Config) GenerateYakTemplate() (chan *YakTemplate, error)
type ConfigOption ¶
type ConfigOption func(*Config)
func WithConcurrentInTemplates ¶
func WithConcurrentInTemplates(i int) ConfigOption
func WithConcurrentTarget ¶
func WithConcurrentTarget(i int) ConfigOption
func WithConcurrentTemplates ¶
func WithConcurrentTemplates(i int) ConfigOption
func WithDebug ¶
func WithDebug(b bool) ConfigOption
func WithDebugRequest ¶
func WithDebugRequest(b bool) ConfigOption
func WithDebugResponse ¶
func WithDebugResponse(b bool) ConfigOption
func WithEnableReverseConnectionFeature ¶
func WithEnableReverseConnectionFeature(b bool) ConfigOption
func WithExcludeTemplates ¶
func WithExcludeTemplates(s ...string) ConfigOption
func WithFuzzQueryTemplate ¶
func WithFuzzQueryTemplate(s ...string) ConfigOption
func WithMode ¶
func WithMode(s string) ConfigOption
func WithOOBRequireCallback ¶ added in v1.2.2
func WithOOBRequireCallback(f func(...float64) (string, string, error)) ConfigOption
func WithOOBRequireCheckingTrigger ¶ added in v1.2.2
func WithOOBRequireCheckingTrigger(f func(string, ...float64) bool) ConfigOption
func WithOOBTimeout ¶ added in v1.2.2
func WithOOBTimeout(f float64) ConfigOption
func WithOnRisk ¶ added in v1.2.4
func WithOnRisk(target string, onRisk func(i *yakit.Risk)) ConfigOption
func WithResultCallback ¶
func WithResultCallback(f HTTPResultCallback) ConfigOption
func WithTCPResultCallback ¶ added in v1.2.2
func WithTCPResultCallback(f TCPResultCallback) ConfigOption
func WithTags ¶
func WithTags(f ...string) ConfigOption
func WithTemplateName ¶
func WithTemplateName(s ...string) ConfigOption
func WithTemplateRaw ¶
func WithTemplateRaw(b string) ConfigOption
func WithVerbose ¶
func WithVerbose(b bool) ConfigOption
type HTTPResultCallback ¶ added in v1.2.2
type HTTPResultCallback func(y *YakTemplate, reqBulk *YakRequestBulkConfig, rsp []*lowhttp.LowhttpResponse, result bool, extractor map[string]interface{})
type NucleiDSL ¶
type NucleiDSL struct {
Functions map[string]interface{}
}
func NewNucleiDSLYakSandbox ¶
func NewNucleiDSLYakSandbox() *NucleiDSL
func (*NucleiDSL) ExecuteAsBool ¶
type NucleiTagData ¶
func ParseNucleiTag ¶
func ParseNucleiTag(raw string) []*NucleiTagData
type NucleiTcpResponse ¶ added in v1.2.2
type RequestBulk ¶
type RequestBulk struct { Requests []*requestRaw RequestConfig *YakRequestBulkConfig }
type ResultCallback ¶
type ResultCallback func(y *YakTemplate, reqBulk any, rsp any, result bool, extractor map[string]interface{})
func HTTPResultCallbackWrapper ¶ added in v1.2.2
func HTTPResultCallbackWrapper(callback HTTPResultCallback) ResultCallback
func TCPResultCallbackWrapper ¶ added in v1.2.2
func TCPResultCallbackWrapper(callback TCPResultCallback) ResultCallback
type TCPRequestBulk ¶ added in v1.2.2
type TCPRequestBulk struct {
NetworkBulkConfig *YakNetworkBulkConfig
}
type TCPResultCallback ¶ added in v1.2.2
type TCPResultCallback func(y *YakTemplate, reqBulk *YakNetworkBulkConfig, rsp []*NucleiTcpResponse, result bool, extractor map[string]interface{})
type Var ¶
type Var struct { Type string Data string Tags []*NucleiTagData }
type YakExtractor ¶
type YakExtractor struct { Name string // name or index // regexp // json // kval // xpath // nuclei-dsl Type string // body // header // all Scope string // header body all Groups []string RegexpMatchGroup []int XPathAttribute string }
func NewExtractorFromGRPCModel ¶
func NewExtractorFromGRPCModel(m *ypb.HTTPResponseExtractor) *YakExtractor
type YakHTTPRequestPacket ¶
type YakHTTPRequestPacket struct { Request string // @SNI SNI string // @Timeout Timeout time.Duration // @Host OverrideHost string }
func (*YakHTTPRequestPacket) GenerateRaw ¶
func (s *YakHTTPRequestPacket) GenerateRaw() []*requestRaw
type YakMatcher ¶
type YakMatcher struct { // status // content_length // binary // word // regexp // expr MatcherType string /* nuclei-dsl all_headers status_code content_length body raw */ ExprType string // status // header // body // raw // interactsh_protocol Scope string // or // and Condition string Group []string GroupEncoding string Negative bool // or / and SubMatcherCondition string SubMatchers []*YakMatcher }
func NewMatcherFromGRPCModel ¶
func NewMatcherFromGRPCModel(m *ypb.HTTPResponseMatcher) *YakMatcher
func (*YakMatcher) Execute ¶
func (y *YakMatcher) Execute(rsp *lowhttp.LowhttpResponse, vars map[string]interface{}, suf ...string) (bool, error)
func (*YakMatcher) ExecuteRaw ¶ added in v1.2.2
func (*YakMatcher) ExecuteRawResponse ¶
func (*YakMatcher) ExecuteRawWithConfig ¶ added in v1.2.2
func (*YakMatcher) ExecuteWithConfig ¶ added in v1.2.2
func (y *YakMatcher) ExecuteWithConfig(config *Config, rsp *lowhttp.LowhttpResponse, vars map[string]interface{}, suf ...string) (bool, error)
type YakNetworkBulkConfig ¶ added in v1.2.2
type YakNetworkBulkConfig struct { Inputs []*YakTcpInput Hosts []string ReadSize int Matcher *YakMatcher Extractor []*YakExtractor }
func (*YakNetworkBulkConfig) Execute ¶ added in v1.2.2
func (y *YakNetworkBulkConfig) Execute( config *Config, vars map[string]interface{}, lowhttpConfig *lowhttp.LowhttpExecConfig, callback func(rsp []*NucleiTcpResponse, matched bool, extractorResults map[string]any), ) error
type YakPayload ¶
type YakPayloads ¶
type YakPayloads struct {
// contains filtered or unexported fields
}
type YakRequestBulkConfig ¶
type YakRequestBulkConfig struct { Matcher *YakMatcher Extractor []*YakExtractor HTTPRequests []*YakHTTPRequestPacket EnableRedirect bool MaxRedirects int StopAtFirstMatch bool CookieInherit bool MaxSize int NoFixContentLength bool Payloads *YakPayloads // req-condition - 为 true 的时候,要等所有的请求发送完在执行 Matcher AfterRequested bool // batteringram is not valid! // pitchfork means sync // cluster bomb means cartesian product AttackMode string // sync // cartesian }
func (*YakRequestBulkConfig) GenerateRaw ¶
func (c *YakRequestBulkConfig) GenerateRaw() []*RequestBulk
type YakTcpHosts ¶ added in v1.2.2
type YakTcpHosts struct { }
type YakTcpInput ¶ added in v1.2.2
func (*YakTcpInput) BuildPayload ¶ added in v1.2.2
func (y *YakTcpInput) BuildPayload(vars map[string]any)
type YakTemplate ¶
type YakTemplate struct { Id string `json:"id"` Name string `json:"name"` NameZh string `json:"nameZh,omitempty"` Author string `json:"author"` Severity string `json:"severity,omitempty"` Description string `json:"description"` DescriptionZh string `json:"descriptionZh"` Reference []string `json:"reference"` Tags []string `json:"tags"` CVE string ShodanQuery string Verified string // interactsh ReverseConnectionNeed bool `json:"reverseConnectionNeed"` TCPRequestSequences []*YakNetworkBulkConfig HTTPRequestSequences []*YakRequestBulkConfig Variables *YakVariables }
func CreateYakTemplateFromNucleiTemplateRaw ¶
func CreateYakTemplateFromNucleiTemplateRaw(raw string) (*YakTemplate, error)
func (*YakTemplate) Exec ¶
func (y *YakTemplate) Exec(config *Config, isHttps bool, reqOrigin []byte, opts ...lowhttp.LowhttpOpt) (int, error)
type YakVariables ¶
type YakVariables struct {
// contains filtered or unexported fields
}
func NewVars ¶
func NewVars() *YakVariables
func (*YakVariables) AutoSet ¶
func (v *YakVariables) AutoSet(key string, value string)
func (*YakVariables) Set ¶
func (v *YakVariables) Set(key string, value string)
func (*YakVariables) SetNucleiDSL ¶
func (v *YakVariables) SetNucleiDSL(key string, items []*NucleiTagData)
func (*YakVariables) ToMap ¶
func (v *YakVariables) ToMap() map[string]interface{}
Click to show internal directories.
Click to hide internal directories.