diff options
author | Aldo Cortesi <aldo@nullcube.com> | 2013-03-03 14:56:56 +1300 |
---|---|---|
committer | Aldo Cortesi <aldo@nullcube.com> | 2013-03-03 14:56:56 +1300 |
commit | 7835e0c2c7be0e45262a06b5e2ec2399ae019977 (patch) | |
tree | d4aeef4b45bf6b90882873a209ab71783361a247 | |
parent | e608d10f455550b8afd09217f0ecf344a0bdc814 (diff) | |
download | mitmproxy-7835e0c2c7be0e45262a06b5e2ec2399ae019977.tar.gz mitmproxy-7835e0c2c7be0e45262a06b5e2ec2399ae019977.tar.bz2 mitmproxy-7835e0c2c7be0e45262a06b5e2ec2399ae019977.zip |
Begin some simple fuzzing with pathod.
Finally doing what I started writing pathod for in the first place...
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | libmproxy/flow.py | 2 | ||||
-rwxr-xr-x | test/fuzzing/go_proxy | 9 | ||||
-rw-r--r-- | test/test_fuzzing.py | 12 |
4 files changed, 23 insertions, 1 deletions
@@ -3,6 +3,7 @@ MANIFEST /dist /tmp /doc +/venv *.py[cdo] *.swp *.swo diff --git a/libmproxy/flow.py b/libmproxy/flow.py index 883c7235..4fefee9f 100644 --- a/libmproxy/flow.py +++ b/libmproxy/flow.py @@ -463,7 +463,7 @@ class Request(HTTPMsg): """ Returns a URL string, constructed from the Request's URL compnents. """ - return utils.unparse_url(self.scheme, self.host.decode("idna"), self.port, self.path).encode('ascii') + return utils.unparse_url(self.scheme, self.host.encode("idna"), self.port, self.path).encode('ascii') def set_url(self, url): """ diff --git a/test/fuzzing/go_proxy b/test/fuzzing/go_proxy new file mode 100755 index 00000000..1e6bbaef --- /dev/null +++ b/test/fuzzing/go_proxy @@ -0,0 +1,9 @@ +#!/bin/sh +# Assuming: +# mitmproxy/mitmdump is running on port 8080 in straight proxy mode. +# pathod is running on port 9999 + +BASE="/Users/aldo/git/public/pathod/venv/bin/pathoc -eo -I 200,400,502 -p 8080 localhost " +$BASE -n 1000 "get:'http://localhost:9999':ir,@1" + + diff --git a/test/test_fuzzing.py b/test/test_fuzzing.py new file mode 100644 index 00000000..4b4253d8 --- /dev/null +++ b/test/test_fuzzing.py @@ -0,0 +1,12 @@ +import tservers + +""" + A collection of errors turned up by fuzzing. +""" + +class TestFuzzy(tservers.HTTPProxTest): + def test_idna_err(self): + req = r'get:"http://localhost:%s":i10,"\xc6"' + p = self.pathoc() + assert p.request(req%self.server.port).status_code == 400 + |