~/Projects/confbook
git clone https://code.lsong.org/confbook
Commit
- Commit
- 23cfa4f0346fcd4a2fcc7a5634d335de19616dae
- Author
- Lsong <[email protected]>
- Date
- 2022-10-06 19:35:30 +0800 +0800
- Diffstat
mitmproxy/config.yaml | 10 +++++----- | 2 +- | 0 mitmproxy/scripts/xck.py | 24 ++++++++++++++++++++++++
update
diff --git a/mitmproxy/config.yaml b/mitmproxy/config.yaml index 447961c0e369a83da23a606dbdd9fdb621e1b421..345ad6a3a7bd62c8025f7091d28a1f73ae62353a 100644 --- a/mitmproxy/config.yaml +++ b/mitmproxy/config.yaml @@ -1,10 +1,10 @@ -listen_port: 8090 web_host: "0.0.0.0" +listen_port: 8090 block_global: false -console_mouse: false +tls_version_client_min: "SSL3" scripts: - - /root/confbook/mitmproxy/scripts/ylgy.py + - /root/confbook/mitmproxy/scripts/tls_passthrough.py - - /root/confbook/mitmproxy/scripts/hbjkb.py + - /root/confbook/mitmproxy/scripts/hbjkm.py - - /root/confbook/mitmproxy/scripts/tls_passthrough.py + - /root/confbook/mitmproxy/scripts/xck.py diff --git a/mitmproxy/scripts/bjjkb.py b/mitmproxy/scripts/bjjkb.py new file mode 100644 index 0000000000000000000000000000000000000000..f2a19993042f31a8df61a98daae2faf5efc25e15 --- /dev/null +++ b/mitmproxy/scripts/bjjkb.py @@ -0,0 +1,35 @@ +""" +Basic skeleton of a mitmproxy addon. + +Run as follows: mitmproxy -s anatomy.py +""" +from mitmproxy import ctx +from mitmproxy import http +import json + +def response(flow: http.HTTPFlow) -> None: + if flow.request.host != "xcx.yqgz.beijing.gov.cn": + return + + ctx.log.info("JKB: %s" % flow.request.pretty_url) + + # 首页查询 + if flow.request.path.startswith("/ebus/jxjxcxzcfu/jingxinju/jkb/businessTravel/getBaseData"): + data = json.loads(flow.response.get_text()) + data["data"]["validDate"] = 1663776000000 + data["data"]["validDateStr"] = "09-21 24:00" + flow.response.text = json.dumps(data) + # 核酸结果查询列表 + if flow.request.path == "/ebus/jxjxcxzcfu/hsjc/jkb/hsjc/resultQuery": + data = json.loads(flow.response.get_text()) + data["data"]["results"][0]["afterTestTime"] = "1" + data["data"]["results"][0]["detTime"] = "2022-09-19 16:00:00" + flow.response.text = json.dumps(data) + # 核酸天数 + if flow.request.path == "/ebus/jxjxcxzcfu/hsjc/jkb/hsjcV1/reqNucleicAcidsDays": + data = json.loads(flow.response.get_text()) + data["data"]["afterTestTime"] = "1" + data["data"]["cacheDay"] = "20220921" + flow.response.text = json.dumps(data) + + ctx.log(f"response: {flow=}") diff --git a/mitmproxy/scripts/hbjkb.py b/mitmproxy/scripts/hbjkb.py deleted file mode 100644 index c67b4f393e1d75c9d91df99ed6ac4710d72a6f75..0000000000000000000000000000000000000000 --- a/mitmproxy/scripts/hbjkb.py +++ /dev/null @@ -1,23 +0,0 @@ -""" -Basic skeleton of a mitmproxy addon. - -Run as follows: mitmproxy -s anatomy.py -""" -from mitmproxy import ctx -from mitmproxy import http -import json - -def response(flow: http.HTTPFlow) -> None: - if flow.request.host != "sjzhe.tgovcloud.com": - return - - ctx.log.info("JKB: %s" % flow.request.pretty_url) - - # 首页查询 - if flow.request.path.startswith("/hbjkm/newUserHealth"): - - data = json.loads(flow.response.get_text()) - data["data"] = "fa2b2fab1f9fba2e6e6781a3b389e78c0a8a730419692158e8bf6c9f6038c870d25f48d7226f0af90d0ffaebe580e806bccb43a73ce9b539d712f4a02eafa7bdb0d4d33957c59a944507660361c54e0daa204adf517866fd15652368125de7eb3f074a06d70398aecc1742395bf0e8c3d80cad82ab22b13c0c906200efb9d2e57c83f2b3d43e1d440df629c20f36cd50ad39d054da57e70fcd602a23fff8245575da024bc55b073fdd2271f1a1fd62a347a4c98a2196e6ceae8668e5cd4d0872e05ebd4316c8a5abc6047787452ca8d97af017a3fb30e3edcaa8c722f7c7c1705e2e23e4050b2d0adf87e7f7afc9eb72229df45b537649d06364f2ad175ede6e3bfef3ee9af19eb378c6e0ad51f87a47542725a68bdfc6ab2dffc75eaf38278d43a67c6ff6a2cdd5284ab665396d2cda3bdd0f1b22e2ebe47fcd212306b0756866d6845d91bd5271d7602692f30c16772bd5d3a88bc7766d199d8c0168254c27ef1a0ecfbc1483e581f1ccd20d400eb47fa55167823a5cc912f52100f38a1f5d0dbba3548c9244c4b1701802ad2cbd87e5b1239b95a2777258f2c60a269a75411ee0c19e3d993541687388799fa83b9c14ca5937c61f9343d6fa19f0917f8f6515fa9f532b520f86a91983226397c5bf1bfe6da95369ea0699c8840c06fbc879151f374a7bb6f47a0c81afb272c0da066844ae60fc032d44503e8dabb082bbb58ba5304eb43a3ff246c2858d77a4e9afe6661faa61f2e412394955ef77bd644f7aecf15ebf4911d76d5b59c612d031fb720b224dbb1331db53ab5cc5390afa6464259bc4c07abb5795d49dd9a7482b0d692042829649f220351b1e281c1d166d7c31df60dec8af4c881a6bc6949d666d6e65b03e4df1e2964726fa57f50f8b722dc583f8bd25d49c2cd24bef2f6614f4a221ae0c503b8ff1926643a79ba8dda1eb6a573d7692eb76443ba211b7b96f5ebeb0f4df1d03676c8d720ef924bcda9f428be15262a7603195a53d630df2e09739e399aa63cd39c5d4b1307aa4438a7c41e636ad00abffe231a04bb421679fe9742e343300c8c1f6e833223667284267d4f1af009c683031d78dd3e83954a6070a2d60247b600dacf55e00a84f7cef9acb545cd3dc538c7ebef62068e945652e0c28ebece1856e772d449fc3e9696809a183c6365242fda850effa1869a2c67fe2714c7294cd037d8c07478135eed625f8e88d453551e3d4b21e32a0193a1f0d89b4aa2c3f404b4987ef4b613a215a4bbfd42499e35d008cac27fae9e9b45e792a1d9de76aaa6176f9827e836a741e0655be25726c489566e3840581d175f72151dfe642051e42cd4ee7161c03788d67d2f695da97c87141927fb07c97b4f2fe3d0412ec1ccd4b56d9fdc58a5592b1d8a267a6f977a103a4c54f36178be28f30213a31fffc692da5898f6a5ff3313c804600b8d839c06473c0c5d6087d0187af9f572b5ff3a9edbf5ccc3c2e05b197ce7cd1260f12636ef3d051068883c53d3e681e350973de3014452d8dfc9ef2bb9bce5cc4a9248025d6f2dbd6e25d7c6a2a767afb285014e792a1b341f0906eb8f4ba4f2c82bb8155ba4a52dbfa16398486a0073e82761aa5ec4bc1e7159fb706e324eb6f7b775198ee119d6457df2380a5ce94aba90811daf9e6682402c0be5de0fe7bb1d0dde4f9d26c7e6e3bf31e3f87172433b2da0dc36b7f594375691a82f39dd2bb47720d70197243168e562dc1bab0c0c41588e33faa6901d0867a4ce7948d83c4d45f2e05743712ed59bfe0c2861fbfef1f05dd52557a9dc643723b190fcb3acd71c0cfbb72ca9645cbc61234f1b86953209d83a98194e09c3e65c73bb1559081b86f620447edd601b30acba03109ae1753da9a73386de049ebfd21d1096977fd125df96a61ab69a0f13ef6147594ec1995ede8b44254605570597afd3b729ca71b8a4592c7e03b9689822503dc72cf4b0976affd36a9b2b84425b365c2d98fc32d899baf137aa7b8c583c4d280afcec6f2d75875eeb20cd05b942abedeeb04c0500c372f31882111481216b87c03367e37e345cb25db9ecf3f5babe1f282d430bb77a5987bfc58a654098508b441c270a2a3800d7561ee823ac835f13fcb92d494d83ce83714cc60e8aa2e49c13655f1d4af54a7ad4251b70fff03f542e4226f8c27a062f8b7a1cf4d5bf03dfe210cb78129e0de5ceccd652a40b44261f1dcc32614e9bc8a5896d7688a1181c9cd0d0af50c1cdd357f8ab2c510a44cdca57aee0d786ac678e69623c61e3ec28e29ae2bea71f64866185213eac30f45e4a4695b1431383d9bc2460e64fa85d620c8a47f63a08449e4ff60f11b85730fadc508156707e2268b6d4d7e35b24096d0ef0c7d775132c97c3441556e14228b3308e080f7c31a425116150ecb62d835372e95e7c3fb7f17a79d06bacf24263cfaa6b2882c66907706e396b2d983864ef3580f89a27d2cec37ab7e428a7ee33d5ff20d87caa1e5c08b0366a918f1730c0c86c00666cb01c67878d56096f4cded75c8c128a3579dc0b8c0c4a28b6f87dc6c91ee9d1875f88a85ae3e3eefec319221bf290afed4c69b355592e57671949f4a4ab397a0bb00415ab417a27739514ac10b27f44ce805890eca64c6840c126e682c802d724f498b1bd9fc49410912b081a166604dcba14d4ab0b78f759878e03ba6b037bb33d19877767199b80d3028343de880a7c14124ba86b8cdc031251a39aac8f05e0bbe9a984bfc9426f8252a45" - flow.response.text = json.dumps(data) - - ctx.log(f"response: {flow=}") diff --git a/mitmproxy/scripts/hbjkm.py b/mitmproxy/scripts/hbjkm.py new file mode 100644 index 0000000000000000000000000000000000000000..1cbc27b98cfe8b7951c73de5a3765b9485be04fe --- /dev/null +++ b/mitmproxy/scripts/hbjkm.py @@ -0,0 +1,23 @@ +""" +Basic skeleton of a mitmproxy addon. + +Run as follows: mitmproxy -s anatomy.py +""" +from mitmproxy import ctx +from mitmproxy import http +import json + +def response(flow: http.HTTPFlow) -> None: + if flow.request.host != "sjzhe.tgovcloud.com": + return + + ctx.log.info("JKB: %s" % flow.request.pretty_url) + + # 首页查询 + if flow.request.path.startswith("/hbjkm/newUserHealth"): + + data = json.loads(flow.response.get_text()) + data["data"] = "fa2b2fab1f9fba2e6e6781a3b389e78c0a8a730419692158e8bf6c9f6038c870d25f48d7226f0af90d0ffaebe580e806bccb43a73ce9b539d712f4a02eafa7bdb0d4d33957c59a944507660361c54e0daa204adf517866fd15652368125de7eb3f074a06d70398aecc1742395bf0e8c3d80cad82ab22b13c0c906200efb9d2e57c83f2b3d43e1d440df629c20f36cd50ad39d054da57e70fcd602a23fff8245575da024bc55b073fdd2271f1a1fd62a347a4c98a2196e6ceae8668e5cd4d0872e05ebd4316c8a5abc6047787452ca8d97af017a3fb30e3edcaa8c722f7c7c1705e2e23e4050b2d0adf87e7f7afc9eb72229df45b537649d06364f2ad175ede6e3bfef3ee9af19eb378c6e0ad51f87a47542725a68bdfc6ab2dffc75eaf38278d43a67c6ff6a2cdd5284ab665396d2cda3bdd0f1b22e2ebe47fcd212306b0756866d6845d91bd5271d7602692f30c16772bd5d3a88bc7766d199d8c0168254c27ef1a0ecfbc1483e581f1ccd20d400eb47fa55167823a5cc912f52100f38a1f5d0dbba3548c9244c4b1701802ad2cbd87e5b1239b95a2777258f2c60a269a75411ee0c19e3d993541687388799fa83b9c14ca5937c61f9343d6fa19f0917f8f6515fa9f532b520f86a91983226397c5bf1bfe6da95369ea0699c8840c06fbc879151f374a7bb6f47a0c81afb272c0da066844ae60fc032d44503e8dabb082bbb58ba5304eb43a3ff246c2858d77a4e9afe6661faa61f2e412394955ef77bd644f7aecf15ebf4911d76d5b59c612d031fb720b224dbb1331db53ab5cc5390afa6464259bc4c07abb5795d49dd9a7482b0d692042829649f220351b1e281c1d166d7c31df60dec8af4c881a6bc6949d666d6e65b03e4df1e2964726fa57f50f8b722dc583f8bd25d49c2cd24bef2f6614f4a221ae0c503b8ff1926643a79ba8dda1eb6a573d7692eb76443ba211b7b96f5ebeb0f4df1d03676c8d720ef924bcda9f428be15262a7603195a53d630df2e09739e399aa63cd39c5d4b1307aa4438a7c41e636ad00abffe231a04bb421679fe9742e343300c8c1f6e833223667284267d4f1af009c683031d78dd3e83954a6070a2d60247b600dacf55e00a84f7cef9acb545cd3dc538c7ebef62068e945652e0c28ebece1856e772d449fc3e9696809a183c6365242fda850effa1869a2c67fe2714c7294cd037d8c07478135eed625f8e88d453551e3d4b21e32a0193a1f0d89b4aa2c3f404b4987ef4b613a215a4bbfd42499e35d008cac27fae9e9b45e792a1d9de76aaa6176f9827e836a741e0655be25726c489566e3840581d175f72151dfe642051e42cd4ee7161c03788d67d2f695da97c87141927fb07c97b4f2fe3d0412ec1ccd4b56d9fdc58a5592b1d8a267a6f977a103a4c54f36178be28f30213a31fffc692da5898f6a5ff3313c804600b8d839c06473c0c5d6087d0187af9f572b5ff3a9edbf5ccc3c2e05b197ce7cd1260f12636ef3d051068883c53d3e681e350973de3014452d8dfc9ef2bb9bce5cc4a9248025d6f2dbd6e25d7c6a2a767afb285014e792a1b341f0906eb8f4ba4f2c82bb8155ba4a52dbfa16398486a0073e82761aa5ec4bc1e7159fb706e3d19e64418e6584ce2f36ca51da4b69d74055616e38f7d6f744d3f1d3991343596e959cb1b11a820d17773a99b2fb00971a6053d88db0b9864f3a84cb37b20a1afe6bd2b08f3945bef157c853aa29f652c0295c1378ccde4a1d7086a2ab1f47ec045533e38d36ca1a5d59ef4116bbae652c45b7f10b56181f151dd0479e9ed588892fb267c0f331caa0e5bb0a69cf894a322eb904818e791fb3f6c1edde3581664f33e8db1d3184c40f83921d70e3c551875ee0eaa49e03ce5aff25d9d20070d6e2a8a5271cb162e0bee7ffc634d0ce397925520af108deb686db7c31755656c3ed9570a0e22b494ff0705e8513d17e463d0ba0fd5bc058aa33a74e31db0dba00925955ad2a86736501a5ed3f23d202238cfd7558ca4d857b7d2e4388a7d86056666cc308409f0467883c1554004b2d4926141b4799fcce2fafffd7ec65eab00b3b6a2296077fc62aa67077c4b2f8c8a24c81ac691b0a9dcd3bab7f53157a01492eef2a39a71f2f35375599f03fb76e25e0b6f7a7df2aeb839cac5b7099aa56202fe17049ce7afe68db2217d18848bad0c2e9df88273ac144bf6adfad2e98a2f954f5e9fded1b9f266d9db9ebfdfd865da49d6a953c97acbab12fd2cb69c884ca526fe27d71af50fe01d833adfe47c6f2d0bb50cbb3720f78de8bd0a03c959d17f1ddcb195505a4971400307c7255199baeeb58c5592b6535b2d4e11cfa5972bd5ce08b04e09ccc8ce04f48865d7e338256a8e8190e2be5ba32cbec7c7b2262b6e129d351c81a9026e9533dff961a56d9c1c8b23500548a5ad2f8faebd8852fb839dd7ccec3995889343683a9faeed12142257932e235dba16dbb7d3acdf3b9a381c58d9c8c7fe927650f2a3800941e34052aca285eb23b16e3130638edf50620075da344a8712975399be1142e83bdb7cc0118de563768ea57f0f14cae02d747cc91012a903f3543e85c4c982a8da592aa3675dd288353960b50c398d3721d80b090965623a4a79761ba8ef94e46de8934e532ee4364870ca5064fe5b29cdea7d0a3f98a90952a1a3a2d24bfbf8713758ea595f3c6e74e849d4d111e51156bc5" + flow.response.text = json.dumps(data) + + ctx.log(f"response: {flow=}") diff --git a/mitmproxy/scripts/jkb.py b/mitmproxy/scripts/jkb.py deleted file mode 100644 index f2a19993042f31a8df61a98daae2faf5efc25e15..0000000000000000000000000000000000000000 --- a/mitmproxy/scripts/jkb.py +++ /dev/null @@ -1,35 +0,0 @@ -""" -Basic skeleton of a mitmproxy addon. - -Run as follows: mitmproxy -s anatomy.py -""" -from mitmproxy import ctx -from mitmproxy import http -import json - -def response(flow: http.HTTPFlow) -> None: - if flow.request.host != "xcx.yqgz.beijing.gov.cn": - return - - ctx.log.info("JKB: %s" % flow.request.pretty_url) - - # 首页查询 - if flow.request.path.startswith("/ebus/jxjxcxzcfu/jingxinju/jkb/businessTravel/getBaseData"): - data = json.loads(flow.response.get_text()) - data["data"]["validDate"] = 1663776000000 - data["data"]["validDateStr"] = "09-21 24:00" - flow.response.text = json.dumps(data) - # 核酸结果查询列表 - if flow.request.path == "/ebus/jxjxcxzcfu/hsjc/jkb/hsjc/resultQuery": - data = json.loads(flow.response.get_text()) - data["data"]["results"][0]["afterTestTime"] = "1" - data["data"]["results"][0]["detTime"] = "2022-09-19 16:00:00" - flow.response.text = json.dumps(data) - # 核酸天数 - if flow.request.path == "/ebus/jxjxcxzcfu/hsjc/jkb/hsjcV1/reqNucleicAcidsDays": - data = json.loads(flow.response.get_text()) - data["data"]["afterTestTime"] = "1" - data["data"]["cacheDay"] = "20220921" - flow.response.text = json.dumps(data) - - ctx.log(f"response: {flow=}") diff --git a/mitmproxy/scripts/xck.py b/mitmproxy/scripts/xck.py new file mode 100644 index 0000000000000000000000000000000000000000..3c741c85bc761b1308f7acdfa8ed0f8fba3991d7 --- /dev/null +++ b/mitmproxy/scripts/xck.py @@ -0,0 +1,24 @@ +""" +Basic skeleton of a mitmproxy addon. + +Run as follows: mitmproxy -s anatomy.py +""" +from mitmproxy import ctx +from mitmproxy import http +import json + +def response(flow: http.HTTPFlow) -> None: + if flow.request.host != "xcweb01.caict.ac.cn": + return + + ctx.log.info("xck: %s" % flow.request.pretty_url) + + if flow.request.path.startswith("/alipay/v2/queryAdressQuicklyNewSec"): + data = json.loads(flow.response.get_text()) + # bj & zjk + data["result"]["message"] = "m0X7ouJW3tsniioKGsqoJu4TT7nC/UM+12HUQNqxKbQ=" + # zjk + data["result"]["message"] = "m0X7ouJW3tsniioKGsqoJhTXk2uHFKHydliJUWdg4ds=" + flow.response.text = json.dumps(data) + + ctx.log(f"response: {flow=}")