fix filename error

This commit is contained in:
M09Ic 2024-07-24 04:08:59 +08:00
parent 2b7be8d449
commit 44e88e0aa7
3 changed files with 12 additions and 3 deletions

View File

@ -456,7 +456,7 @@ func (opt *Option) NewRunner() (*Runner, error) {
if opt.ResumeFrom != "" { if opt.ResumeFrom != "" {
r.StatFile, err = files.NewFile(opt.ResumeFrom, false, true, true) r.StatFile, err = files.NewFile(opt.ResumeFrom, false, true, true)
} else { } 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 { if err != nil {
return nil, err return nil, err
@ -506,7 +506,7 @@ func (opt *Option) BuildWords(r *Runner) error {
var err error var err error
if opt.DefaultDict { if opt.DefaultDict {
dicts = append(dicts, pkg.LoadDefaultDict()) 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 { for i, f := range opt.Dictionaries {
dict, err := loadFileToSlice(f) dict, err := loadFileToSlice(f)

View File

@ -18,7 +18,7 @@ type Task struct {
func NewTaskGenerator(port string) *TaskGenerator { func NewTaskGenerator(port string) *TaskGenerator {
gen := &TaskGenerator{ gen := &TaskGenerator{
ports: utils.ParsePortsString(port), ports: utils.ParsePortsString(port),
tasks: make(chan *Task, 256), tasks: make(chan *Task),
In: make(chan *Task), In: make(chan *Task),
} }
@ -56,6 +56,7 @@ func (gen *TaskGenerator) Run(baseurl string) {
if len(gen.ports) == 0 { if len(gen.ports) == 0 {
gen.In <- &Task{baseUrl: parsed.String()} gen.In <- &Task{baseUrl: parsed.String()}
return
} }
for _, p := range gen.ports { for _, p := range gen.ports {

View File

@ -164,3 +164,11 @@ func wrapWordsFunc(f func(string) string) func(string) []string {
return []string{f(s)} 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
}