Skip to content

Instantly share code, notes, and snippets.

View mhils's full-sized avatar

Maximilian Hils mhils

View GitHub Profile
@mhils
mhils / 0.10
Last active August 29, 2015 14:07
setup.py output
['libmproxy', 'libmproxy.contrib', 'libmproxy.contrib.jsbeautifier', 'libmproxy.contrib.jsbeautifier.unpackers', 'libmproxy.console', 'libmproxy.platform']
{'libmproxy': ['static/bootstrap.min.js', 'static/jquery-1.10.1.min.js', 'static/jquery.localscroll-min.js', 'static/bootstrap.min.css', 'static/jquery.scrollTo-min.js', 'static/mitmproxy.css', 'static/fontawesome/fonts/FontAwesome.otf', 'static/fontawesome/fonts/fontawesome-webfont.svg', 'static/fontawesome/fonts/fontawesome-webfont.woff', 'static/fontawesome/fonts/fontawesome-webfont.eot', 'static/fontawesome/fonts/fontawesome-webfont.ttf', 'static/fontawesome/css/font-awesome.min.css', 'static/fontawesome/css/font-awesome.css', 'templates/layout.html', 'templates/certs.html', 'templates/frame.html', 'templates/index.html']}
running install
running build
running build_py
running build_scripts
running install_lib
running install_scripts
changing mode of /usr/local/bin/mitmproxy to 755
changing mode of /usr/local/bin/mitmdump to 755
C:\Python27\python.exe C:/Users/user/git/mitmproxy/mitmdump -v --cert ca/full.pem
127.0.0.1:57397: clientconnect
127.0.0.1:57397: request
-> CONNECT example.com:443 HTTP/1.1
127.0.0.1:57397: Set new server address: example.com:443
127.0.0.1:57397: serverconnect
-> example.com:443
127.0.0.1:57397: Received CONNECT request to SSL port. Upgrading to SSL...
127.0.0.1:57397: Establish SSL
-> with client
C:\Python27\python.exe C:/Users/user/git/mitmproxy/mitmdump -v --cert ca/full.pem
127.0.0.1:61508: clientconnect
127.0.0.1:61508: request
-> CONNECT example.com:443 HTTP/1.1
127.0.0.1:61508: Set new server address: example.com:443
127.0.0.1:61508: serverconnect
-> example.com:443
127.0.0.1:61508: Received CONNECT request to SSL port. Upgrading to SSL...
127.0.0.1:61508: Establish SSL
-> with client
def request(context, flow):
flow.request.host = flow.request.pretty_host(hostheader=True)
@mhils
mhils / test_ssl.py
Created March 15, 2015 17:21
pyOpenSSL #190
def test_renegotiate(self):
"""
If :py:obj:`Connection.recv` is called during renegotation,
it will block until renegotation is complete and the message has been read.
(OpenSSL's SSL_MODE_AUTO_RETRY is turned on by default)
"""
# Do not use _server() or _client():
# https://www.openssl.org/docs/ssl/SSL_CTX_set_session_id_context.html
# If the session id context is not set on an SSL/TLS server and client certificates are used,
import socket
from libmproxy.script import concurrent
from libmproxy.protocol.http import decoded
cache = dict()
def has_ssl(host):
if not host in cache:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.connect((host, 443))

Keybase proof

I hereby claim:

  • I am mhils on github.
  • I am mhils (https://keybase.io/mhils) on keybase.
  • I have a public key whose fingerprint is 2A8E 7851 3CA7 9C34 B694 7897 FF0A 0917 D3AE 1418

To claim this, I am signing this object:

#gist syntax highlighting is somewhat broken atm. Apologies.
import argparse, sys, shlex
print "sys.argv:\n",sys.argv,"\n"
main_parser = argparse.ArgumentParser()
main_parser.add_argument('-script')
main_args = main_parser.parse_args()
@mhils
mhils / convert.py
Created November 18, 2015 12:46
mitmproxy dump file converter
import uuid
from pprint import pprint
import click
from libmproxy import tnetstring
@click.group()
def cli():
"""mitmproxy dumpfile utilities"""
@mhils
mhils / gist:5012460
Created February 22, 2013 10:36
node build -d include=template
var iteratorTemplate = function(obj) {
var __p = 'var index, iterable = ' +
(obj.firstArg ) +
', result = iterable;\nif (!iterable) return result;\n' +
(obj.top ) +
';\n';
if (obj.arrays) {
__p += 'var length = iterable.length; index = -1;\nif (' +
(obj.arrays ) +