美文网首页
解决爬虫们的大部分障碍——mitmproxy使用初探

解决爬虫们的大部分障碍——mitmproxy使用初探

作者: 一言不合就跑步 | 来源:发表于2018-11-02 16:41 被阅读0次

    mitmtproxy即mitm+proxy,顾名思义是中间人攻击加代理。用于中间人攻击的代理首先会向正常代理一样转发请求,保障服务器与客户端的通信,其次,会适时的查、记录截获的数据或篡改数据,引发服务端和客户端的特定行为。

    mitmproxy可以利用python实现高度定制脚本。因为mitmproxy工作在http层,现在的绝大部分的https拥有检测并规避中间人攻击的能力,所以mitmproxy工作时必须忽略浏览器的SSL证书或让其主动信任。由于此工具具有一定的黑产性质,使用时注意有所规范。

    运行

    mitmproxy有三种启动命令,分别是mitmproxy,mitmdump,mitmweb,三个命令都会启动软件,区别在于交互界面的不同。

    mitmproxy没有window,再次略过。

    mitmdump启动后在后台默默运行,实用性不强,也略过。

    mitmweb启动后,在8081端口开一个窗口,形如:

    [图片上传失败...(image-369edf-1541148099114)]

    接下来就是启动chrome,不过启动要设置代理,并忽略证书错误,命令行如下

    QQ截图20181102104147.png

    上述工作完成后就可以开发自定义脚本了,这才是mitmproxy真正强大的地方。方法有两个:

    1.编写一个 py 文件供 mitmproxy 加载,文件中定义了若干函数,这些函数实现了某些 mitmproxy 提供的事件,mitmproxy 会在某个事件发生时调用对应的函数。

    2.编写一个 py 文件供 mitmproxy 加载,文件定义了变量 addons,addons 是个数组,每个元素是一个类实例,这些类有若干方法,这些方法实现了某些 mitmproxy 提供的事件,mitmproxy 会在某个事件发生时调用对应的方法。

    推荐使用第二种方法。

    官方文档有详细的事件函数,请自行查阅

    事实上考虑到mitmproxy的实际使用场景,大多数情况下我们只会用到针对HTTP生命周期的几个事件。只会用到http_connect/request/response三个时间就能完成大多数需求了。

    详细使用还在研究中。敬请期待。

    相关文章

      网友评论

          本文标题:解决爬虫们的大部分障碍——mitmproxy使用初探

          本文链接:https://www.haomeiwen.com/subject/egycxqtx.html