MCPcopy Create free account
hub / github.com/Hackmanit/Web-Cache-Vulnerability-Scanner / firstRequest

Function firstRequest

pkg/requests.go:232–355  ·  view source on GitHub ↗
(rp requestParams)

Source from the content-addressed store, hash-verified

230}
231
232func firstRequest(rp requestParams) (body []byte, respStatusCode int, repRequest reportRequest, respHeaders map[string][]string, err error) {
233 req := fasthttp.AcquireRequest()
234 resp := fasthttp.AcquireResponse()
235 defer fasthttp.ReleaseRequest(req)
236 defer fasthttp.ReleaseResponse(resp)
237 req.Header.DisableNormalizing()
238
239 var msg string
240
241 if rp.headers == nil {
242 rp.headers = []string{""}
243 }
244 if rp.values == nil {
245 rp.values = []string{""}
246 }
247 if rp.parameters == nil {
248 rp.parameters = []string{""}
249 }
250
251 if rp.values[0] == "2ndrequest" {
252 rp.identifier = fmt.Sprintf("2nd request of %s", rp.identifier)
253 } else {
254 rp.identifier = fmt.Sprintf("1st request of %s", rp.identifier)
255 }
256
257 // check if headers and values have the same length
258 if len(rp.headers) != len(rp.values) && rp.values[0] != "2ndrequest" {
259 msg = fmt.Sprintf("%s: len(header) %s %d != len(value) %s %d\n", rp.identifier, rp.headers, len(rp.headers), rp.values, len(rp.values))
260 Print(msg, Red)
261 return body, -1, repRequest, nil, errors.New(msg)
262 }
263
264 addParameters(&rp.url, rp.parameters)
265
266 if !rp.forcePost && Config.Website.Cache.CBisHTTPMethod && rp.values[0] != "2ndrequest" {
267 req.Header.SetMethod(Config.Website.Cache.CBName)
268 } else if Config.DoPost || rp.forcePost {
269 if rp.bodyString == "" {
270 rp.bodyString = Config.Body
271 }
272 req.Header.SetMethod("POST")
273 req.SetBodyString(rp.bodyString)
274 } else {
275 req.Header.SetMethod("GET")
276 if rp.bodyString != "" {
277 req.SetBodyString(rp.bodyString)
278 }
279 }
280 req.SetRequestURI(rp.url)
281
282 setRequest(req, Config.DoPost, rp.cb, rp.newCookie, rp.prependCB)
283 repRequest.Request = req.String()
284
285 for i := range rp.headers {
286 if rp.headers[i] == "" {
287 continue
288 }
289 if rp.values[0] == "2ndrequest" {

Callers 4

secondRequestFunction · 0.85
issueRequestsFunction · 0.85
ScanParameterCloakingFunction · 0.85
ScanCSSFunction · 0.85

Calls 7

PrintFunction · 0.85
addParametersFunction · 0.85
setRequestFunction · 0.85
PrintVerboseFunction · 0.85
waitLimiterFunction · 0.85
headerToMultiMapFunction · 0.85
stopContinuationFunction · 0.85

Tested by

no test coverage detected