httpfuzz icon indicating copy to clipboard operation
httpfuzz copied to clipboard

Extra \r\n\r\n added before body

Open acut3 opened this issue 4 years ago • 1 comments

httpfuzz adds an extra \r\n\r\n before the body of a request.

I believe this is because function RequestFromFile() includes the \n\n or \r\n\r\n sequence that was read from the --seed-request file in req.Body. Then when the request is sent, the http lib adds another \r\n\r\n before this body.

A quick fix would look like:

diff --git a/parser.go b/parser.go
index ae7b290..41ce2d5 100644
--- a/parser.go
+++ b/parser.go
@@ -51,7 +51,11 @@ func RequestFromFile(filename string) (*Request, error) {
                bodyOffset = bytes.Index(diskRequestBytes, []byte("\r\n\r\n"))
                if bodyOffset == -1 {
                        return nil, fmt.Errorf("invalid HTTP request provided")
+               } else {
+                       bodyOffset += 4
                }
+       } else {
+               bodyOffset += 2
        }

        diskBodyBytes := diskRequestBytes[bodyOffset:]

acut3 avatar Aug 11 '21 21:08 acut3

Thanks for this report. I'm gonna check it out a bit more. I made a branch with your suggested fix so I'll test and get back to this

JonCooperWorks avatar Aug 12 '21 01:08 JonCooperWorks