-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathmain.go
53 lines (43 loc) · 1.21 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package main
import (
"flag"
"fuzz/scan"
"fuzz/utils"
"log"
"net/url"
"runtime"
)
var (
urlAddress string
dictPath string
concurrency int
timeOut int
)
func init() {
flag.StringVar(&urlAddress, "u", "", "目标站点地址")
flag.StringVar(&dictPath, "d", "./dict/dict.txt", "爆破字典路径")
flag.IntVar(&concurrency, "c", runtime.GOMAXPROCS(runtime.NumCPU()), "并发数")
flag.IntVar(&timeOut, "t", 3, "单个请求规则超时时间")
}
func main() {
flag.Parse()
// 解析website
_, err := url.ParseRequestURI(urlAddress)
if err != nil {
log.Fatalf("【%s】不是一个合法的URL", urlAddress)
}
// 解析字典
rules, err := utils.LoadDictFile(dictPath)
if err != nil {
log.Fatalf("爆破字典【%s】加载失败:%s", dictPath, err)
}
log.Printf("扫描目标站点:【%s】", urlAddress)
log.Printf("加载爆破文件路径:【%s】", dictPath)
log.Printf("爆破规则数:【%d】", len(rules))
log.Printf("并发数:【%d】", concurrency)
log.Printf("请求超时时间:【%d】", timeOut)
log.Println("开始扫描.......")
log.Println("----------------------------------------------")
// 开始扫描
scan.Scan(urlAddress, concurrency, timeOut, rules)
}