This commit is contained in:
edoardottt
2021-05-20 21:47:54 +02:00
parent 26925e0ade
commit 4ee61f7edf
3 changed files with 51 additions and 11 deletions
+12 -7
View File
@@ -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()
}
+34 -4
View File
@@ -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()
}
+5
View File
@@ -8,6 +8,11 @@ type Secret struct {
Poc string
}
type SecretMatched struct {
Secret Secret
Url string
}
func GetRegexes() []Secret {
var regexes = []Secret{
{