The same thing as jmalloc/echo-server
but HTTP requests are echoed as they are received.
Particularly useful for http request smuggling vulnerability research, malformed HTTP requests etc
$ httpecho
# On another shell
$ curl -d "param1=value1¶m2=value2" -X POST http://localhost:8888/ -H "Transfer-Encoding: chunked" -H "Content-Length: 8"
POST / HTTP/1.1
Host: localhost:8888
User-Agent: curl/7.58.0
Accept: */*
Transfer-Encoding: chunked
Content-Length: 8
Content-Type: application/x-www-form-urlencoded
1b
param1=value1¶m2=value2
0
Usage of httpecho: echo server accepting malformed HTTP request
-s, --serve serve continuously (default: wait for 1 request)
-t, --timeout timeout to close connection in millisecond. Needed for closing http request. (default: 500)
-d, --dump dump incoming request to a file (default: only print to stdout)
-p, --port listening on specific port (default: 8888)
-v, --verbose display request with special characters
--tls use TLS encryption for communication
-h, --help help information
curl -lO -L https://github.com/ariary/httpecho/releases/latest/download/httpecho
#or
go install github.com/ariary/httpecho