mitmproxy

package module
v0.0.0-...-f6fc4ef Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 18, 2022 License: MIT Imports: 0 Imported by: 0

README

mitmproxy

Mitmproxy implemented with golang. Intercept HTTP & HTTPS requests and responses and modify them.

Features

  • Intercept HTTP & HTTPS requests and responses and modify them on the fly
  • SSL/TLS certificates for interception are generated on the fly
  • Certificates logic compatible with mitmproxy, saved at ~/.mitmproxy. If you used mitmproxy before and installed certificates, then you can use this go-mitmproxy directly
  • Addon mechanism, you can add your functions easily, refer to examples
  • Performance advantages
    • Golang's inherent performance advantages
    • Forwarding and parsing HTTPS traffic in process memory without inter-process communication such as tcp port or unix socket
    • Use LRU cache when generating certificates of different domain names to avoid double counting
  • Support Wireshark to analyze traffic through the environment variable SSLKEYLOGFILE
  • Support streaming when uploading/downloading large files
  • Web interface

Install

go install github.com/kardianos/mitmproxy/cmd/go-mitmproxy@latest

Usage

Startup
go-mitmproxy

After startup, the HTTP proxy address defaults to port 9080, and the web interface defaults to port 9081.

After the first startup, the SSL/TLS certificate will be automatically generated at ~/.mitmproxy/mitmproxy-ca-cert.pem. You can refer to this link to install: About Certificates.

Help
Usage of go-mitmproxy:
  -addr string
    	proxy listen addr (default ":9080")
  -cert_path string
    	path of generate cert files
  -debug int
    	debug mode: 1 - print debug log, 2 - show debug from
  -dump string
    	dump filename
  -dump_level int
    	dump level: 0 - header, 1 - header + body
  -mapper_dir string
    	mapper files dirpath
  -ssl_insecure
    	not verify upstream server SSL/TLS certificates.
  -version
    	show version
  -web_addr string
    	web interface listen addr (default ":9081")

Usage as package

Refer to cmd/mitmproxy/main.go, you can add your own addon by call AddAddon method.

For more examples, please refer to examples

Web interface

Has a web interface to view requests and responses.

TODO

  • Support http2
  • Support parse websocket

License

MIT License

Documentation

Overview

Package mitmproxy implements a man-in-the-middle proxy (forward proxy).

Directories

Path Synopsis
Package cert fetches the root certificate for MitM proxy.
Package cert fetches the root certificate for MitM proxy.
cmd
examples
Package proxy implements the MitM Proxy (Forward Proxy).
Package proxy implements the MitM Proxy (Forward Proxy).

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL