This is a simple single-host reverse proxy that intercept and save HTTP requests and responses

HTTP Telescope

Debug HTTP requests using a reverse proxy.

Dashboard screenshot

Description

This is a simple single-host reverse proxy that intercept and save HTTP requests and responses (including plaintext bodies) in memory. It has a minimal web dashboard.

How to build

Clone the repo and issue go build ./cmd/http-telescope or use the docker image enrico204/http-telescope:latest.

Usage

Usage: http-telescope [options] [arguments]

OPTIONS
  --config-path/$CFG_CONFIG_PATH                    
   
        (default: /conf/config.yml)
  --web-listen/$CFG_WEB_LISTEN                      
    
         (default: 0.0.0.0:3001)
  --web-ui/$CFG_WEB_UI                              
     
          (default: 0.0.0.0:3002)
  --web-read-timeout/$CFG_WEB_READ_TIMEOUT          
      
         (default: 5s)
  --web-write-timeout/$CFG_WEB_WRITE_TIMEOUT        
       
         (default: 5s) --web-shutdown-timeout/$CFG_WEB_SHUTDOWN_TIMEOUT 
        
          (default: 5s) --web-upstream/$CFG_WEB_UPSTREAM 
         
           --log-level/$CFG_LOG_LEVEL 
          
            (default: warn) --log-method-name/$CFG_LOG_METHOD_NAME 
           
             (default: false) --log-json/$CFG_LOG_JSON 
            
              (default: false) --log-destination/$CFG_LOG_DESTINATION 
             
               (default: stderr) --log-file/$CFG_LOG_FILE 
              
                (default: /tmp/debug.log) --disable-caching/$CFG_DISABLE_CACHING 
               
                 (default: false) --store-body/$CFG_STORE_BODY 
                
                  (default: false) --help/-h display this help message 
                
               
              
             
            
           
          
         
        
       
      
     
    
   
  • --web-listen/$CFG_WEB_LISTEN is the listen address for the reverse proxy
  • --web-ui/$CFG_WEB_UI is the listen address for the web UI
  • --web-upstream/$CFG_WEB_UPSTREAM is the web upstream
  • --store-body/$CFG_STORE_BODY flag controls whether http-telescope need to capture the body or not. Note that the body is stored only if all of these are true:
    • it's plaintext (e.g., text/*, JSON/XML or URL-form encoded mime types)
    • Content-Length header is available (notably, in HTTP/2 is optional)
    • content length is less than 10KiB

Example usage

http-telescope --web-upstream http://www.myserver.com

License

This project is licensed under the MIT license. See LICENSE file.

Owner
Enrico
Sysadmin, developer, networking enthusiast. Cybersecurity researcher @ Sapienza (University of Rome) - Mirror of: https://gitlab.com/Enrico204
Enrico
Similar Resources

An HTTP proxy library for Go

Introduction Package goproxy provides a customizable HTTP proxy library for Go (golang), It supports regular HTTP proxy, HTTPS through CONNECT, and "h

Jan 4, 2023

Speak HTTP like a local. (the simple, intuitive HTTP console, golang version)

http-gonsole This is the Go port of the http-console. Speak HTTP like a local Talking to an HTTP server with curl can be fun, but most of the time it'

Jul 14, 2021

Simple HTTP package that wraps net/http

Simple HTTP package that wraps net/http

Jan 17, 2022

Http-conection - A simple example of how to establish a HTTP connection using Golang

A simple example of how to establish a HTTP connection using Golang

Feb 1, 2022

A Go "clone" of the great and famous Requests library

GRequests A Go "clone" of the great and famous Requests library License GRequests is licensed under the Apache License, Version 2.0. See LICENSE for t

Dec 23, 2022

Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http

Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http

fasthttp Fast HTTP implementation for Go. Currently fasthttp is successfully used by VertaMedia in a production serving up to 200K rps from more than

Jan 2, 2023

Http client call for golang http api calls

httpclient-call-go This library is used to make http calls to different API services Install Package go get

Oct 7, 2022

fhttp is a fork of net/http that provides an array of features pertaining to the fingerprint of the golang http client.

fhttp The f stands for flex. fhttp is a fork of net/http that provides an array of features pertaining to the fingerprint of the golang http client. T

Jan 1, 2023

NATS HTTP Round Tripper - This is a Golang http.RoundTripper that uses NATS as a transport.

This is a Golang http.RoundTripper that uses NATS as a transport. Included is a http.RoundTripper for clients, a server that uses normal HTTP Handlers and any existing http handler mux and a Caddy Server transport.

Dec 6, 2022
httpreq is an http request library written with Golang to make requests and handle responses easily.

httpreq is an http request library written with Golang to make requests and handle responses easily. Install go get github.com/binalyze/http

Feb 10, 2022
Goget will send a http request, and show the request time, status, response, and save response to a file

Goget will send a http request, and show the request time, status, response, and save response to a file

Feb 9, 2022
A Go HTTP client library for creating and sending API requests
A Go HTTP client library for creating and sending API requests

Sling Sling is a Go HTTP client library for creating and sending API requests. Slings store HTTP Request properties to simplify sending requests and d

Jan 7, 2023
Replacement of ApacheBench(ab), support for transactional requests, support for command line and package references to HTTP stress testing tool.

stress stress is an HTTP stress testing tool. Through this tool, you can do a stress test on the HTTP service and get detailed test results. It is ins

Aug 23, 2022
A golang tool which makes http requests and prints the address of the request along with the MD5 hash of the response.

Golang Tool This repository is a golang tool which makes http requests to the external server and prints the address of the request along with the MD5

Oct 17, 2021
Gourl: Performs (multiple) HTTP requests and gathers stats

Gourl: Performs (multiple) HTTP requests and gathers stats

Mar 9, 2022
Nap is a file-based framework for automating the execution of config-driven HTTP requests and scripts.

Nap Nap is a file-based framework for automating the execution of config-driven HTTP requests and scripts. Installation Options Using go get $ go inst

Nov 17, 2022
go http api to handle phishing resources requests

go http api to handle phishing resources requests (auth check, prometheus metrics, pushing to rabbit, logging to elasticsearch)

Oct 8, 2021
This project aims for printing HTTP requests from outside simply

HTTP Debug Server This project aims for printing HTTP requests from outside simp

Jan 29, 2022
IceFireDB-Proxy - IceFireDB proxy, easier to use IceFireDB, support resp protocol
IceFireDB-Proxy - IceFireDB proxy, easier to use IceFireDB, support resp protocol

IceFireDB-Proxy IceFireDB-Proxy is a high-performance, highly available, and use

Jun 8, 2022