From 69613f58da3c998345ee70eb559b20e465fd28db Mon Sep 17 00:00:00 2001 From: edoardottt Date: Thu, 20 May 2021 22:22:49 +0200 Subject: [PATCH] update --- main.go | 7 +------ output/html.go | 23 +++++++++++++---------- output/output.go | 36 ++++++++++++++++++++++++++++++++++++ utils/files.go | 4 ++-- 4 files changed, 52 insertions(+), 18 deletions(-) diff --git a/main.go b/main.go index f2814de..4f05443 100644 --- a/main.go +++ b/main.go @@ -57,12 +57,7 @@ func main() { // IF HTML OUTPUT if flags.Html != "" { - - // if secrets flag enabled save also secrets - if flags.Secrets { - - } - + output.HtmlOutput(flags, finalResult, finalSecret) } // if needed print secrets diff --git a/output/html.go b/output/html.go index 1b1c4e0..02dbb28 100644 --- a/output/html.go +++ b/output/html.go @@ -6,10 +6,11 @@ import ( ) //bannerHTML -func bannerHTML(target string, filename string) { +func BannerHTML(filename string) { file, err := os.OpenFile(filename, os.O_APPEND|os.O_WRONLY, 0644) if err != nil { log.Println(err) + os.Exit(1) } defer file.Close() file.WriteString("

Cariddi

") @@ -17,15 +18,15 @@ func bannerHTML(target string, filename string) { file.WriteString("
  • github.com/edoardottt/cariddi
  • ") file.WriteString("
  • edoardottt, edoardoottavianelli.it
  • ") file.WriteString("
  • Released under GPLv3 License
  • ") - file.WriteString("

    target: " + target + "

    ") file.Close() } -//appendOutputToHtml -func appendOutputToHTML(output string, status string, filename string) { +//AppendOutputToHtml +func AppendOutputToHTML(output string, status string, filename string) { file, err := os.OpenFile(filename, os.O_APPEND|os.O_WRONLY, 0644) if err != nil { log.Println(err) + os.Exit(1) } defer file.Close() var statusColor string @@ -44,11 +45,12 @@ func appendOutputToHTML(output string, status string, filename string) { file.Close() } -//headerHtml -func headerHTML(header string, filename string) { +//HeaderHtml +func HeaderHTML(header string, filename string) { file, err := os.OpenFile(filename, os.O_APPEND|os.O_WRONLY, 0644) if err != nil { log.Println(err) + os.Exit(1) } if _, err := file.WriteString("

    " + header + "

    "); err != nil { @@ -69,8 +72,8 @@ func footerHTML(filename string) { file.Close() } -//bannerFooterHTML -func bannerFooterHTML(filename string) { +//BannerFooterHTML +func BannerFooterHTML(filename string) { file, err := os.OpenFile(filename, os.O_APPEND|os.O_WRONLY, 0644) if err != nil { log.Println(err) diff --git a/output/output.go b/output/output.go index e9d1215..c05bde1 100644 --- a/output/output.go +++ b/output/output.go @@ -44,3 +44,39 @@ func TxtOutput(flags input.Input, finalResult []string, finalSecret []scanner.Se AppendOutputToTxt(elem, ResultFilename) } } + +//HtmlOutput it's the wrapper around all the html things. +//Actually it manages everything related to HTML output. +func HtmlOutput(flags input.Input, finalResult []string, finalSecret []scanner.SecretMatched) { + exists, err := utils.ElementExists("output-cariddi") + + if err != nil { + fmt.Println("Error while creating the output directory.") + os.Exit(1) + } + + if !exists { + utils.CreateOutputFolder() + } + + ResultFilename := utils.CreateOutputFile(flags.Html, "html") + + BannerHTML(ResultFilename) + + // if secrets flag enabled save also secrets + if flags.Secrets { + HeaderHTML("Secrets found", ResultFilename) + for _, elem := range finalSecret { + AppendOutputToHTML(elem.Secret.Name+" Found in "+elem.Url+" "+elem.Secret.Regex, "", ResultFilename) + } + FooterHTML(ResultFilename) + } + + HeaderHTML("Results", ResultFilename) + for _, elem := range finalResult { + AppendOutputToHTML(elem, "", ResultFilename) + } + FooterHTML(ResultFilename) + + BannerFooterHTM(ResultFilename) +} diff --git a/utils/files.go b/utils/files.go index 89b301b..b709be8 100644 --- a/utils/files.go +++ b/utils/files.go @@ -19,9 +19,9 @@ func CreateOutputFolder() { } //CreateOutputFile -func CreateOutputFile(target string, subcommand string, format string) string { +func CreateOutputFile(target string, format string) string { target = ReplaceBadCharacterOutput(target) - filename := "output-cariddi" + "/" + target + "." + subcommand + "." + format + filename := "output-cariddi" + "/" + target + "." + format _, err := os.Stat(filename) if os.IsNotExist(err) {