1
1
Fork 0
mirror of https://github.com/OJ/gobuster.git synced 2024-05-18 02:16:02 +02:00

better error message

This commit is contained in:
firefart 2021-03-03 00:56:27 +01:00
parent a0b94ee723
commit 09fd85a201
5 changed files with 37 additions and 38 deletions

View File

@ -64,38 +64,40 @@ func parseDirOptions() (*libgobuster.Options, *gobusterdir.OptionsDir, error) {
if err != nil {
return nil, nil, fmt.Errorf("invalid value for extensions: %w", err)
}
if plugin.Extensions != "" {
ret, err := helper.ParseExtensions(plugin.Extensions)
if err != nil {
return nil, nil, fmt.Errorf("invalid value for extensions: %w", err)
}
plugin.ExtensionsParsed = ret
ret, err := helper.ParseExtensions(plugin.Extensions)
if err != nil {
return nil, nil, fmt.Errorf("invalid value for extensions: %w", err)
}
plugin.ExtensionsParsed = ret
// parse normal status codes
plugin.StatusCodes, err = cmdDir.Flags().GetString("status-codes")
if err != nil {
return nil, nil, fmt.Errorf("invalid value for status-codes: %w", err)
}
ret2, err := helper.ParseCommaSeparatedInt(plugin.StatusCodes)
if err != nil {
return nil, nil, fmt.Errorf("invalid value for status-codes: %w", err)
}
plugin.StatusCodesParsed = ret2
// blacklist will override the normal status codes
plugin.StatusCodesBlacklist, err = cmdDir.Flags().GetString("status-codes-blacklist")
if err != nil {
return nil, nil, fmt.Errorf("invalid value for status-codes-blacklist: %w", err)
}
ret3, err := helper.ParseCommaSeparatedInt(plugin.StatusCodesBlacklist)
if err != nil {
return nil, nil, fmt.Errorf("invalid value for status-codes-blacklist: %w", err)
}
plugin.StatusCodesBlacklistParsed = ret3
// blacklist will override the normal status codes
if plugin.StatusCodesBlacklist != "" {
ret, err := helper.ParseCommaSeparatedInt(plugin.StatusCodesBlacklist)
if err != nil {
return nil, nil, fmt.Errorf("invalid value for status-codes-blacklist: %w", err)
}
plugin.StatusCodesBlacklistParsed = ret
} else {
// parse normal status codes
plugin.StatusCodes, err = cmdDir.Flags().GetString("status-codes")
if err != nil {
return nil, nil, fmt.Errorf("invalid value for status-codes: %w", err)
}
ret, err := helper.ParseCommaSeparatedInt(plugin.StatusCodes)
if err != nil {
return nil, nil, fmt.Errorf("invalid value for status-codes: %w", err)
}
plugin.StatusCodesParsed = ret
if plugin.StatusCodes != "" && plugin.StatusCodesBlacklist != "" {
return nil, nil, fmt.Errorf("status-codes and status-codes-blacklist are both set, pleaes set only one")
}
if plugin.StatusCodes == "" && plugin.StatusCodesBlacklist == "" {
return nil, nil, fmt.Errorf("status-codes and status-codes-blacklist are both not set, pleaes set one")
}
plugin.UseSlash, err = cmdDir.Flags().GetBool("add-slash")

View File

@ -60,19 +60,16 @@ func parseFuzzOptions() (*libgobuster.Options, *gobusterfuzz.OptionsFuzz, error)
plugin.Headers = httpOpts.Headers
plugin.Method = httpOpts.Method
// blacklist will override the normal status codes
plugin.ExcludedStatusCodes, err = cmdFuzz.Flags().GetString("excludestatuscodes")
if err != nil {
return nil, nil, fmt.Errorf("invalid value for excludestatuscodes: %w", err)
}
// blacklist will override the normal status codes
if plugin.ExcludedStatusCodes != "" {
ret, err := helper.ParseCommaSeparatedInt(plugin.ExcludedStatusCodes)
if err != nil {
return nil, nil, fmt.Errorf("invalid value for excludestatuscodes: %w", err)
}
plugin.ExcludedStatusCodesParsed = ret
ret, err := helper.ParseCommaSeparatedInt(plugin.ExcludedStatusCodes)
if err != nil {
return nil, nil, fmt.Errorf("invalid value for excludestatuscodes: %w", err)
}
plugin.ExcludedStatusCodesParsed = ret
plugin.ExcludeLength, err = cmdFuzz.Flags().GetIntSlice("exclude-length")
if err != nil {

2
go.mod
View File

@ -3,7 +3,7 @@ module github.com/OJ/gobuster/v3
require (
github.com/google/uuid v1.2.0
github.com/spf13/cobra v1.1.3
golang.org/x/sys v0.0.0-20210223212115-eede4237b368 // indirect
golang.org/x/sys v0.0.0-20210301091718-77cc2087c03b // indirect
golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d
)

4
go.sum
View File

@ -228,8 +228,8 @@ golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210223212115-eede4237b368 h1:fDE3p0qf2V1co1vfj3/o87Ps8Hq6QTGNxJ5Xe7xSp80=
golang.org/x/sys v0.0.0-20210223212115-eede4237b368/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210301091718-77cc2087c03b h1:kHlr0tATeLRMEiZJu5CknOw/E8V6h69sXXQFGoPtjcc=
golang.org/x/sys v0.0.0-20210301091718-77cc2087c03b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d h1:SZxvLBoTP5yHO3Frd4z4vrF+DBX9vMVanchswa69toE=
golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=

View File

@ -11,7 +11,7 @@ import (
// ParseExtensions parses the extensions provided as a comma separated list
func ParseExtensions(extensions string) (libgobuster.StringSet, error) {
if extensions == "" {
return libgobuster.StringSet{}, fmt.Errorf("invalid extension string provided")
return libgobuster.StringSet{}, nil
}
ret := libgobuster.NewStringSet()
@ -26,7 +26,7 @@ func ParseExtensions(extensions string) (libgobuster.StringSet, error) {
// ParseCommaSeparatedInt parses the status codes provided as a comma separated list
func ParseCommaSeparatedInt(inputString string) (libgobuster.IntSet, error) {
if inputString == "" {
return libgobuster.IntSet{}, fmt.Errorf("invalid string provided")
return libgobuster.IntSet{}, nil
}
ret := libgobuster.NewIntSet()