[tor-commits] [ooni-probe/master] Add documentation for HTTPHeaderFieldManipulation

art at torproject.org art at torproject.org
Thu Dec 6 21:39:59 UTC 2012


commit 4dd1045f24188195684f14727c4c1d56f19e24a0
Author: aagbsn <aagbsn at extc.org>
Date:   Thu Dec 6 15:21:59 2012 +0000

    Add documentation for HTTPHeaderFieldManipulation
---
 .../tests/http_header_field_manipulation.rst       |  346 ++++++++++++++++++++
 1 files changed, 346 insertions(+), 0 deletions(-)

diff --git a/docs/source/tests/http_header_field_manipulation.rst b/docs/source/tests/http_header_field_manipulation.rst
new file mode 100644
index 0000000..92bd0a4
--- /dev/null
+++ b/docs/source/tests/http_header_field_manipulation.rst
@@ -0,0 +1,346 @@
+Details
+=======
+
+*Test Name*: HTTP Header Field Manipulation
+
+*Current version*: 0.1.3
+
+*NetTest*: HTTPHeaderFieldManipulation (https://gitweb.torproject.org/ooni-probe.git/blob/HEAD:/nettests/manipulation/http_header_field_manipulation.py)
+
+*Test Helper*: SimpleHTTPChannel (https://gitweb.torproject.org/ooni-probe.git/blob/HEAD:/oonib/testhelpers/http_helpers.py)
+
+*Test Type*: Traffic Manipulation
+
+*Requires Root*: No
+
+*WARNING*: This test is more dangerous to run than any other one and you
+should do it only if you know what you are doing.
+
+Description
+===========
+It performes HTTP requests with request headers that vary capitalization
+towards a SimpleHTTPChannel test helper backend. If we detect that the
+headers the backend received matches the ones we have sent then we have
+detected tampering.
+
+How to run the test
+===================
+
+`./bin/ooniprobe nettests/manipulation/http_header_field_manipulation.py -b <address of backend> [-h <headers>]`
+`address of backend` is the IP:PORT of the SimpleHTTPChannel backend.
+
+Sample report
+=============
+
+From running:
+`./bin/ooniprobe nettests/manipulation/http_header_field_manipulation.py`
+If no backend is specified, the default backend is 127.0.0.1:57001, where you will need to have oonib listening.
+
+::
+
+  ###########################################
+  # OONI Probe Report for HTTP Header Field Manipulation test
+  # Thu Dec  6 19:22:00 2012
+  ###########################################
+  ---
+  options:
+    collector: null
+    help: 0
+    logfile: null
+    pcapfile: null
+    reportfile: null
+    resume: 0
+    subargs: []
+    test: nettests/manipulation/http_header_field_manipulation.py
+  probe_asn: null
+  probe_cc: null
+  probe_ip: 127.0.0.1
+  software_name: ooniprobe
+  software_version: 0.0.7.1-alpha
+  start_time: 1354792920.0
+  test_name: HTTP Header Field Manipulation
+  test_version: 0.1.3
+  ...
+  ---
+  input: null
+  report:
+    agent: agent
+    requests:
+    - request:
+        body: null
+        headers:
+        - - Accept-Language
+          - ['en-US,en;q=0.8']
+        - - Accept-Encoding
+          - ['gzip,deflate,sdch']
+        - - Accept
+          - ['text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8']
+        - - User-Agent
+          - ['Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.6) Gecko/20070725
+              Firefox/2.0.0.6']
+        - - Accept-Charset
+          - ['ISO-8859-1,utf-8;q=0.7,*;q=0.3']
+        - - Host
+          - [cDMxQx4pPcCnNC5.com]
+        method: PUT
+        url: http://127.0.0.1:57001
+      response:
+        body: '{"headers_dict": {"Accept-Language": ["en-US,en;q=0.8"], "Accept-Encoding":
+          ["gzip,deflate,sdch"], "Host": ["cDMxQx4pPcCnNC5.com"], "Accept": ["text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],
+          "User-Agent": ["Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.6)
+          Gecko/20070725 Firefox/2.0.0.6"], "Accept-Charset": ["ISO-8859-1,utf-8;q=0.7,*;q=0.3"],
+          "Connection": ["close"]}, "request_line": "PUT / HTTP/1.1", "request_headers":
+          [["Connection", "close"], ["Accept-Language", "en-US,en;q=0.8"], ["Accept-Encoding",
+          "gzip,deflate,sdch"], ["Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],
+          ["User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.6)
+          Gecko/20070725 Firefox/2.0.0.6"], ["Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.3"],
+          ["Host", "cDMxQx4pPcCnNC5.com"]]}'
+        code: 200
+        headers: []
+    socksproxy: null
+    tampering:
+      header_field_name: false
+      header_field_number: false
+      header_field_value: false
+      header_name_capitalization: false
+      header_name_diff: []
+      request_line_capitalization: false
+      total: false
+  test_name: test_put
+  test_runtime: 0.023853063583374023
+  test_started: 1354807320.864641
+  ...
+  ---
+  input: null
+  report:
+    agent: agent
+    requests:
+    - request:
+        body: null
+        headers:
+        - - aCcept-LANguage
+          - ['en-US,en;q=0.8']
+        - - acCEPt-ENcODING
+          - ['gzip,deflate,sdch']
+        - - AccEPT
+          - ['text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8']
+        - - usER-AGenT
+          - [Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)]
+        - - aCcEpt-ChARseT
+          - ['ISO-8859-1,utf-8;q=0.7,*;q=0.3']
+        - - hosT
+          - [Vw0mRN7DmC0IFU0.com]
+        method: Get
+        url: http://127.0.0.1:57001
+      response:
+        body: '{"headers_dict": {"aCcept-LANguage": ["en-US,en;q=0.8"], "acCEPt-ENcODING":
+          ["gzip,deflate,sdch"], "hosT": ["Vw0mRN7DmC0IFU0.com"], "AccEPT": ["text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],
+          "usER-AGenT": ["Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR
+          1.1.4322)"], "aCcEpt-ChARseT": ["ISO-8859-1,utf-8;q=0.7,*;q=0.3"], "Connection":
+          ["close"]}, "request_line": "Get / HTTP/1.1", "request_headers": [["Connection",
+          "close"], ["aCcept-LANguage", "en-US,en;q=0.8"], ["acCEPt-ENcODING", "gzip,deflate,sdch"],
+          ["AccEPT", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],
+          ["usER-AGenT", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR
+          1.1.4322)"], ["aCcEpt-ChARseT", "ISO-8859-1,utf-8;q=0.7,*;q=0.3"], ["hosT",
+          "Vw0mRN7DmC0IFU0.com"]]}'
+        code: 200
+        headers: []
+    socksproxy: null
+    tampering:
+      header_field_name: false
+      header_field_number: false
+      header_field_value: false
+      header_name_capitalization: false
+      header_name_diff: []
+      request_line_capitalization: false
+      total: false
+  test_name: test_get_random_capitalization
+  test_runtime: 0.035381078720092773
+  test_started: 1354807320.866462
+  ...
+  ---
+  input: null
+  report:
+    agent: agent
+    requests:
+    - request:
+        body: null
+        headers:
+        - - ACcEPt-lANGuAgE
+          - ['en-US,en;q=0.8']
+        - - AcCePT-EnCodiNg
+          - ['gzip,deflate,sdch']
+        - - acCept
+          - ['text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8']
+        - - USEr-Agent
+          - [Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 8.0]
+        - - AccepT-cHARsEt
+          - ['ISO-8859-1,utf-8;q=0.7,*;q=0.3']
+        - - HOst
+          - [1numISAjBIEifu1.com]
+        method: pOst
+        url: http://127.0.0.1:57001
+      response:
+        body: '{"headers_dict": {"ACcEPt-lANGuAgE": ["en-US,en;q=0.8"], "AcCePT-EnCodiNg":
+          ["gzip,deflate,sdch"], "HOst": ["1numISAjBIEifu1.com"], "acCept": ["text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],
+          "USEr-Agent": ["Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera
+          8.0"], "AccepT-cHARsEt": ["ISO-8859-1,utf-8;q=0.7,*;q=0.3"], "Connection":
+          ["close"]}, "request_line": "pOst / HTTP/1.1", "request_headers": [["Connection",
+          "close"], ["ACcEPt-lANGuAgE", "en-US,en;q=0.8"], ["AcCePT-EnCodiNg", "gzip,deflate,sdch"],
+          ["acCept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],
+          ["USEr-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera
+          8.0"], ["AccepT-cHARsEt", "ISO-8859-1,utf-8;q=0.7,*;q=0.3"], ["HOst", "1numISAjBIEifu1.com"]]}'
+        code: 200
+        headers: []
+    socksproxy: null
+    tampering:
+      header_field_name: false
+      header_field_number: false
+      header_field_value: false
+      header_name_capitalization: false
+      header_name_diff: []
+      request_line_capitalization: false
+      total: false
+  test_name: test_post_random_capitalization
+  test_runtime: 0.046284914016723633
+  test_started: 1354807320.868329
+  ...
+  ---
+  input: null
+  report:
+    agent: agent
+    requests:
+    - request:
+        body: null
+        headers:
+        - - Accept-Language
+          - ['en-US,en;q=0.8']
+        - - Accept-Encoding
+          - ['gzip,deflate,sdch']
+        - - Accept
+          - ['text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8']
+        - - User-Agent
+          - [Opera/9.00 (Windows NT 5.1; U; en)]
+        - - Accept-Charset
+          - ['ISO-8859-1,utf-8;q=0.7,*;q=0.3']
+        - - Host
+          - [9ogjh0OCzT1arR8.com]
+        method: POST
+        url: http://127.0.0.1:57001
+      response:
+        body: '{"headers_dict": {"Accept-Language": ["en-US,en;q=0.8"], "Accept-Encoding":
+          ["gzip,deflate,sdch"], "Host": ["9ogjh0OCzT1arR8.com"], "Accept": ["text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],
+          "User-Agent": ["Opera/9.00 (Windows NT 5.1; U; en)"], "Accept-Charset": ["ISO-8859-1,utf-8;q=0.7,*;q=0.3"],
+          "Connection": ["close"]}, "request_line": "POST / HTTP/1.1", "request_headers":
+          [["Connection", "close"], ["Accept-Language", "en-US,en;q=0.8"], ["Accept-Encoding",
+          "gzip,deflate,sdch"], ["Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],
+          ["User-Agent", "Opera/9.00 (Windows NT 5.1; U; en)"], ["Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.3"],
+          ["Host", "9ogjh0OCzT1arR8.com"]]}'
+        code: 200
+        headers: []
+    socksproxy: null
+    tampering:
+      header_field_name: false
+      header_field_number: false
+      header_field_value: false
+      header_name_capitalization: false
+      header_name_diff: []
+      request_line_capitalization: false
+      total: false
+  test_name: test_post
+  test_runtime: 0.058208942413330078
+  test_started: 1354807320.870338
+  ...
+  ---
+  input: null
+  report:
+    agent: agent
+    requests:
+    - request:
+        body: null
+        headers:
+        - - Accept-laNguagE
+          - ['en-US,en;q=0.8']
+        - - aCcEpt-EnCODIng
+          - ['gzip,deflate,sdch']
+        - - acCePt
+          - ['text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8']
+        - - uSer-AGeNT
+          - [Opera/9.00 (Windows NT 5.1; U; en)]
+        - - aCcept-CHArSET
+          - ['ISO-8859-1,utf-8;q=0.7,*;q=0.3']
+        - - HosT
+          - [Upd9yWpA0TMhUua.com]
+        method: GET
+        url: http://127.0.0.1:57001
+      response:
+        body: '{"headers_dict": {"Accept-laNguagE": ["en-US,en;q=0.8"], "aCcEpt-EnCODIng":
+          ["gzip,deflate,sdch"], "HosT": ["Upd9yWpA0TMhUua.com"], "acCePt": ["text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],
+          "uSer-AGeNT": ["Opera/9.00 (Windows NT 5.1; U; en)"], "aCcept-CHArSET": ["ISO-8859-1,utf-8;q=0.7,*;q=0.3"],
+          "Connection": ["close"]}, "request_line": "GET / HTTP/1.1", "request_headers":
+          [["Connection", "close"], ["Accept-laNguagE", "en-US,en;q=0.8"], ["aCcEpt-EnCODIng",
+          "gzip,deflate,sdch"], ["acCePt", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],
+          ["uSer-AGeNT", "Opera/9.00 (Windows NT 5.1; U; en)"], ["aCcept-CHArSET", "ISO-8859-1,utf-8;q=0.7,*;q=0.3"],
+          ["HosT", "Upd9yWpA0TMhUua.com"]]}'
+        code: 200
+        headers: []
+    socksproxy: null
+    tampering:
+      header_field_name: false
+      header_field_number: false
+      header_field_value: false
+      header_name_capitalization: false
+      header_name_diff: []
+      request_line_capitalization: false
+      total: false
+  test_name: test_get
+  test_runtime: 0.068952083587646484
+  test_started: 1354807320.872004
+  ...
+  ---
+  input: null
+  report:
+    agent: agent
+    requests:
+    - request:
+        body: null
+        headers:
+        - - accEpt-lANGuAGE
+          - ['en-US,en;q=0.8']
+        - - acCePt-encodINg
+          - ['gzip,deflate,sdch']
+        - - aCCepT
+          - ['text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8']
+        - - uSer-AGent
+          - [Opera/9.20 (Windows NT 6.0; U; en)]
+        - - ACcepT-cHarSEt
+          - ['ISO-8859-1,utf-8;q=0.7,*;q=0.3']
+        - - HOsT
+          - [UTqJhv92syxk0nj.com]
+        method: pUt
+        url: http://127.0.0.1:57001
+      response:
+        body: '{"headers_dict": {"accEpt-lANGuAGE": ["en-US,en;q=0.8"], "acCePt-encodINg":
+          ["gzip,deflate,sdch"], "HOsT": ["UTqJhv92syxk0nj.com"], "aCCepT": ["text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],
+          "uSer-AGent": ["Opera/9.20 (Windows NT 6.0; U; en)"], "ACcepT-cHarSEt": ["ISO-8859-1,utf-8;q=0.7,*;q=0.3"],
+          "Connection": ["close"]}, "request_line": "pUt / HTTP/1.1", "request_headers":
+          [["Connection", "close"], ["accEpt-lANGuAGE", "en-US,en;q=0.8"], ["acCePt-encodINg",
+          "gzip,deflate,sdch"], ["aCCepT", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"],
+          ["uSer-AGent", "Opera/9.20 (Windows NT 6.0; U; en)"], ["ACcepT-cHarSEt", "ISO-8859-1,utf-8;q=0.7,*;q=0.3"],
+          ["HOsT", "UTqJhv92syxk0nj.com"]]}'
+        code: 200
+        headers: []
+    socksproxy: null
+    tampering:
+      header_field_name: false
+      header_field_number: false
+      header_field_value: false
+      header_name_capitalization: false
+      header_name_diff: []
+      request_line_capitalization: false
+      total: false
+  test_name: test_put_random_capitalization
+  test_runtime: 0.080827951431274414
+  test_started: 1354807320.8738551
+  ...
+





More information about the tor-commits mailing list