/
console.go
54 lines (45 loc) · 1.22 KB
/
console.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package main
import (
"encoding/json"
"fmt"
"strconv"
"strings"
"github.com/0mgfriday/scout/internal"
)
func printAsJson(obj any) {
j, err := json.Marshal(obj)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(j))
}
func prettyPrintAsJson(obj any) {
j, err := json.MarshalIndent(obj, "", " ")
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(j))
}
const LabelColor = "\033[1;36m%s\033[0m"
func printReport(r internal.Report) {
printValue("URL", r.Url)
printValue("IPs", strings.Join(r.IPs, ", "))
printValue("TLS.Subject", r.TLS.SubjectCommonName)
printValue("TLS.Organization", r.TLS.SubjectOrganization)
printValue("TLS.Issuer", r.TLS.Issuer)
printValue("TLS.NotAfter", r.TLS.NotAfter.String())
printValue("TLS.Domains", strings.Join(r.TLS.Domains, ", "))
printValue("Status", strconv.Itoa(r.Status))
printValue("Title", r.Title)
printValue("Wappalyzer", r.Wappalyzer)
headersOut, _ := json.MarshalIndent(r.Headers, "", " ")
printValue("Headers", string(headersOut))
jsFileOut, _ := json.MarshalIndent(r.JSFiles, "", " ")
printValue("JSFiles", string(jsFileOut))
}
func printValue(label string, value string) {
fmt.Printf(LabelColor, label)
fmt.Println(": " + value)
}