# mitm_addon **Repository Path**: actanble/mitm_addon ## Basic Information - **Project Name**: mitm_addon - **Description**: mitmproxy 自制正向代理审计插件。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-12-09 - **Last Updated**: 2022-08-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 插件开发和使用 - `python3.8.6` + `mitmproxy-7.0.4` - [插件大全](https://github.com/mitmproxy/mitmproxy/blob/master/examples) ## 使用教程 ```bash /usr/local/bin/mitmproxy \ --listen-port 63333 \ --listen-host 0.0.0.0 \ -s /root/addons/http_handler.py # 开始记录并且阻断http类型日志 # 在上个目录运行,加载xmtx私有证书。 D:\home\ml_venv\Scripts\mitmproxy.exe --set confdir=./docs/certs --listen-host 0.0.0.0 --listen-port 6180 -s ./http_handler.py ## 如果使用mitmweb查看,只需要启动时候使用`mitmweb`替换`mitmproxy` ``` ## 请求字段的格式化参考 - https://github.com/mitmproxy/mitmproxy/blob/master/mitmproxy/http.py - 参考 https://github.com/mitmproxy/mitmproxy/blob/master/mitmproxy/net/http/response.py - conn 信息参考 https://github.com/mitmproxy/mitmproxy/blob/master/mitmproxy/connections.py ## noblock 异步 - [xx-zhang-issue](https://github.com/mitmproxy/mitmproxy/issues/4193) - [nonblocking](https://github.com/mitmproxy/mitmproxy/blob/main/examples/addons/nonblocking.py) ## 2021/10/20 - 修改kafka为后台的redis; 简化这个处置要求。 ## 2021/11/01 - demo 数据。 ```json { "flow_id": "edbc7edd-0fc9-4b9e-9fc5-4c39c29ed14d", "flow_time": 1635994097.1432774, "server_time": 1635994097.1670287, "request_headers": { "Host": "10.27.113.36:8080", "Proxy-Connection": "keep-alive", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36", "Accept": "application/signed-exchange;v=b3;q=0.7,*/*;q=0.8", "Purpose": "prefetch", "Referer": "http://10.27.113.36:8080/", "Accept-Encoding": "gzip, deflate", "Accept-Language": "zh-CN,zh;q=0.9" }, "response_headers": { "Server": "nginx", "Date": "Thu, 04 Nov 2021 02:45:03 GMT", "Content-Type": "text/css", "Last-Modified": "Mon, 12 Jul 2021 01:13:46 GMT", "Transfer-Encoding": "chunked", "Connection": "keep-alive", "Vary": "Accept-Encoding", "ETag": "W/\"60eb974a-2396\"", "X-Frame-Options": "SAMEORIGIN", "Content-Encoding": "gzip" }, "request_header_raw": "GET /assets/css/chunk-6a63ae96.cf585743.css HTTP/1.1\r\nHost:10.27.113.36:8080\r\nProxy-Connection:keep-alive\r\nUser-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36\r\nAccept:application/signed-exchange;v=b3;q=0.7,*/*;q=0.8\r\nPurpose:prefetch\r\nReferer:http://10.27.113.36:8080/\r\nAccept-Encoding:gzip, deflate\r\nAccept-Language:zh-CN,zh;q=0.9\r\n\r\n\r\n", "response_header_raw": "GET /assets/css/chunk-6a63ae96.cf585743.css 200\r\nServer:nginx\r\nDate:Thu, 04 Nov 2021 02:45:03 GMT\r\nContent-Type:text/css\r\nLast-Modified:Mon, 12 Jul 2021 01:13:46 GMT\r\nTransfer-Encoding:chunked\r\nConnection:keep-alive\r\nVary:Accept-Encoding\r\nEtag:W/\"60eb974a-2396\"\r\nX-Frame-Options:SAMEORIGIN\r\nContent-Encoding:gzip\r\n\r\n.storage-pool-container .quato-container[data-v-b7317480]{display:-webkit-box;display:-ms-flexbox;display:flex;font-size:13px}.storage-pool-container .quato-container .quato-info[data-v-b7317480]{margin-right:10px}.storage-pool-container .quato-container span[data-v-b7317480]{color:var(--theme-color)}.list-table[data-v-fec4c348]{height:calc(100vh - 200px);padding-top:10px}.baseInfo[data-v-fec4c348]{height:107px;padding:0 15px;border:1px solid #e7e7e7;margin-top:10px}.baseInfo[data-v-fec4c348] .vx-card-row{height:26px}.pool_volume[data-v-fec4c348]{margin-top:30px;height:calc(100% - 270px)}[data-v-fec4c348] .disabled{color:#ccc}.theme-white .creatvolumeinfo .radio-inner-data[data-v-82641410]{font-weight:400!important}.volume-snap-capacity[data-v-82641410]:before{content:\"*\";color:#f56c6c;margin-right:4px}.creatvolumeinfo .radio-width[data-v-82641410]{width:105px}#storage_volume_volumeCreat_tab_labelTable[data-v-82641410] .el-select__tags-text{display:inline-block;vertical-align:middle;width:65px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}#storage_volume_volumeCreat_tab_labelTable[data-v-82641410] .el-tag--info:first-child{display:inline-block;vertical-align:middle;width:100px!important}#storage_volume_volumeCreat_tab_labelTable[data-v-82641410] .el-tag--info:last-child{width:40px}[data-v-82641410] .el-select-dropdown__wrap.el-scrollbar__wrap{margin-bottom:0!important}.search-label[data-v-6c158aa4]{line-height:40px;text-align:right}.create-chapfrom-bottom[data-v-40c65886]{border-bottom:1px solid #e0e0e0;padding-bottom:20px}.dialog_list_item[data-v-3af31433]{margin-right:20px;width:33%}.volume_error_RWInput[data-v-3af31433]{position:relative;color:#f56c6c;font-size:12px;vertical-align:middle}.progress_style[data-v-3af31433]{display:inline-block;margin-left:10px;width:300px;vertical-align:text-top}.d3-tree-map[data-v-453b3766]{overflow-y:hidden}.node-tip-content[data-v-453b3766]{position:absolute;opacity:.7;padding:5px;border-radius:6px;background-color:#000}.node-tip-content div[data-v-", "host": "10.27.113.36", "port": 8080, "request_body": "", "response_body": ".storage-pool-container .quato-container[data-v-b7317480]{display:-webkit-box;display:-ms-flexbox;display:flex;font-size:13px}.storage-pool-container .quato-container .quato-info[data-v-b7317480]{margin-right:10px}.storage-pool-container .quato-container span[data-v-b7317480]{color:var(--theme-color)}.list-table[data-v-fec4c348]{height:calc(100vh - 200px);padding-top:10px}.baseInfo[data-v-fec4c348]{height:107px;padding:0 15px;border:1px solid #e7e7e7;margin-top:10px}.baseInfo[data-v-fec4c348] .vx-card-row{height:26px}.pool_volume[data-v-fec4c348]{margin-top:30px;height:calc(100% - 270px)}[data-v-fec4c348] .disabled{color:#ccc}.theme-white .creatvolumeinfo .radio-inner-data[data-v-82641410]{font-weight:400!important}.volume-snap-capacity[data-v-82641410]:before{content:\"*\";color:#f56c6c;margin-right:4px}.creatvolumeinfo .radio-width[data-v-82641410]{width:105px}#storage_volume_volumeCreat_tab_labelTable[data-v-82641410] .el-select__tags-text{display:inline-block;vertical-align:middle;width:65px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}#storage_volume_volumeCreat_tab_labelTable[data-v-82641410] .el-tag--info:first-child{display:inline-block;vertical-align:middle;width:100px!important}#storage_volume_volumeCreat_tab_labelTable[data-v-82641410] .el-tag--info:last-child{width:40px}[data-v-82641410] .el-select-dropdown__wrap.el-scrollbar__wrap{margin-bottom:0!important}.search-label[data-v-6c158aa4]{line-height:40px;text-align:right}.create-chapfrom-bottom[data-v-40c65886]{border-bottom:1px solid #e0e0e0;padding-bottom:20px}.dialog_list_item[data-v-3af31433]{margin-right:20px;width:33%}.volume_error_RWInput[data-v-3af31433]{position:relative;color:#f56c6c;font-size:12px;vertical-align:middle}.progress_style[data-v-3af31433]{display:inline-block;margin-left:10px;width:300px;vertical-align:text-top}.d3-tree-map[data-v-453b3766]{overflow-y:hidden}.node-tip-content[data-v-453b3766]{position:absolute;opacity:.7;padding:5px;border-radius:6px;background-color:#000}.node-tip-content div[data-v-", "upload_time": 0.016946077346801758, "response_time": 0.03261733055114746, "response_reson": "OK", "scheme": "http", "authority": "", "intercepted": false, "c_conn": { "id": "038488fc-6005-4518-b7e7-1627796005af", "address": [ "10.25.142.5", 25483 ], "tls_established": false, "clientcert": null, "mitmcert": null, "timestamp_start": 1635994092.683407, "timestamp_tls_setup": null, "timestamp_end": null, "sni": null, "cipher_name": null, "alpn_proto_negotiated": null, "tls_version": null, "tls_extensions": null }, "s_conn": { "id": "41321cb8-c99b-4505-bb9f-b8bdfd8f4209", "address": [ "10.27.113.36", 8080 ], "ip_address": [ "10.27.113.36", 8080 ], "source_address": [ "10.27.113.129", 44305 ], "tls_established": false, "cert": null, "sni": null, "alpn_proto_negotiated": null, "tls_version": null, "timestamp_start": 1635994092.7021446, "timestamp_tcp_setup": 1635994092.7042127, "timestamp_tls_setup": null, "timestamp_end": null, "via": null }, "remote_ip": "10.25.142.5", "remote_port": 25483, "server_ip": "10.25.142.5", "server_port": 25483 } ```