From f03d537df779821222dad1eca042675420491187 Mon Sep 17 00:00:00 2001 From: edoardottt Date: Sun, 7 Apr 2024 18:50:25 +0200 Subject: [PATCH] Embed default lists #135 --- Dockerfile | 1 - Makefile | 2 -- pkg/input/dirs.go | 21 ++++++++++++--------- {lists => pkg/input}/dirs.txt | 0 {lists => pkg/input}/subdomains.txt | 0 pkg/input/subs.go | 21 ++++++++++++--------- 6 files changed, 24 insertions(+), 21 deletions(-) rename {lists => pkg/input}/dirs.txt (100%) rename {lists => pkg/input}/subdomains.txt (100%) diff --git a/Dockerfile b/Dockerfile index 7b6d125..8049238 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,6 +5,5 @@ WORKDIR $GOPATH/src/github.com/edoardottt/scilla COPY . . RUN go mod download golang.org/x/sys RUN go install -v ./... -RUN mv ./lists/ /usr/bin/ ENTRYPOINT ["scilla"] \ No newline at end of file diff --git a/Makefile b/Makefile index 6d0c01c..0703d3d 100644 --- a/Makefile +++ b/Makefile @@ -24,14 +24,12 @@ lint: linux: @go build ./cmd/scilla @sudo mv scilla /usr/bin/ - @sudo cp -r lists/ /usr/bin/ @chmod +x scripts/config.sh @./scripts/config.sh @echo "Done." unlinux: @sudo rm -rf /usr/bin/scilla - @sudo rm -rf /usr/bin/lists/ @rm -rf ~/.config/scilla @echo "Done." diff --git a/pkg/input/dirs.go b/pkg/input/dirs.go index a398fa8..2b49e21 100644 --- a/pkg/input/dirs.go +++ b/pkg/input/dirs.go @@ -31,7 +31,9 @@ import ( "bufio" "log" "os" - "runtime" + "strings" + + _ "embed" sliceUtils "github.com/edoardottt/scilla/internal/slice" urlUtils "github.com/edoardottt/scilla/internal/url" @@ -41,6 +43,11 @@ const ( windows = "windows" ) +var ( + //go:embed dirs.txt + defaultDirsWordlist string +) + // ReadDictDirs reads all the possible dirs from input file. func ReadDictDirs(inputFile string) []string { file, err := os.Open(inputFile) @@ -73,18 +80,14 @@ func ReadDictDirs(inputFile string) []string { } // CreateUrls returns a list of directories -// from the default file lists/dirs.txt. +// from the default file dirs.txt. func CreateUrls(filename string, scheme string, url string) []string { var dirs []string - if filename == "" { - if runtime.GOOS == windows { - dirs = ReadDictDirs("lists/dirs.txt") - } else { // linux - dirs = ReadDictDirs("/usr/bin/lists/dirs.txt") - } - } else { + if filename != "" { dirs = ReadDictDirs(filename) + } else { + dirs = strings.Fields(defaultDirsWordlist) } result := []string{} diff --git a/lists/dirs.txt b/pkg/input/dirs.txt similarity index 100% rename from lists/dirs.txt rename to pkg/input/dirs.txt diff --git a/lists/subdomains.txt b/pkg/input/subdomains.txt similarity index 100% rename from lists/subdomains.txt rename to pkg/input/subdomains.txt diff --git a/pkg/input/subs.go b/pkg/input/subs.go index 1349b07..af14127 100644 --- a/pkg/input/subs.go +++ b/pkg/input/subs.go @@ -31,11 +31,18 @@ import ( "bufio" "log" "os" - "runtime" + "strings" + + _ "embed" urlUtils "github.com/edoardottt/scilla/internal/url" ) +var ( + //go:embed subdomains.txt + defaultSubdomainsWordlist string +) + // ReadDictSubs reads all the possible subdomains from file. func ReadDictSubs(inputFile string) []string { file, err := os.Open(inputFile) @@ -58,18 +65,14 @@ func ReadDictSubs(inputFile string) []string { } // CreateSubdomains returns a list of subdomains -// from the default file lists/subdomains.txt. +// from the default file subdomains.txt. func CreateSubdomains(filename string, scheme string, url string) []string { var subs []string - if filename == "" { - if runtime.GOOS == windows { - subs = ReadDictSubs("lists/subdomains.txt") - } else { // linux - subs = ReadDictSubs("/usr/bin/lists/subdomains.txt") - } - } else { + if filename != "" { subs = ReadDictSubs(filename) + } else { + subs = strings.Fields(defaultSubdomainsWordlist) } result := []string{}