Skip to content

Commit 045ed69

Browse files
committed
Add wordlist generator
1 parent 3c2b4a8 commit 045ed69

File tree

4 files changed

+42
-3
lines changed

4 files changed

+42
-3
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
.DS_Store
22
.*swp
33
cmd/sonar/sonar
4+
words.go

cmd/sonar/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ func main() {
5252
case (brute == true):
5353
var wl sonar.Wordlist
5454
if wordlist == "" {
55-
wl = sonar.NewInternal(sonar.InternalWords)
55+
wl = sonar.NewInternal(sonar.InternalWordlist)
5656
} else {
5757
fp, err := os.Open(wordlist)
5858
if err != nil {

cmd/wordlist_generator/main.go

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package main
2+
3+
import (
4+
"bytes"
5+
"flag"
6+
"io/ioutil"
7+
"log"
8+
"strings"
9+
)
10+
11+
func main() {
12+
var wordlist, pkg, output string
13+
14+
flag.StringVar(&wordlist, "wordlist", "", "word list to generate from")
15+
flag.StringVar(&pkg, "package", "sonar", "package to generate for")
16+
flag.StringVar(&output, "output", "words.go", "file output source to")
17+
flag.Parse()
18+
19+
if wordlist == "" {
20+
log.Fatal("no wordlist specified")
21+
}
22+
23+
words, err := ioutil.ReadFile(wordlist)
24+
if err != nil {
25+
log.Fatal(err)
26+
}
27+
28+
wordSlice := strings.Split(string(words), "\n")
29+
out := bytes.NewBuffer([]byte{})
30+
_, err = out.Write([]byte("package " + pkg + "\n\nvar InternalWordlist = []string{\"" + strings.Join(wordSlice, "\", \"") + "\"}\n"))
31+
if err != nil {
32+
log.Fatal(err)
33+
}
34+
35+
err = ioutil.WriteFile(output, out.Bytes(), 0600)
36+
if err != nil {
37+
log.Fatal(err)
38+
}
39+
}

wordlist.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
//go:generate wordlist_generator -wordlist wordlist.txt
12
package sonar
23

34
import (
@@ -6,8 +7,6 @@ import (
67
"strings"
78
)
89

9-
var InternalWords = []string{"www", "beta", "mail", "demo", "test"}
10-
1110
type Wordlist interface {
1211
readWords()
1312
GetChannel() <-chan string

0 commit comments

Comments
 (0)