From 4e48a5f147e5012f291e3045c7c86d301fcdde8f Mon Sep 17 00:00:00 2001 From: Ice3man543 Date: Thu, 22 Oct 2020 16:16:33 +0530 Subject: [PATCH] Added type to specify type of request --- v2/internal/tracelog/tracelog.go | 12 +++++++----- v2/pkg/executer/executer_dns.go | 4 ++-- v2/pkg/executer/executer_http.go | 24 ++++++++++++------------ 3 files changed, 21 insertions(+), 19 deletions(-) diff --git a/v2/internal/tracelog/tracelog.go b/v2/internal/tracelog/tracelog.go index a9348670e..7d81c42a3 100644 --- a/v2/internal/tracelog/tracelog.go +++ b/v2/internal/tracelog/tracelog.go @@ -12,7 +12,7 @@ type Log interface { // Close closes the log interface flushing data Close() // Request writes a log the requests trace log - Request(templateID, url string, err error) + Request(templateID, url, Type string, err error) } // NoopLogger is a noop logger that simply does nothing @@ -22,7 +22,7 @@ type NoopLogger struct{} func (n *NoopLogger) Close() {} // Request writes a log the requests trace log -func (n *NoopLogger) Request(templateID, url string, err error) {} +func (n *NoopLogger) Request(templateID, url, Type string, err error) {} // FileLogger is a trace logger that writes request logs to a file. type FileLogger struct { @@ -53,13 +53,15 @@ type JSONRequest struct { ID string `json:"id"` URL string `json:"url"` Error string `json:"error"` + Type string `json:"type"` } // Request writes a log the requests trace log -func (f *FileLogger) Request(templateID, url string, err error) { +func (f *FileLogger) Request(templateID, url, Type string, err error) { request := &JSONRequest{ - ID: templateID, - URL: url, + ID: templateID, + URL: url, + Type: Type, } if err != nil { request.Error = err.Error() diff --git a/v2/pkg/executer/executer_dns.go b/v2/pkg/executer/executer_dns.go index 480167647..e15dff0bf 100644 --- a/v2/pkg/executer/executer_dns.go +++ b/v2/pkg/executer/executer_dns.go @@ -98,14 +98,14 @@ func (e *DNSExecuter) ExecuteDNS(p progress.IProgress, reqURL string) *Result { // Compile each request for the template based on the URL compiledRequest, err := e.dnsRequest.MakeDNSRequest(domain) if err != nil { - e.traceLog.Request(e.template.ID, domain, err) + e.traceLog.Request(e.template.ID, domain, "dns", err) result.Error = errors.Wrap(err, "could not make dns request") p.Drop(1) return result } - e.traceLog.Request(e.template.ID, domain, nil) + e.traceLog.Request(e.template.ID, domain, "dns", nil) if e.debug { gologger.Infof("Dumped DNS request for %s (%s)\n\n", reqURL, e.template.ID) diff --git a/v2/pkg/executer/executer_http.go b/v2/pkg/executer/executer_http.go index 8bb5922d3..a6f612972 100644 --- a/v2/pkg/executer/executer_http.go +++ b/v2/pkg/executer/executer_http.go @@ -176,11 +176,11 @@ func (e *HTTPExecuter) ExecuteParallelHTTP(p progress.IProgress, reqURL string) // If the request was built correctly then execute it err := e.handleHTTP(reqURL, httpRequest, dynamicvalues, result) if err != nil { - e.traceLog.Request(e.template.ID, reqURL, err) + e.traceLog.Request(e.template.ID, reqURL, "http", err) result.Error = errors.Wrap(err, "could not handle http request") p.Drop(remaining) } else { - e.traceLog.Request(e.template.ID, reqURL, nil) + e.traceLog.Request(e.template.ID, reqURL, "http", nil) } }(request) } @@ -248,11 +248,11 @@ func (e *HTTPExecuter) ExecuteTurboHTTP(p progress.IProgress, reqURL string) *Re request.PipelineClient = pipeclient err = e.handleHTTP(reqURL, httpRequest, dynamicvalues, result) if err != nil { - e.traceLog.Request(e.template.ID, reqURL, err) + e.traceLog.Request(e.template.ID, reqURL, "http", err) result.Error = errors.Wrap(err, "could not handle http request") p.Drop(remaining) } else { - e.traceLog.Request(e.template.ID, reqURL, nil) + e.traceLog.Request(e.template.ID, reqURL, "http", nil) } request.PipelineClient = nil }(request) @@ -305,9 +305,9 @@ func (e *HTTPExecuter) ExecuteHTTP(p progress.IProgress, reqURL string) *Result if err != nil { result.Error = errors.Wrap(err, "could not handle http request") p.Drop(remaining) - e.traceLog.Request(e.template.ID, reqURL, err) + e.traceLog.Request(e.template.ID, reqURL, "http", err) } else { - e.traceLog.Request(e.template.ID, reqURL, nil) + e.traceLog.Request(e.template.ID, reqURL, "http", nil) } } @@ -353,10 +353,10 @@ func (e *HTTPExecuter) handleHTTP(reqURL string, request *requests.HTTPRequest, if resp != nil { resp.Body.Close() } - e.traceLog.Request(e.template.ID, reqURL, err) + e.traceLog.Request(e.template.ID, reqURL, "http", err) return err } - e.traceLog.Request(e.template.ID, reqURL, nil) + e.traceLog.Request(e.template.ID, reqURL, "http", nil) } else if request.Unsafe { // rawhttp // burp uses "\r\n" as new line character @@ -370,10 +370,10 @@ func (e *HTTPExecuter) handleHTTP(reqURL string, request *requests.HTTPRequest, if resp != nil { resp.Body.Close() } - e.traceLog.Request(e.template.ID, reqURL, err) + e.traceLog.Request(e.template.ID, reqURL, "http", err) return err } - e.traceLog.Request(e.template.ID, reqURL, nil) + e.traceLog.Request(e.template.ID, reqURL, "http", nil) } else { // retryablehttp resp, err = e.httpClient.Do(request.Request) @@ -381,10 +381,10 @@ func (e *HTTPExecuter) handleHTTP(reqURL string, request *requests.HTTPRequest, if resp != nil { resp.Body.Close() } - e.traceLog.Request(e.template.ID, reqURL, err) + e.traceLog.Request(e.template.ID, reqURL, "http", err) return err } - e.traceLog.Request(e.template.ID, reqURL, nil) + e.traceLog.Request(e.template.ID, reqURL, "http", nil) } duration := time.Since(timeStart)