An interactive TLS-capable intercepting HTTP proxy for penetration testers and software developers.
Go to file
Aldo Cortesi 0a642f2441 Make the certificate wait time configurable.
Since OpenSSL doesn't let us set certificate start times in the past, the
client and proxy machine time must be synchronized, or the client might reject
the certificate. We can bodgy over small discrepancies by waiting a few seconds
after a new certificate is generated (i.e. the first time an SSL domain is contacted).

Make this a configurable option, and turn it off by default.
2011-06-27 16:10:17 +12:00
doc-src Add the 30-second client replay tutorial to the docs. 2011-03-31 11:28:58 +13:00
examples First pass of script hooks for mitmdump. 2011-02-18 12:40:45 +13:00
libmproxy Make the certificate wait time configurable. 2011-06-27 16:10:17 +12:00
scripts Add a script to generate a contributors list, and use it to make a CONTRIBUTORS file. 2011-03-19 20:34:53 +13:00
test Try not to hang when user views large request & response bodies 2011-06-27 15:59:17 +12:00
.gitignore Simple record & playback functionality 2011-02-10 02:59:51 +01:00
CHANGELOG Changelog for 0.4. 2011-03-30 18:27:25 +13:00
CONTRIBUTORS Add a script to generate a contributors list, and use it to make a CONTRIBUTORS file. 2011-03-19 20:34:53 +13:00
LICENSE Add an "SSL exception" to the license. 2011-06-02 10:43:11 +12:00
MANIFEST.in Spell-check docs, setup.py fixes, add missing files to manifest. 2011-03-30 12:05:50 +13:00
README.mkd Spell-check docs, setup.py fixes, add missing files to manifest. 2011-03-30 12:05:50 +13:00
mitmdump Add -r option to mitmdump and mitmproxy. 2011-05-15 11:54:12 +12:00
mitmproxy Add -r option to mitmdump and mitmproxy. 2011-05-15 11:54:12 +12:00
setup.py Spell-check docs, setup.py fixes, add missing files to manifest. 2011-03-30 12:05:50 +13:00
todo Add a stickyauth option. 2011-03-20 17:31:54 +13:00

README.mkd

mitmproxy is an SSL-capable, intercepting HTTP proxy. It provides a console interface that allows traffic flows to be inspected and edited on the fly.

mitmdump is the command-line version of mitmproxy, with the same functionality but without the frills. Think tcpdump for HTTP.

Both tools are fully documentented in the commandline --help flag, and, in the case of mitmproxy, a built-in help page accessible through the ? keyboard shortcut.

Capabilities

  • Intercept HTTP requests and responses and modify them on the fly.
  • Save complete HTTP conversations for later replay and analysis.
  • Replay the client-side of an HTTP conversations.
  • Replay HTTP responses of a previously recorded server.
  • Make scripted changes to HTTP traffic using Python.
  • SSL certificates for interception are generated on the fly.

Download

Releases and rendered documentation can be found on the mitmproxy website:

mitmproxy.org

Source is hosted on github:

github.com/cortesi/mitmproxy

Requirements

  • Python 2.6.x or 2.7.x.
  • openssl. Installed by default on most systems.
  • urwid version 0.9.8 or newer.
  • The test suite uses the pry unit testing library.
  • Rendering the documentation requires countershape.

mitmproxy is tested and developed on OSX, Linux and OpenBSD.

You should also make sure that your console environment is set up with the following:

  • EDITOR environment variable to determine the external editor.
  • PAGER environment variable to determine the external pager.
  • Appropriate entries in your mailcap files to determine external viewers for request and response contents.