使用mitmproxy进行移动端的HTTP抓包


点击访谈最先的文章
你还是能加入全栈技艺交流群(QQ群号:254842154)

1. Charles能做的事:

Charles is an HTTP proxy / HTTP monitor / Reverse Proxy that enables a developer to view all of the HTTP and SSL / HTTPS traffic between their machine and the Internet. This includes requests, responses and the HTTP headers (which contain the cookies and caching information).

 官方介绍:查理让开采者能够直观地浏览机器客商端和互连网之间的通讯数据,包涵顾客端发送的央浼数据、服务端再次来到的响应数据以及HTTP尾部。

 除了法定介绍,对于Android开采来讲,查理还应该有二个十一分实用的功效。Charles能将某些接口的服务端响应数据保存到地点计算机上,然后将供给映射到地面,下一次再央浼那些接口时,手提式无线电话机端收到的response就是已经保存在地点的多少。而笔者辈得以任意修改本地数据,也正是说,能够让顾客端接收到大肆大家想给的数据。


2. 代理配置:

配置好网络代理才具让手提式有线电话机端的央浼被查尔斯捕获到。

  • Charles端配置,主借使设置好端口号,这里安装了8888,让后把 Enable transparent HTTP proxing 勾选上。

图片 1

设置HTTP代理端口

  • 手提式有线电话机端配置,把手提式有线电电话机WIFI的手动代理张开,代理服务器主机名设为Computer的IP地址,代理服务器端口设置为Charles里布置的端口。注意:Computer和手提式有线话机必需一而再同贰个网段。

 配置好了随后,就能够在Charles看见手提式有线电电话机端与服务器之间的多少交互了。在Request中能见到手提式有线电电话机端发送的伸手数据,在Response中能见到服务端重回给手机的数据。

图片 2

查尔斯抓取到的数额

HTTP抓包深入分析工具备比较多,如Fiddler,FireBug,HttpWatch,Tcpdump,PAW(mac)等。在做活动支付时,找到一款合适本身的能进行移动设备HTTP抓包的工具也是那二个主要的。正所谓,工欲善其事必先利其器。

3. Map功能

也正是地方说的央求映射,使用方法:

  1. 将Response保存到本地。在Response区域单击右键,有一个Save Response的选项,能够将Response保存到本地。

  2. 在右边手Structure中当选接口,单击右键,有二个Map Local...选项。在Local Path里填上地面包车型客车Response文件地方,如下:

图片 3

Mapping编辑

 然后,后一次手提式有线电话机再央求那个接口时,再次来到的正是本地Response里的数额了。那时候就能够喜悦地修改本地Response数据,想要重临什么数据就有啥样数据。

  1. Map管理
    在 Tools -> Map Local 中得以对Map实行保管:允许只怕吊销某二个接口的Map,也足以编制Map地址。能够说用起来是杰出欢愉吗!

图片 4

Map Local 设置

个人特别喜欢Fiddler,作用强大,何况还辅助替换文件,对于调节和测量检验线上的js/css文件特别实惠。缺憾,未有MAC版本。于是作者只能另寻利器。

前几日给我们介绍一款强大的援帮手提式无线电话机端抓包的工具:mitmproxy。官方网站地址:http://mitmproxy.org/ 。那是mitmproxy官方网站的自述:

an interactive, SSL-capable man-in-the-middle proxy for HTTP with a console interface

它是开源的,托管在github上,使用python开辟,跨平台。
https://github.com/mitmproxy/mitmproxy

下边以android为例做牵线,iOS的调节和测验类似,关键是设置好代理。

下载

下载地址:

http://mitmproxy.org/download/osx-mitmproxy-0.11.3.tar.gz

垂怜折腾的能够团结编译安装。

电脑端设置

微型Computer和手提式有线电话机连接到同叁个wifi情形下。运营时,需求内定Computer的ip地址,并约定一个端口号:

/Applications/ProgramFiles/mitmproxy-0.11.3/mitmproxy -b 10.0.1.6 -p 2386

手提式有线电话机端设置

