From 183a2bbab7fd1423ac8690d9d32cb8be8ed311b0 Mon Sep 17 00:00:00 2001 From: edoardottt Date: Sun, 28 Nov 2021 12:53:12 +0100 Subject: [PATCH] update --- crawler/colly.go | 13 ++++++++----- main.go | 14 ++++++++++++-- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/crawler/colly.go b/crawler/colly.go index 603d4cf..e3bb10f 100644 --- a/crawler/colly.go +++ b/crawler/colly.go @@ -39,10 +39,12 @@ import ( ) //Crawler it's the actual crawler core -func Crawler(target string, txt string, html string, delayTime int, concurrency int, ignore string, - ignoreTxt string, cache bool, timeout int, intensive bool, rua bool, proxy string, secrets bool, - secretsFile []string, plain bool, endpoints bool, endpointsFile []string, fileType int, - headers map[string]string) ([]string, []scanner.SecretMatched, []scanner.EndpointMatched, []scanner.FileTypeMatched) { +func Crawler(target string, txt string, html string, delayTime int, concurrency int, + ignore string, ignoreTxt string, cache bool, timeout int, intensive bool, rua bool, + proxy string, secrets bool, secretsFile []string, plain bool, endpoints bool, + endpointsFile []string, fileType int, headers map[string]string, + errors bool) ([]string, []scanner.SecretMatched, []scanner.EndpointMatched, + []scanner.FileTypeMatched, []scanner.ErrorMatched) { // This is to avoid to insert into the crawler target regular // expression directories passed as input. @@ -88,6 +90,7 @@ func Crawler(target string, txt string, html string, delayTime int, concurrency var FinalSecrets []scanner.SecretMatched var FinalEndpoints []scanner.EndpointMatched var FinalExtensions []scanner.FileTypeMatched + var FinalErrors []scanner.ErrorMatched //crawler creation c := CreateColly(delayTime, concurrency, cache, timeout, intensive, rua, proxy) @@ -285,7 +288,7 @@ func Crawler(target string, txt string, html string, delayTime int, concurrency if html != "" { output.FooterHTML(html) } - return FinalResults, FinalSecrets, FinalEndpoints, FinalExtensions + return FinalResults, FinalSecrets, FinalEndpoints, FinalExtensions, FinalErrors } //CreateColly takes as input all the settings needed to instantiate diff --git a/main.go b/main.go index 3ddc092..2614f4f 100644 --- a/main.go +++ b/main.go @@ -86,6 +86,7 @@ func main() { var finalSecret []scanner.SecretMatched var finalEndpoints []scanner.EndpointMatched var finalExtensions []scanner.FileTypeMatched + var finalErrors []scanner.ErrorMatched //Create output files if needed (txt / html). var ResultTxt = "" @@ -114,15 +115,16 @@ func main() { //For each target generate a crawler and collect all the results. for _, inp := range targets { - results, secrets, endpoints, extensions := crawler.Crawler(inp, ResultTxt, ResultHtml, flags.Delay, + results, secrets, endpoints, extensions, errors := crawler.Crawler(inp, ResultTxt, ResultHtml, flags.Delay, flags.Concurrency, flags.Ignore, flags.IgnoreTxt, flags.Cache, flags.Timeout, flags.Intensive, flags.Rua, flags.Proxy, flags.Secrets, secretsFileSlice, flags.Plain, flags.Endpoints, endpointsFileSlice, - flags.Extensions, headers) + flags.Extensions, headers, flags.Errors) finalResults = append(finalResults, results...) finalSecret = append(finalSecret, secrets...) finalEndpoints = append(finalEndpoints, endpoints...) finalExtensions = append(finalExtensions, extensions...) + finalErrors = append(finalErrors, errors...) } //Remove duplicates from all the results. @@ -130,6 +132,7 @@ func main() { finalSecret = scanner.RemoveDuplicateSecrets(finalSecret) finalEndpoints = scanner.RemovDuplicateEndpoints(finalEndpoints) finalExtensions = scanner.RemoveDuplicateExtensions(finalExtensions) + finalErrors = scanner.RemoveDuplicateErrors(finalErrors) // IF TXT OUTPUT > if flags.Txt != "" { @@ -171,4 +174,11 @@ func main() { output.EncapsulateCustomGreen(elem.Filetype.Extension, elem.Url+" matched!") } } + + //If needed print errors. + if !flags.Plain && len(finalErrors) != 0 { + for _, elem := range finalErrors { + output.EncapsulateCustomGreen(elem.Error.ErrorName, elem.Url+" matched!") + } + } }