我们使用代理软件拦截 http 或者 https 请求常见的有 Fiddler 和 Charles。这两款软件虽然比较强大,但是如果我们想实现 python 抓取一些 app 数据进行分析的话,今天介绍一款更方便的工具 mitmproxy
安装 mitmproxy
如果我们本机安装了 pip 或者 pip3
pip install mitmproxy --ignore-installed six
或者直接
brew install mitmproxy
或者下载安装包手动安装下载地址,安装完成后配置环境变量
启动
直接 mitmproxy 命令默认在端口 8080 上启动一个 mitmproxy 本地的代理服务
mitmproxy
当然也可以使用如上命令 添加 -p 自定义启动的端口如,mitmproxy -p 8888
使用 mitmweb 命令会同时在 8080 端口和 8081 端口启动两个服务,访问 8081 端口是一个 web 页面,实时显示访问数据
mitmweb
app 抓包
配置手机代理 手机代理和通用的代理配置一样,在 wifi 网络的高级里面设置手动,并输入 pc 端的 ip 地址,端口号是上面启动 mitmproxy 的端口默认 8080
https 抓包 浏览器访问 http://mitm.it 下载对应的 pem 证书并安装。然后在手机端打开需要抓包的 app 就可以正常读取 app 请求每个页面的数据包
测试抓取指定 app 接口数据 编写 python 程序并使用命令为 test.py 程序如下然后使用 mitmweb -s wlw.py 命令启动服务
#!/usr/bin/env python3# -*- coding: UTF-8 -*-import jsonfrom mitmproxy import ctx
def response(flow) : url = "https://xxx/handle/execute.jhtml" if flow.request.url.startswith(url) : text = flow.response.text data = json.loads(text) print(data)
result = data.get('result') print(result) ctx.log.info(str(result)) else: print(flow.request.url) print("\n") print(flow.request.text) print("\n") print(flow.response.text)
可以发现我们可以直接把抓包得到的数据结果在控制台打印出来,这样我们在 python 程序中获取到指定的数据以后就可以非常方便的保存和进行分析。
{'result: '{"sign":"","secret":"","oper":"loginoffice","type":"account","source":"O","version":"1009","app_version":"4.9.4_debug","device":{"OSV":"","OS":"","IMEI":"00000000-21a8-bdd2-ffff-ffff97d5da05"},"para":{"umtoken":"","password":"123456","username":"FJFZSOP1Y1"},"deviceBrand":"HUAWEI","deviceModel":"PRA-AL00X","deviceOsVersion":"8.0.0","deviceOs":"Android","name":"","userName":"FJFZSOP1Y1","code":"3","msg":"密码不正确!"}', 'arg': '{"sign":"","secret":"","oper":"loginoffice","type":"account","source":"O","version":"1009","app_version":"4.9.4_debug","device":{"OSV":"","OS":"",""00000000-21a8-bdd2-ffff-ffff97d5da05"},"para":{"umtoken":"","password":"123456","username":"FJFZSOP1Y1"},"deviceBrand":"HUAWEI","deviceModel":"PRA-AL00X","deviceOsVersion":"8.0.0","deviceOs":"Android","name":"","userName":"FJFZSOP1Y1"}'}
至此 app 的数据包的抓包流程就走完了。
申明 特此申明:本文只作为笔者自己的 app 数据抓包分析使用,请读者不要恶意使用抓包程序对商业 app 进行违法的一些行为。
推荐阅读:打开查找我的iphone
-
无需烤箱,Q弹软糯的芒果雪媚娘
芒果雪媚娘! Q弹软糯,今天分享的是芒果味的雪媚娘无需烤箱,一次就能成功!皮薄馅大外皮的软糯,奶油的香甜,夹着清香的芒果,超级好吃呀!芒果雪媚娘❤食材准备:糯米...
2020-02-20 -
脆皮炸牛奶&炸可可
美食之都【脆皮炸牛奶炸可可】外酥里嫩de炸鲜奶,奶香浓郁一次做了两种,普通的炸牛奶和加了可可粉的炸可可,老人小孩都爱吃的甜品,快试试轻松易学️准备材料:纯牛奶6...
2020-02-20 -
美国人吐槽:天天生吃蔬菜,就不能学学中国吗?
一美国人在中国生活支行回国之后看到他们国家的饮食方式之后就吐槽周围都是吃生的一点也不讲究就不能学学中国把蔬菜加入成各种各样的美食再吃吗?在我们中国其实同一种蔬菜...
2020-02-20 -
孩子不喜欢吃鸡蛋?把鸡蛋黄制作成这种形状,孩
家里的孩子不爱吃鸡蛋,家里的妈妈伤透了脑筋?有没有办法让鸡蛋变成孩子喜欢,妈妈看着高兴的鸡蛋呢?那不妨试一试用鸡蛋黄变形器,做出新的花样,也许小孩会爱上吃鸡蛋哦...
2020-02-20 -
万物皆可烧烤,烧烤上的奇葩食材,全吃过的是吃
烧烤是现在夜宵中的一种消遣,各种各样的食材烤出来真的是香的一比,而我们最常见的烧烤就是烤的肉串了,毕竟吃烧烤,不可能谁都不吃肉,但是现在吃烧烤的人越来越多,大家...
2020-02-20 -
被“误解”最深的小吃,价格10年没涨过,现在
我们这边留存的传统小吃可以说越来越少了,不过还有一种小吃,至今还能吃到。很多外地人来到我们这,对这种小吃可以说有着很深的误解,这种小吃可以说是被外地人误解最深的...
2020-02-20