store vars in values instead of payloads to fix #1882 for self contained http templates (#1924)

Co-authored-by: sandeep <sandeep@projectdiscovery.io>
This commit is contained in:
Sajad 2022-05-23 15:12:58 +05:30 committed by GitHub
parent 5ff5c2e105
commit 4f834f1f33
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -125,17 +125,17 @@ func (r *requestGenerator) makeSelfContainedRequest(data string, payloads, dynam
return nil, fmt.Errorf("malformed request supplied") return nil, fmt.Errorf("malformed request supplied")
} }
payloads = generators.MergeMaps( values := generators.MergeMaps(
payloads, payloads,
generators.BuildPayloadFromOptions(r.request.options.Options), generators.BuildPayloadFromOptions(r.request.options.Options),
) )
// in case cases (eg requests signing, some variables uses default values if missing) // in case cases (eg requests signing, some variables uses default values if missing)
if defaultList := GetVariablesDefault(r.request.Signature.Value); defaultList != nil { if defaultList := GetVariablesDefault(r.request.Signature.Value); defaultList != nil {
payloads = generators.MergeMaps(defaultList, payloads) values = generators.MergeMaps(defaultList, values)
} }
parts[1] = replacer.Replace(parts[1], payloads) parts[1] = replacer.Replace(parts[1], values)
if len(dynamicValues) > 0 { if len(dynamicValues) > 0 {
parts[1] = replacer.Replace(parts[1], dynamicValues) parts[1] = replacer.Replace(parts[1], dynamicValues)
} }
@ -155,9 +155,9 @@ func (r *requestGenerator) makeSelfContainedRequest(data string, payloads, dynam
if err != nil { if err != nil {
return nil, fmt.Errorf("could not parse request URL: %w", err) return nil, fmt.Errorf("could not parse request URL: %w", err)
} }
values := generators.MergeMaps( values = generators.MergeMaps(
generators.MergeMaps(dynamicValues, generateVariables(parsed, false)), generators.MergeMaps(dynamicValues, generateVariables(parsed, false)),
payloads, values,
) )
return r.makeHTTPRequestFromRaw(ctx, parsed.String(), data, values, payloads) return r.makeHTTPRequestFromRaw(ctx, parsed.String(), data, values, payloads)