本帖最后由 T4DNA 于 2023-11-25 11:18 编辑
- 某小程序使用单一的请求验证用户是否是会员,但其余请求未做鉴权,使用BreakPoints修改reponse的会员项为1,小程序即可使用会员功能。现在需要对该过程实现自动化。
- mitmproxy是开源的HTTPS代{过}{滤}理工具,并提供python API编写自动化程序。
1.安装mitmproxy
[PowerShell] 纯文本查看 复制代码 pip install mitmproxy
2.安装证书
手机访问http://mitm.it,下载安卓证书,安装证书,并通过Always Trust User Certificates等模块刷入系统。
3.程序编写
[Python] 纯文本查看 复制代码 from mitmproxy import http
def response(flow: http.HTTPFlow):
if "api/user/huiyuan" in flow.request.pretty_url:
response_text = flow.response.text
modified_response_text = response_text.replace('会员": "0"', '会员": "1"')
flow.response.text = modified_response_text
代码import mitmproxy 的http,通过flow.request.pretty_url获取每次请求的url,并筛选接口,flow.response.text获取原始的response,简单.replace即可更换,并把修改后的内容重新赋值即可。
[Python] 纯文本查看 复制代码 from mitmproxy import http
def response(flow: http.HTTPFlow):
if "api/user/huiyuan" in flow.request.pretty_url:
response_text = flow.response.text
print(response_text)
modified_response_text = response_text.replace('会员": "0"', '会员": "1"')
flow.response.text = modified_response_text
if __name__ == "__main__":
from mitmproxy.tools.main import mitmdump
mitmdump(['-s', __file__]) |