diff options
author | Aldo Cortesi <aldo@nullcube.com> | 2011-07-22 17:48:42 +1200 |
---|---|---|
committer | Aldo Cortesi <aldo@nullcube.com> | 2011-07-22 17:48:42 +1200 |
commit | 1b961fc4adb2ef623747102b1539aa4d46c6e743 (patch) | |
tree | 941bda1de0d524508a2bc9bfea711ecee15e84f3 /libmproxy/utils.py | |
parent | 9c24401b187fa2915d8b6cc424fc25f5e51369c8 (diff) | |
download | mitmproxy-1b961fc4adb2ef623747102b1539aa4d46c6e743.tar.gz mitmproxy-1b961fc4adb2ef623747102b1539aa4d46c6e743.tar.bz2 mitmproxy-1b961fc4adb2ef623747102b1539aa4d46c6e743.zip |
Add utility functions to search and replace strings in flows
This is a common task in pentesting scenarios. This commit adds the following
functions:
utils.Headers.replace
proxy.Request.replace
proxy.Response.replace
flow.Flow.replace
Diffstat (limited to 'libmproxy/utils.py')
-rw-r--r-- | libmproxy/utils.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/libmproxy/utils.py b/libmproxy/utils.py index 4d8c7c41..9ac9c0b8 100644 --- a/libmproxy/utils.py +++ b/libmproxy/utils.py @@ -279,6 +279,21 @@ class Headers: ret.append([name, value]) self.lst = ret + def replace(self, pattern, repl, count=0, flags=0): + """ + Replaces a regular expression pattern with repl in both header keys + and values. Returns the number of replacements made. + """ + nlst, count = [], 0 + for i in self.lst: + k, c = re.subn(pattern, repl, i[0], count, flags) + count += c + v, c = re.subn(pattern, repl, i[1], count, flags) + count += c + nlst.append([k, v]) + self.lst = nlst + return count + def pretty_size(size): suffixes = [ |