Use template path in output request

dev
Alexey Zhuchkov 2021-10-30 12:55:02 +03:00
parent 933ed2429d
commit 463c1c0142
6 changed files with 20 additions and 20 deletions

View File

@ -28,7 +28,7 @@ func (request *Request) ExecuteWithResults(input string, metadata /*TODO review
// Compile each request for the template based on the URL
compiledRequest, err := request.Make(domain)
if err != nil {
request.options.Output.Request(request.options.TemplateID, domain, "dns", err)
request.options.Output.Request(request.options.TemplatePath, domain, "dns", err)
request.options.Progress.IncrementFailedRequestsBy(1)
return errors.Wrap(err, "could not build request")
}
@ -46,7 +46,7 @@ func (request *Request) ExecuteWithResults(input string, metadata /*TODO review
// Send the request to the target servers
resp, err := request.dnsClient.Do(compiledRequest)
if err != nil {
request.options.Output.Request(request.options.TemplateID, domain, "dns", err)
request.options.Output.Request(request.options.TemplatePath, domain, "dns", err)
request.options.Progress.IncrementFailedRequestsBy(1)
}
if resp == nil {
@ -54,7 +54,7 @@ func (request *Request) ExecuteWithResults(input string, metadata /*TODO review
}
request.options.Progress.IncrementRequests()
request.options.Output.Request(request.options.TemplateID, domain, "dns", err)
request.options.Output.Request(request.options.TemplatePath, domain, "dns", err)
gologger.Verbose().Msgf("[%s] Sent DNS request to %s", request.options.TemplateID, domain)
outputEvent := request.responseToDSLMap(compiledRequest, resp, input, input)

View File

@ -69,7 +69,7 @@ func (request *Request) ExecuteWithResults(input string, metadata /*TODO review
})
wg.Wait()
if err != nil {
request.options.Output.Request(request.options.TemplateID, input, "file", err)
request.options.Output.Request(request.options.TemplatePath, input, "file", err)
request.options.Progress.IncrementFailedRequestsBy(1)
return errors.Wrap(err, "could not send file request")
}

View File

@ -20,7 +20,7 @@ var _ protocols.Request = &Request{}
func (request *Request) ExecuteWithResults(input string, metadata, previous output.InternalEvent /*TODO review unused parameter*/, callback protocols.OutputEventCallback) error {
instance, err := request.options.Browser.NewInstance()
if err != nil {
request.options.Output.Request(request.options.TemplateID, input, "headless", err)
request.options.Output.Request(request.options.TemplatePath, input, "headless", err)
request.options.Progress.IncrementFailedRequestsBy(1)
return errors.Wrap(err, "could get html element")
}
@ -28,19 +28,19 @@ func (request *Request) ExecuteWithResults(input string, metadata, previous outp
parsed, err := url.Parse(input)
if err != nil {
request.options.Output.Request(request.options.TemplateID, input, "headless", err)
request.options.Output.Request(request.options.TemplatePath, input, "headless", err)
request.options.Progress.IncrementFailedRequestsBy(1)
return errors.Wrap(err, "could get html element")
}
out, page, err := instance.Run(parsed, request.Steps, time.Duration(request.options.Options.PageTimeout)*time.Second)
if err != nil {
request.options.Output.Request(request.options.TemplateID, input, "headless", err)
request.options.Output.Request(request.options.TemplatePath, input, "headless", err)
request.options.Progress.IncrementFailedRequestsBy(1)
return errors.Wrap(err, "could get html element")
}
defer page.Close()
request.options.Output.Request(request.options.TemplateID, input, "headless", nil)
request.options.Output.Request(request.options.TemplatePath, input, "headless", nil)
request.options.Progress.IncrementRequests()
gologger.Verbose().Msgf("Sent Headless request to %s", input)

View File

@ -356,7 +356,7 @@ func (request *Request) executeRequest(reqURL string, generatedRequest *generate
_, _ = io.CopyN(ioutil.Discard, resp.Body, drainReqSize)
resp.Body.Close()
}
request.options.Output.Request(request.options.TemplateID, formedURL, "http", err)
request.options.Output.Request(request.options.TemplatePath, formedURL, "http", err)
request.options.Progress.IncrementErrorsBy(1)
// If we have interactsh markers and request times out, still send
@ -394,7 +394,7 @@ func (request *Request) executeRequest(reqURL string, generatedRequest *generate
}
gologger.Verbose().Msgf("[%s] Sent HTTP request to %s", request.options.TemplateID, formedURL)
request.options.Output.Request(request.options.TemplateID, formedURL, "http", err)
request.options.Output.Request(request.options.TemplatePath, formedURL, "http", err)
duration := time.Since(timeStart)

View File

@ -36,7 +36,7 @@ func (request *Request) ExecuteWithResults(input string, metadata /*TODO review
address, err = getAddress(input)
}
if err != nil {
request.options.Output.Request(request.options.TemplateID, input, "network", err)
request.options.Output.Request(request.options.TemplatePath, input, "network", err)
request.options.Progress.IncrementFailedRequestsBy(1)
return errors.Wrap(err, "could not get address from url")
}
@ -65,7 +65,7 @@ func (request *Request) ExecuteWithResults(input string, metadata /*TODO review
func (request *Request) executeAddress(actualAddress, address, input string, shouldUseTLS bool, previous output.InternalEvent, callback protocols.OutputEventCallback) error {
if !strings.Contains(actualAddress, ":") {
err := errors.New("no port provided in network protocol request")
request.options.Output.Request(request.options.TemplateID, address, "network", err)
request.options.Output.Request(request.options.TemplatePath, address, "network", err)
request.options.Progress.IncrementFailedRequestsBy(1)
return err
}
@ -113,7 +113,7 @@ func (request *Request) executeRequestWithPayloads(actualAddress, address, input
conn, err = request.dialer.Dial(context.Background(), "tcp", actualAddress)
}
if err != nil {
request.options.Output.Request(request.options.TemplateID, address, "network", err)
request.options.Output.Request(request.options.TemplatePath, address, "network", err)
request.options.Progress.IncrementFailedRequestsBy(1)
return errors.Wrap(err, "could not connect to server request")
}
@ -143,7 +143,7 @@ func (request *Request) executeRequestWithPayloads(actualAddress, address, input
data = []byte(input.Data)
}
if err != nil {
request.options.Output.Request(request.options.TemplateID, address, "network", err)
request.options.Output.Request(request.options.TemplatePath, address, "network", err)
request.options.Progress.IncrementFailedRequestsBy(1)
return errors.Wrap(err, "could not write request to server")
}
@ -151,7 +151,7 @@ func (request *Request) executeRequestWithPayloads(actualAddress, address, input
finalData, dataErr := expressions.EvaluateByte(data, payloads)
if dataErr != nil {
request.options.Output.Request(request.options.TemplateID, address, "network", dataErr)
request.options.Output.Request(request.options.TemplatePath, address, "network", dataErr)
request.options.Progress.IncrementFailedRequestsBy(1)
return errors.Wrap(dataErr, "could not evaluate template expressions")
}
@ -162,7 +162,7 @@ func (request *Request) executeRequestWithPayloads(actualAddress, address, input
return nil
}
if _, err := conn.Write(finalData); err != nil {
request.options.Output.Request(request.options.TemplateID, address, "network", err)
request.options.Output.Request(request.options.TemplatePath, address, "network", err)
request.options.Progress.IncrementFailedRequestsBy(1)
return errors.Wrap(err, "could not write request to server")
}
@ -194,7 +194,7 @@ func (request *Request) executeRequestWithPayloads(actualAddress, address, input
gologger.Print().Msgf("%s\nHex: %s", requestOutput, hex.EncodeToString([]byte(requestOutput)))
}
request.options.Output.Request(request.options.TemplateID, actualAddress, "network", err)
request.options.Output.Request(request.options.TemplatePath, actualAddress, "network", err)
gologger.Verbose().Msgf("Sent TCP request to %s", actualAddress)
bufferSize := 1024
@ -225,7 +225,7 @@ func (request *Request) executeRequestWithPayloads(actualAddress, address, input
buf := make([]byte, bufferSize)
nBuf, err := conn.Read(buf)
if err != nil && !os.IsTimeout(err) {
request.options.Output.Request(request.options.TemplateID, address, "network", err)
request.options.Output.Request(request.options.TemplatePath, address, "network", err)
closeTimer(readInterval)
return errors.Wrap(err, "could not read from server")
}
@ -238,7 +238,7 @@ func (request *Request) executeRequestWithPayloads(actualAddress, address, input
final = make([]byte, bufferSize)
n, err = conn.Read(final)
if err != nil && err != io.EOF {
request.options.Output.Request(request.options.TemplateID, address, "network", err)
request.options.Output.Request(request.options.TemplatePath, address, "network", err)
return errors.Wrap(err, "could not read from server")
}
responseBuilder.Write(final[:n])

View File

@ -91,7 +91,7 @@ func (request *Request) ExecuteWithResults(input string, metadata /*TODO review
})
wg.Wait()
if err != nil {
request.options.Output.Request(request.options.TemplateID, input, "file", err)
request.options.Output.Request(request.options.TemplatePath, input, "file", err)
request.options.Progress.IncrementFailedRequestsBy(1)
return errors.Wrap(err, "could not send file request")
}