Print error messages to stderr to help with piping -s output

This commit is contained in:
Joona Hoikkala 2018-11-08 15:54:12 +02:00
parent 466a011db9
commit 8287881a84
No known key found for this signature in database
GPG Key ID: D5AA86BBF9B29A5C
2 changed files with 10 additions and 9 deletions

14
main.go
View File

@ -62,19 +62,19 @@ func main() {
//flag.StringVar(&opts.matcherReflect, "mref", "", "Match reflected payload")
flag.Parse()
if err := prepareConfig(&opts, &conf); err != nil {
fmt.Printf("Encountered error(s): %s\n", err)
fmt.Fprintf(os.Stderr, "Encountered error(s): %s\n", err)
flag.Usage()
os.Exit(1)
}
if err := prepareFilters(&opts, &conf); err != nil {
fmt.Printf("Encountered error(s): %s\n", err)
fmt.Fprintf(os.Stderr, "Encountered error(s): %s\n", err)
flag.Usage()
os.Exit(1)
}
job, err := prepareJob(&conf)
if err != nil {
fmt.Printf("Encountered error(s): %s\n", err)
fmt.Fprintf(os.Stderr, "Encountered error(s): %s\n", err)
flag.Usage()
os.Exit(1)
}
@ -107,10 +107,10 @@ func prepareConfig(parseOpts *cliOptions, conf *ffuf.Config) error {
var errlist *multierror.Error
foundkeyword := false
if len(conf.Url) == 0 {
errlist = multierror.Append(errlist, fmt.Errorf("-u flag is required."))
errlist = multierror.Append(errlist, fmt.Errorf("-u flag is required"))
}
if len(conf.Wordlist) == 0 {
errlist = multierror.Append(errlist, fmt.Errorf("-w flag is required."))
errlist = multierror.Append(errlist, fmt.Errorf("-w flag is required"))
}
//Prepare headers
for _, v := range parseOpts.headers {
@ -130,7 +130,7 @@ func prepareConfig(parseOpts *cliOptions, conf *ffuf.Config) error {
conf.StaticHeaders[strings.TrimSpace(hs[0])] = strings.TrimSpace(hs[1])
}
} else {
errlist = multierror.Append(errlist, fmt.Errorf("Header defined by -H needs to have a value. \":\" should be used as a separator."))
errlist = multierror.Append(errlist, fmt.Errorf("Header defined by -H needs to have a value. \":\" should be used as a separator"))
}
}
//Search for keyword from URL and POST data too
@ -142,7 +142,7 @@ func prepareConfig(parseOpts *cliOptions, conf *ffuf.Config) error {
}
if !foundkeyword {
errlist = multierror.Append(errlist, fmt.Errorf("No FUZZ keywords found in headers or URL, nothing to do."))
errlist = multierror.Append(errlist, fmt.Errorf("No FUZZ keywords found in headers or URL, nothing to do"))
}
return errlist.ErrorOrNil()
}

View File

@ -2,6 +2,7 @@ package ffuf
import (
"fmt"
"os"
"sync"
)
@ -49,12 +50,12 @@ func (j *Job) Start() {
func (j *Job) runTask(input []byte) {
req, err := j.Runner.Prepare(input)
if err != nil {
fmt.Printf("Encountered error while preparing request: %s\n", err)
fmt.Fprintf(os.Stderr, "Encountered error while preparing request: %s\n", err)
return
}
resp, err := j.Runner.Execute(&req)
if err != nil {
fmt.Printf("Error in runner: %s\n", err)
fmt.Fprintf(os.Stderr, "Error in runner: %s\n", err)
return
}
j.Output.Result(resp)