mirror of
https://github.com/projectdiscovery/nuclei.git
synced 2025-12-18 13:15:25 +00:00
Fixed EOF read error
This commit is contained in:
parent
be776fb5dd
commit
2ec27d4466
@ -117,7 +117,7 @@ func (r *Request) executeParallelHTTP(reqURL string, dynamicValues, previous out
|
|||||||
return requestErr
|
return requestErr
|
||||||
}
|
}
|
||||||
|
|
||||||
// executeRaceRequest executes turbo http request for a URL
|
// executeTurboHTTP executes turbo http request for a URL
|
||||||
func (r *Request) executeTurboHTTP(reqURL string, dynamicValues, previous output.InternalEvent, callback protocols.OutputEventCallback) error {
|
func (r *Request) executeTurboHTTP(reqURL string, dynamicValues, previous output.InternalEvent, callback protocols.OutputEventCallback) error {
|
||||||
generator := r.newGenerator()
|
generator := r.newGenerator()
|
||||||
|
|
||||||
@ -277,11 +277,15 @@ func (r *Request) executeRequest(reqURL string, request *generatedRequest, previ
|
|||||||
var hostname string
|
var hostname string
|
||||||
timeStart := time.Now()
|
timeStart := time.Now()
|
||||||
if request.original.Pipeline {
|
if request.original.Pipeline {
|
||||||
formedURL = request.rawRequest.FullURL
|
if request.rawRequest != nil {
|
||||||
if parsed, parseErr := url.Parse(formedURL); parseErr == nil {
|
formedURL = request.rawRequest.FullURL
|
||||||
hostname = parsed.Host
|
if parsed, parseErr := url.Parse(formedURL); parseErr == nil {
|
||||||
|
hostname = parsed.Host
|
||||||
|
}
|
||||||
|
resp, err = request.pipelinedClient.DoRaw(request.rawRequest.Method, reqURL, request.rawRequest.Path, generators.ExpandMapValues(request.rawRequest.Headers), ioutil.NopCloser(strings.NewReader(request.rawRequest.Data)))
|
||||||
|
} else if request.request != nil {
|
||||||
|
resp, err = request.pipelinedClient.Dor(request.request)
|
||||||
}
|
}
|
||||||
resp, err = request.pipelinedClient.DoRaw(request.rawRequest.Method, reqURL, request.rawRequest.Path, generators.ExpandMapValues(request.rawRequest.Headers), ioutil.NopCloser(strings.NewReader(request.rawRequest.Data)))
|
|
||||||
} else if request.original.Unsafe && request.rawRequest != nil {
|
} else if request.original.Unsafe && request.rawRequest != nil {
|
||||||
formedURL = request.rawRequest.FullURL
|
formedURL = request.rawRequest.FullURL
|
||||||
if parsed, parseErr := url.Parse(formedURL); parseErr == nil {
|
if parsed, parseErr := url.Parse(formedURL); parseErr == nil {
|
||||||
@ -343,7 +347,9 @@ func (r *Request) executeRequest(reqURL string, request *generatedRequest, previ
|
|||||||
}
|
}
|
||||||
data, err := ioutil.ReadAll(bodyReader)
|
data, err := ioutil.ReadAll(bodyReader)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.Wrap(err, "could not read http body")
|
if !strings.Contains(err.Error(), "unexpected EOF") { // ignore EOF error
|
||||||
|
return errors.Wrap(err, "could not read http body")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
resp.Body.Close()
|
resp.Body.Close()
|
||||||
|
|
||||||
|
|||||||
@ -3,6 +3,8 @@ package http
|
|||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"compress/gzip"
|
"compress/gzip"
|
||||||
|
"compress/zlib"
|
||||||
|
"io"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/http/httputil"
|
"net/http/httputil"
|
||||||
@ -100,19 +102,23 @@ func handleDecompression(resp *http.Response, bodyOrig []byte) (bodyDec []byte,
|
|||||||
return bodyOrig, nil
|
return bodyOrig, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
encodingHeader := strings.TrimSpace(strings.ToLower(resp.Header.Get("Content-Encoding")))
|
var reader io.ReadCloser
|
||||||
if strings.Contains(encodingHeader, "gzip") {
|
switch resp.Header.Get("Content-Encoding") {
|
||||||
gzipreader, err := gzip.NewReader(bytes.NewReader(bodyOrig))
|
case "gzip":
|
||||||
if err != nil {
|
reader, err = gzip.NewReader(resp.Body)
|
||||||
return bodyOrig, err
|
case "deflate":
|
||||||
}
|
reader, err = zlib.NewReader(resp.Body)
|
||||||
defer gzipreader.Close()
|
default:
|
||||||
|
reader = resp.Body
|
||||||
bodyDec, err = ioutil.ReadAll(gzipreader)
|
|
||||||
if err != nil {
|
|
||||||
return bodyOrig, err
|
|
||||||
}
|
|
||||||
return bodyDec, nil
|
|
||||||
}
|
}
|
||||||
return bodyOrig, nil
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
defer reader.Close()
|
||||||
|
|
||||||
|
bodyDec, err = ioutil.ReadAll(reader)
|
||||||
|
if err != nil {
|
||||||
|
return bodyOrig, err
|
||||||
|
}
|
||||||
|
return bodyDec, nil
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user