Documentation ¶
Index ¶
Constants ¶
View Source
const ( STOP_IF_FIRST_MATCH = "STOP_IF_FIRST_MATCH" STOP_IF_FIRST_MISMATCH = "STOP_IF_FIRST_MISMATCH" )
View Source
const ( HTTP_Type = "http" TCP_Type = "tcp" UDP_Type = "udp" SSL_Type = "ssl" GO_Type = "go" )
Variables ¶
This section is empty.
Functions ¶
func GetPocPath ¶
func GetPocPath() string
func GetPocVersionNumber ¶
func InitPocHomeDirectory ¶
Initialize afrog-pocs directory @return pocsDir {{UserHomeDir}}/afrog-pocs
Types ¶
type Classification ¶
type Info ¶
type Info struct { Name string `yaml:"name"` Author string `yaml:"author"` Severity string `yaml:"severity"` Verified bool `yaml:"verified"` Description string `yaml:"description"` Reference []string `yaml:"reference"` Affected string `yaml:"affected"` // 影响版本 Solutions string `yaml:"solutions"` // 解决方案 Tags string `yaml:"tags"` // 标签 Classification Classification `yaml:"classification"` Created string `yaml:"created"` // create time }
以下开始是 信息部分
type Payloads ¶
type Payloads struct { Continue bool `yaml:"continue"` Payloads yaml.MapSlice `yaml:"payloads"` }
TODO REMARK
type Poc ¶
type Poc struct { Id string `yaml:"id"` // 脚本名称 Transport string `yaml:"transport"` // 传输方式,该字段用于指定发送数据包的协议,该字段用于指定发送数据包的协议:①tcp ②udp ③http Set yaml.MapSlice `yaml:"set"` // 全局变量定义,该字段用于定义全局变量。比如随机数,反连平台等 Payloads Payloads `yaml:"payloads"` Rules RuleMapSlice `yaml:"rules"` Expression string `yaml:"expression"` Info Info `yaml:"info"` Gopoc string `yaml:"gopoc"` // Gopoc 脚本名称 }
func (*Poc) IsHTTPType ¶
type Rule ¶
type Rule struct { Request RuleRequest `yaml:"request"` Expression string `yaml:"expression"` Expressions []string `yaml:"expressions"` Output yaml.MapSlice `yaml:"output"` StopIfMatch bool `yaml:"stop_if_match"` StopIfMismatch bool `yaml:"stop_if_mismatch"` BeforeSleep int `yaml:"before_sleep"` // contains filtered or unexported fields }
type RuleMapSlice ¶
type RuleMapSlice []RuleMap
用于帮助yaml解析,保证Rule有序
func (*RuleMapSlice) UnmarshalYAML ¶
func (m *RuleMapSlice) UnmarshalYAML(unmarshal func(any) error) error
type RuleRequest ¶
type RuleRequest struct { Type string `yaml:"type"` // 传输方式,默认 http,可选:tcp,udp,ssl,go 等任意扩展 Host string `yaml:"host"` // tcp/udp 请求的主机名 Data string `yaml:"data"` // tcp/udp 发送的内容 DataType string `yaml:"data-type"` // tcp/udp 发送的数据类型,默认字符串 ReadSize int `yaml:"read-size"` // tcp/udp 读取内容的长度 ReadTimeout int `yaml:"read-timeout"` // tcp/udp专用 Raw string `yaml:"raw"` // raw 专用 Method string `yaml:"method"` Path string `yaml:"path"` Headers map[string]string `yaml:"headers"` Body string `yaml:"body"` FollowRedirects bool `yaml:"follow_redirects"` }
http/tcp/udp cache 是否使用缓存的请求,如果该选项为 true,那么如果在一次探测中其它脚本对相同目标发送过相同请求,那么便使用之前缓存的响应,而不发新的数据包 content 用于tcp/udp请求,请求内容,比如:content: "request" read_timeout 用于tcp/udp请求,发送请求之后的读取超时时间(注 实际是一个 int, 但是为了能够变量渲染,设置为 string)
type WaitGroupTask ¶
Click to show internal directories.
Click to hide internal directories.