Documentation
¶
Index ¶
- type DistributionTaskFunc
- type ScanTask
- type Task
- func (t *Task) AddWg(host string)
- func (t *Task) Distribution(in *input.CrawlResult) DistributionTaskFunc
- func (t *Task) DoneWg(host string)
- func (t *Task) PerFile(in *input.CrawlResult)
- func (t *Task) PerFolder(in *input.CrawlResult)
- func (t *Task) PerServer(in *input.CrawlResult)
- func (t *Task) Run(in *input.CrawlResult)
- func (t *Task) WaitWg(host string)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DistributionTaskFunc ¶ added in v1.1.0
type DistributionTaskFunc func()
DistributionTaskFunc ants 提交任务需要一个无参数的函数
type ScanTask ¶ added in v1.0.0
type ScanTask struct { PerServer map[string]bool // 判断当前目标的 web server 是否扫过 key 为插件名字 PerFolder map[string]bool // 判断当前目标的目录是否扫过 这里的 key 为插件名_目录名 比如 bbscan_/admin PocPlugin map[string]bool // 用来 poc 漏洞模块对应的指纹扫描是否扫,poc 模块依托于指纹识别,只有识别到了才会扫描 Client *httpx.Client // 用来进行请求的 client Archive bool // 用来判断是否扫描过 Wg *sizedwaitgroup.SizedWaitGroup // 限制对每个url扫描时同时运行的插件数 }
type Task ¶
type Task struct { Fingerprints []string // 这个只有主动会使用,被动只会新建一个 task,所以不会用到 Parallelism int // 同时扫描的最大 url 个数 Pool *ants.Pool // 协程池,目前来看只是用来优化被动扫描,减小被动扫描时的协程创建、销毁的开销 WG *sync.WaitGroup // 等待协程池所有任务结束 ScanTask map[string]*ScanTask // 存储对目标扫描时的一些状态 Lock sync.Mutex // 对 Distribution函数中的一些 map 并发操作进行保护 WgLock sync.Mutex // ScanTask 是一个 map,运行插件时会并发操作,加锁保护 WgAddLock sync.Mutex // ScanTask 是一个 map,运行插件时会并发操作,加锁保护 }
func (*Task) Distribution ¶
func (t *Task) Distribution(in *input.CrawlResult) DistributionTaskFunc
Distribution 对爬虫结果或者被动发现结果进行任务分发
func (*Task) PerFile ¶ added in v1.0.0
func (t *Task) PerFile(in *input.CrawlResult)
PerFile 针对每个链接, 去重的操作不在这里进行,具体的逻辑在插件内部实现
func (*Task) PerFolder ¶ added in v1.0.0
func (t *Task) PerFolder(in *input.CrawlResult)
func (*Task) PerServer ¶ added in v1.0.0
func (t *Task) PerServer(in *input.CrawlResult)
PerServer 针对每个域名,只会执行一次
func (*Task) Run ¶ added in v1.0.0
func (t *Task) Run(in *input.CrawlResult)
Click to show internal directories.
Click to hide internal directories.