This commit is contained in:
edoardottt
2021-11-28 12:53:12 +01:00
parent 97088a89a0
commit 183a2bbab7
2 changed files with 20 additions and 7 deletions
+8 -5
View File
@@ -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
+12 -2
View File
@@ -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!")
}
}
}