diff --git a/pkg/protocols/http/request_fuzz.go b/pkg/protocols/http/request_fuzz.go index da68300f87..570a943498 100644 --- a/pkg/protocols/http/request_fuzz.go +++ b/pkg/protocols/http/request_fuzz.go @@ -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