手提式无线电话机和管理器三番两次同一个wifi,然后设置代理。进入WLAN,找到当前连年的wifi,长按,弹出的框中采取“修改互连网”,步入后,选拔“显示高等选项”,代理选用为“手动”,代理服务器主机名设置为mac端的ip地址,端口号是跟刚刚安装的2386,设好后保存。如下图:

Screenshot_2015-02-03-17-35-53.jpeg

此时,手提式有线电话机端的所有http央浼都会被mitmproxy检查实验到,并呈以后调节高雄。键盘的上下键能够调整莲灰箭头 >> 的位移,回车直接进去伸手详细的情况。

3.pic_hd.jpg

mitmproxy基本操作

详尽操作在此间能够找到:http://mitmproxy.org/doc/mitmproxy.html 。笔者在那边只列出部分有时使用的吩咐。

骨子里命令基本和vi一致。

C 清空气调节器控台
tab 诉求/响应切换
q 重回上八个分界面
m 在响应结果中,输入m能够选择body的变现格局,比方json,xml等
e 编辑乞求、响应
a 发送编辑后的伸手、响应

拦截HTTP请求

mitmproxy是二个支撑SSL的HTTP中间人代办工具,它同意你检查HTTP和HTTPS流量并帮忙间接改写必要。它位于客户端和Server端之间,它能够收获顾客端的Request,然后修改再发送给Server端;Server端获得Request之后再发生相应的Response,又会被mitmproxy拦截,假若您想修改response,便可修改后再发给客商端。

以此强大的机能已经在局部有关iOS应用的隐秘丑闻中都出现过,包括Path的地址簿上传丑闻。它的一贯改写要求的技艺也被用来针对iOS平台,其应用包涵在GameCenter中伪造七个虚假的高分数值。感兴趣的能够翻阅:

http://mitmproxy.org/doc/tutorials/gamecenter.html

下边笔者要做的正是拦截android的http央求,然后修改诉求url,等待服务器重临后再修改响应体。

在暗许意况下mitmproxy是过滤抓包的U景逸SUVL,比方作者想拦截全部url中饱含cmd=200的乞求,操作如下:

在呼吁列表分界面,输入i(代表Intercept filter)步入命令行,输入cmd=200

8.pic.jpg

然后在android客商端发起呼吁,我们得以见到被截留的乞请被标红色高棉亮了

5.pic.jpg

运用键盘的内外箭头移动墨绿的>>,到被挡住的央求那一行,回车踏向详细情形,使用tab键切换Request和Response,今后呼吁还一贯不发出去。输入e,按提醒能够编写相应的央浼体。编辑实现后回车,然后输入a(accept)发送给服务器。

6.pic_hd.jpg

服务器响应后,会有Response,此时,响应还未有发放android客商端,能够看看是Response intercepted,代表是被拦截了。要是想编辑响应,同样是输入e编辑,步向编辑方式后,就是跟vi的操作同样了,编辑完后必要wq保存退出。然后再输入a,那时android客商端就会收下响应了。

7.pic_hd.jpg

别的拦截命令:
~q 拦截全体的呼吁

~c 404 拦截特定的响应码404

~m POST 拦截全数POST需要

更加多拦截命令看这里:
https://mitmproxy.org/doc/features/filters.html

更详尽的抓包进程也得以看这里:
http://greenrobot.me/devpost/how-to-debug-android-http-get-started/

HTTPS抓包

调度https哀告稍微麻烦一点,须要安装自定义的SSL证书。能够参照他事他说加以考察官方网站的那篇小说:
https://mitmproxy.org/doc/certinstall/android.html

3G/4G抓包

合法尚未交给解决方案,在网络找了弹指间,有人透过手提式有线电话机的活动火热来落到实处,必要用到两台安卓手提式有线电话机,假诺为A和B,Computer为C。将来要对A手提式有线电话机的HTTP进行抓包。
①在B中启用WLAN热门成效
②A和C连接到B
③在A中设置代理IP(A的IP地址,平日是192.168.43.xxx )

参考:
http://greenrobot.me/devpost/how-to-debug-http-and-https-traffic-on-android/

本文由明仕msyz手机版发布于家居装修-蜗牛装饰,转载请注明出处:使用mitmproxy进行移动端的HTTP抓包

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。