Documentation ¶
Index ¶
- Variables
- type Request
- func (request *Request) Compile(options *protocols.ExecutorOptions) error
- func (request *Request) ExecuteWithResults(target *contextargs.Context, dynamicValues, previous output.InternalEvent, ...) error
- func (request *Request) Extract(data map[string]interface{}, matcher *extractors.Extractor) map[string]struct{}
- func (request *Request) GetCompiledOperators() []*operators.Operators
- func (request *Request) GetID() string
- func (request *Request) MakeResultEvent(wrapped *output.InternalWrappedEvent) []*output.ResultEvent
- func (request *Request) MakeResultEventItem(wrapped *output.InternalWrappedEvent) *output.ResultEvent
- func (request *Request) Match(data map[string]interface{}, matcher *matchers.Matcher) (bool, []string)
- func (r *Request) Options() *protocols.ExecutorOptions
- func (request *Request) Requests() int
- func (request *Request) Type() templateTypes.ProtocolType
Constants ¶
This section is empty.
Variables ¶
var RequestPartDefinitions = map[string]string{
"type": "Type is the type of request made",
"response": "Javascript protocol result response",
"host": "Host is the input to the template",
"matched": "Matched is the input which was matched upon",
}
RequestPartDefinitions contains a mapping of request part definitions and their description. Multiple definitions are separated by commas. Definitions not having a name (generated on runtime) are prefixed & suffixed by <>.
Functions ¶
This section is empty.
Types ¶
type Request ¶
type Request struct { // Operators for the current request go here. operators.Operators `yaml:",inline,omitempty" json:",inline,omitempty"` CompiledOperators *operators.Operators `yaml:"-" json:"-"` // description: | // ID is request id in that protocol ID string `yaml:"id,omitempty" json:"id,omitempty" jsonschema:"title=id of the request,description=ID is the optional ID of the Request"` // description: | // Init is javascript code to execute after compiling template and before executing it on any target // This is helpful for preparing payloads or other setup that maybe required for exploits Init string `` /* 159-byte string literal not displayed */ // description: | // PreCondition is a condition which is evaluated before sending the request. PreCondition string `` /* 196-byte string literal not displayed */ // description: | // Args contains the arguments to pass to the javascript code. Args map[string]interface{} `yaml:"args,omitempty" json:"args,omitempty"` // description: | // Code contains code to execute for the javascript request. Code string `` /* 152-byte string literal not displayed */ // description: | // Timeout in seconds is optional timeout for each javascript script execution (i.e init, pre-condition, code) Timeout int `` /* 191-byte string literal not displayed */ // description: | // StopAtFirstMatch stops processing the request at first match. StopAtFirstMatch bool `` /* 166-byte string literal not displayed */ // description: | // Attack is the type of payload combinations to perform. // // Sniper is each payload once, pitchfork combines multiple payload sets and clusterbomb generates // permutations and combinations for all payloads. AttackType generators.AttackTypeHolder `` /* 210-byte string literal not displayed */ // description: | // Payload concurreny i.e threads for sending requests. // examples: // - name: Send requests using 10 concurrent threads // value: 10 Threads int `` /* 202-byte string literal not displayed */ // description: | // Payloads contains any payloads for the current request. // // Payloads support both key-values combinations where a list // of payloads is provided, or optionally a single file can also // be provided as payload which will be read on run-time. Payloads map[string]interface{} `` /* 173-byte string literal not displayed */ // contains filtered or unexported fields }
Request is a request for the javascript protocol
func (*Request) Compile ¶
func (request *Request) Compile(options *protocols.ExecutorOptions) error
Compile compiles the request generators preparing any requests possible.
func (*Request) ExecuteWithResults ¶
func (request *Request) ExecuteWithResults(target *contextargs.Context, dynamicValues, previous output.InternalEvent, callback protocols.OutputEventCallback) error
ExecuteWithResults executes the protocol requests and returns results instead of writing them.
func (*Request) Extract ¶
func (request *Request) Extract(data map[string]interface{}, matcher *extractors.Extractor) map[string]struct{}
Extract performs extracting operation for an extractor on model and returns true or false.
func (*Request) GetCompiledOperators ¶
GetCompiledOperators returns a list of the compiled operators
func (*Request) MakeResultEvent ¶
func (request *Request) MakeResultEvent(wrapped *output.InternalWrappedEvent) []*output.ResultEvent
MakeResultEvent creates a result event from internal wrapped event
func (*Request) MakeResultEventItem ¶
func (request *Request) MakeResultEventItem(wrapped *output.InternalWrappedEvent) *output.ResultEvent
func (*Request) Match ¶
func (request *Request) Match(data map[string]interface{}, matcher *matchers.Matcher) (bool, []string)
Match performs matching operation for a matcher on model and returns: true and a list of matched snippets if the matcher type is supports it otherwise false and an empty string slice
func (*Request) Options ¶
func (r *Request) Options() *protocols.ExecutorOptions
Options returns executer options for http request
func (*Request) Type ¶
func (request *Request) Type() templateTypes.ProtocolType
Type returns the type of the protocol request