Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetPocPath ¶
func GetPocPath() string
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"`
Description string `yaml:"description"`
Reference []string `yaml:"reference"`
Tags string `yaml:"tags"`
Classification Classification `yaml:"classification"`
}
以下开始是 信息部分
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"`
}
type Rule ¶
type Rule struct {
Request RuleRequest `yaml:"request"`
Expression string `yaml:"expression"`
Output yaml.MapSlice `yaml:"output"`
// contains filtered or unexported fields
}
func (*Rule) UnmarshalYAML ¶
type RuleMapSlice ¶
type RuleMapSlice []RuleMap
用于帮助yaml解析,保证Rule有序
func (*RuleMapSlice) UnmarshalYAML ¶
func (m *RuleMapSlice) UnmarshalYAML(unmarshal func(interface{}) error) error
type RuleRequest ¶
type RuleRequest struct {
Cache bool `yaml:"cache"`
Content string `yaml:"content"` // tcp/udp专用
ReadTimeout string `yaml:"read_timeout"` // tcp/udp专用
ConnectionId string `yaml:"connection_id"` // tcp/udp专用
Method string `yaml:"method"`
Path string `yaml:"path"`
Headers map[string]string `yaml:"headers"`
Body string `yaml:"body"`
FollowRedirects bool `yaml:"follow_redirects"`
Brute bool `yaml:"brute"` // 如果brute=true,则认为poc成立,不继续验证
}
http/tcp/udp cache 是否使用缓存的请求,如果该选项为 true,那么如果在一次探测中其它脚本对相同目标发送过相同请求,那么便使用之前缓存的响应,而不发新的数据包 content 用于tcp/udp请求,请求内容,比如:content: "request" read_timeout 用于tcp/udp请求,发送请求之后的读取超时时间(注 实际是一个 int, 但是为了能够变量渲染,设置为 string) connection_id 用于tcp/udp请求,连接 id ,同一个连接 id 复用连接(注 不允许用0; cache 为 true 的时候可能会导致请求不会发送,所以如果有特殊需求记得 cache: false)
Click to show internal directories.
Click to hide internal directories.