set headers for fuzzing request (#5988)

Co-authored-by: sandeep <8293321+ehsandeep@users.noreply.github.com>
This commit is contained in:
Dogan Can Bakir 2025-03-07 18:24:35 +03:00 committed by GitHub
parent 1874d5b900
commit a9718d3664
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -62,6 +62,7 @@ func (request *Request) executeFuzzingRule(input *contextargs.Context, previous
if err != nil {
return errors.Wrap(err, "fuzz: could not build request obtained from target file")
}
request.addHeadersToRequest(baseRequest)
input.MetaInput.Input = baseRequest.URL.String()
// execute with one value first to checks its applicability
err = request.executeAllFuzzingRules(input, previous, baseRequest, callback)
@ -94,6 +95,7 @@ func (request *Request) executeFuzzingRule(input *contextargs.Context, previous
}
userAgent := useragent.PickRandom()
baseRequest.Header.Set("User-Agent", userAgent.Raw)
request.addHeadersToRequest(baseRequest)
// execute with one value first to checks its applicability
err = request.executeAllFuzzingRules(inputx, previous, baseRequest, callback)
@ -112,6 +114,12 @@ func (request *Request) executeFuzzingRule(input *contextargs.Context, previous
return nil
}
func (request *Request) addHeadersToRequest(baseRequest *retryablehttp.Request) {
for k, v := range request.Headers {
baseRequest.Header.Set(k, v)
}
}
// executeAllFuzzingRules executes all fuzzing rules defined in template for a given base request
func (request *Request) executeAllFuzzingRules(input *contextargs.Context, values map[string]interface{}, baseRequest *retryablehttp.Request, callback protocols.OutputEventCallback) error {
applicable := false