From 44e88e0aa707d8926b9fe0cc9c0a5f8df2edd1d1 Mon Sep 17 00:00:00 2001 From: M09Ic Date: Wed, 24 Jul 2024 04:08:59 +0800 Subject: [PATCH] fix filename error --- internal/option.go | 4 ++-- internal/task.go | 3 ++- internal/utils.go | 8 ++++++++ 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/internal/option.go b/internal/option.go index 252f1a7..4ae66f6 100644 --- a/internal/option.go +++ b/internal/option.go @@ -456,7 +456,7 @@ func (opt *Option) NewRunner() (*Runner, error) { if opt.ResumeFrom != "" { r.StatFile, err = files.NewFile(opt.ResumeFrom, false, true, true) } else { - r.StatFile, err = files.NewFile(strings.ReplaceAll(r.Tasks.Name, ":", "_")+".stat", false, true, true) + r.StatFile, err = files.NewFile(safeFilename(r.Tasks.Name)+".stat", false, true, true) } if err != nil { return nil, err @@ -506,7 +506,7 @@ func (opt *Option) BuildWords(r *Runner) error { var err error if opt.DefaultDict { dicts = append(dicts, pkg.LoadDefaultDict()) - logs.Log.Info("not set any dictionary, use default dictionary: https://github.com/maurosoria/dirsearch/blob/master/db/dicc.txt") + logs.Log.Info("use default dictionary: https://github.com/maurosoria/dirsearch/blob/master/db/dicc.txt") } for i, f := range opt.Dictionaries { dict, err := loadFileToSlice(f) diff --git a/internal/task.go b/internal/task.go index 3395a44..fe1bef3 100644 --- a/internal/task.go +++ b/internal/task.go @@ -18,7 +18,7 @@ type Task struct { func NewTaskGenerator(port string) *TaskGenerator { gen := &TaskGenerator{ ports: utils.ParsePortsString(port), - tasks: make(chan *Task, 256), + tasks: make(chan *Task), In: make(chan *Task), } @@ -56,6 +56,7 @@ func (gen *TaskGenerator) Run(baseurl string) { if len(gen.ports) == 0 { gen.In <- &Task{baseUrl: parsed.String()} + return } for _, p := range gen.ports { diff --git a/internal/utils.go b/internal/utils.go index f36946c..94a74c2 100644 --- a/internal/utils.go +++ b/internal/utils.go @@ -164,3 +164,11 @@ func wrapWordsFunc(f func(string) string) func(string) []string { return []string{f(s)} } } + +func safeFilename(filename string) string { + filename = strings.ReplaceAll(filename, "http://", "") + filename = strings.ReplaceAll(filename, "https://", "") + filename = strings.ReplaceAll(filename, ":", "_") + filename = strings.ReplaceAll(filename, "/", "_") + return filename +}