前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【2023新windows电脑部署测试环境系列-05】部署抓包神器mitmproxy和使用(下)

【2023新windows电脑部署测试环境系列-05】部署抓包神器mitmproxy和使用(下)

作者头像
我去热饭
发布2023-08-14 17:47:56
5630
发布2023-08-14 17:47:56
举报
文章被收录于专栏:测试开发干货

上节课我们已经安装了mitmproxy , 本节课来试一次脚本启动。所谓脚本启动,就是在启动mitm服务的时候,用-s参数来指定一个py3的脚本。而这个脚本的作用就是对抓到的接口进行操作。

里面有个常用的函数,叫request,所有请求从手机发出后,都会先经过这个request的函数洗礼,然后才会继续前进到服务器。

启动命令如下:

脚本如下:

如上图所示,脚本的功能很简单,就是抓到接口后,输出一下接口的url而已。抓到的结果如图:

如上图所示,成功关联脚本后,我们下一个任务就是测试融合到django项目中,是否有什么问题。

说到这,就要迅速的新建一个django项目了,具体新建django的过程这里不过多赘述。

然后-我们新建一个简单的页面,上面只有一个按钮,点击启动可以直接启动mitm服务的。

创建好之后,我们再去把mitm的那个自定义脚本粘贴到django根目录下:

然后我们去把按钮点击事件的链路写好:

测试一下:

然后就是继续开发真正启动服务的代码了。

这里要来具体思考一下:

首先,这个mitmproxy的服务,应该是一个新的完整独立的进程。

所以代码中我们是一定要去新建一个进程,于是先写成如下代码测试:

启动结果报错:

大致意思就是mitmproxy是需要一个独立的输出控制台,不能这里启动,这个终端控制台目前是被django霸占的。

于是我们换成了寄生控制台命令: mitmdump

并且增加了前后的print输出,还有指定了一个全新的8888端口

再次测试:

如上图所示,卡在这了。这个现象我解释一下:因为新进程mitmdump是阻塞状态,所以原来的这个begin函数是无法继续运行后面的print(启动完成!)

而前端自然也是无限等待,没有弹窗的局面。

所以,我这次把call换成了Popen 非阻塞的。

执行结果如下:

这就达到了我们要的目的了。

此时这个8888的端口,是真的存在这个mitmdump的服务哦~

我们打开手机挂上代理随便请求看看:

如上图所示,可以看到服务成功运行,并且抓到了:.....某个接口。

各种输出也会寄生在当前的django控制台中输出了。

到此,django融合mitm的算是成功了,大家可以在自己公司的服务器部署,并且通过某个django测试平台的一个小按钮进行控制这个抓包服务了,这个抓包服务可以服务全部内网的同事。这样避免了新人安装fiddler 或者 charles的麻烦,还有各种证书安装等麻烦重复的内耗成本问题。

当然,后续还可以增加更多相关功能,提高django和mitm的契合度。比如对每个同事设计的临时专用mitm抓包服务,公司app接口自动识别,在线抓包在线录入一键制作用力等,在线页面控制mock的数据等各种功能,方便还高大上,升职加薪利器。需要具体研究深入的可以关注培训课程:woqurefan.cn (点击阅读原文)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-04-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试开发干货 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档