From 4ee61f7edf980d0faec008fa2771d18993920056 Mon Sep 17 00:00:00 2001 From: edoardottt Date: Thu, 20 May 2021 21:47:54 +0200 Subject: [PATCH] update --- crawler/colly.go | 19 ++++++++++++------- main.go | 38 ++++++++++++++++++++++++++++++++++---- scanner/secrets.go | 5 +++++ 3 files changed, 51 insertions(+), 11 deletions(-) diff --git a/crawler/colly.go b/crawler/colly.go index 9673031..ca428a4 100644 --- a/crawler/colly.go +++ b/crawler/colly.go @@ -6,24 +6,24 @@ import ( "time" "github.com/edoardottt/cariddi/input" - "github.com/edoardottt/cariddi/output" "github.com/edoardottt/cariddi/scanner" "github.com/gocolly/colly" ) //Crawler -func Crawler(target string, delayTime int, concurrency int, secrets bool, secretsFile string, dataPost map[string]string) []string { +func Crawler(target string, delayTime int, concurrency int, secrets bool, secretsFile string, plain bool, dataPost map[string]string) ([]string, []scanner.SecretMatched) { //clean target input target = input.RemoveHeaders(target) - var result []string + var Finalresult []string + var Finalsecrets []scanner.SecretMatched // Instantiate collector c := colly.NewCollector( colly.AllowedDomains(target), colly.Async(true), colly.URLFilters( - regexp.MustCompile("(http://|https://|ftp://|)"+target+"*"), + regexp.MustCompile(target+"*"), ), ) @@ -56,17 +56,19 @@ func Crawler(target string, delayTime int, concurrency int, secrets bool, secret if secrets { secretsSlice := huntSecrets(secretsFile, r.URL.String(), dataPost) for _, elem := range secretsSlice { - output.EncapsulateCustomGreen(elem.Name, "Found in "+r.URL.String()+" "+elem.Regex+" matched!") + + secretFound := scanner.SecretMatched{Secret: elem, Url: r.URL.String()} + Finalsecrets = append(Finalsecrets, secretFound) } } - result = append(result, r.URL.String()) + Finalresult = append(Finalresult, r.URL.String()) }) // Start scraping on target c.Visit("http://" + target) c.Visit("https://" + target) c.Wait() - return result + return Finalresult, Finalsecrets } //huntSecrets @@ -76,6 +78,9 @@ func huntSecrets(secretsFile string, target string, data map[string]string) []sc secrets := SecretsMatch(body) return secrets } + + // HERE ---> ELSE SECRETS FILE ! + return scanner.GetRegexes() } diff --git a/main.go b/main.go index bf0bd36..6b2ec54 100644 --- a/main.go +++ b/main.go @@ -43,11 +43,41 @@ func main() { output.Beautify() var finalResult []string + var finalSecret []scanner.SecretMatched for _, inp := range targets { - var result []string - result = crawler.Crawler(inp, flags.Delay, flags.Concurrency, flags.Secrets, flags.SecretsFile, data) + result, secrets := crawler.Crawler(inp, flags.Delay, flags.Concurrency, flags.Secrets, flags.SecretsFile, flags.Plain, data) finalResult = append(finalResult, result...) + finalSecret = append(finalSecret, secrets...) + } + + // IF TXT OUTPUT + if flags.Txt != "" { + + // if secrets flag enabled save also secrets + if flags.Secrets { + + } + + } + + // IF HTML OUTPUT + if flags.Html != "" { + + // if secrets flag enabled save also secrets + if flags.Secrets { + + } + + } + + // if needed print secrets + if !flags.Plain { + for _, elem := range finalSecret { + output.EncapsulateCustomGreen(elem.Secret.Name, "Found in "+elem.Url+" "+elem.Secret.Regex+" matched!") + } + } + // if needed print urls + if !flags.Plain { + output.PrintSimpleOutput(finalResult) } - output.PrintSimpleOutput(finalResult) - scanner.Scan() } diff --git a/scanner/secrets.go b/scanner/secrets.go index a2eb298..22af155 100644 --- a/scanner/secrets.go +++ b/scanner/secrets.go @@ -8,6 +8,11 @@ type Secret struct { Poc string } +type SecretMatched struct { + Secret Secret + Url string +} + func GetRegexes() []Secret { var regexes = []Secret{ {