task

package
v1.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 19, 2024 License: AGPL-3.0 Imports: 25 Imported by: 0

Documentation

Index

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) AddWg added in v1.0.8

func (t *Task) AddWg(host string)

func (*Task) Distribution

func (t *Task) Distribution(in *input.CrawlResult) DistributionTaskFunc

Distribution 对爬虫结果或者被动发现结果进行任务分发

func (*Task) DoneWg added in v1.0.8

func (t *Task) DoneWg(host string)

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)

func (*Task) WaitWg added in v1.0.8

func (t *Task) WaitWg(host string)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL