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.