I was a Google Summer of Code student for The Honeynet Project in summer 2020. I was adding new features to their network analysis tool mitmproxy. It was a great and valueable experience. My mentor Maximilian Hils did an excellent job. This page summarizes my work and provides links to the code I created.
My work on mitmproxy consists of two major contributions:
I completely revised and extended the existing replacement implementation. I introduced four new addons that provide a unified user experience to perform replacements in headers, bodies, and URLs:
ModifyBodyaddon applies replacements in the body of requests and responses.
ModifyHeadersworks on headers: it can set, replace, or remove existing headers.
MapRemoteaddon transparently serves resources from an alternative remote location. mitmproxy fetches the new resource and serves it instead of the original.
MapLocal, which maps remote resources to local files.
Related PRs: #4043, #4046, #4060, #4069, #4102
I created a tutorial that interactively introduces new users to mitmproxy using terminal recordings. It teaches users the basics of mitmproxy and how to use its core features. A major part of this contribution was the creation of a tool to record scripted terminal sessions using asciinema. This allows to fully automate the recording of the tutorial’s ascii casts.