「docker实战篇」python的docker爬虫技术-mitmproxy之安卓模拟器如何抓包(十)
2019-05-06 08:10:40
李明
  • 访问次数: 377
  • 注册日期: 2018-07-09
  • 最后登录: 2019-10-30
原创文章,欢迎转载。转载请注明:转载自 IT人故事会 ,谢谢!原文链接地址: 「docker实战篇」python的docker爬虫技术-mitmproxy之安卓模拟器如何抓包(十)
之前说了fiddler抓包软件,这次主要说说mitmproxy的app抓包。源码: https://github.com/limingios/netFuture/blob/master/mitmproxy/

v2-de0bd492f5360969c06569090ed60ff4_hd.p

linux下如何抓包
mitmproxy的安装可以参考《python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)》

                    

                    
#查看ip地址 yum install net-tools.x86_64 #192.168.77.100 ifconfig

v2-93286dc5585f21ea715defb08123293f_hd.p
  • 查看mitmproxy 版本

                  

                  
mitmproxy --versionmitmdump --versionmitmweb --versionmitmproxy -p 8888

v2-1fe3a13a9e6577764962542a448dc1be_hd.p
启动夜神模拟机

v2-19ec842c313c0c12fa38b66626de09f6_hd.p
设置代理

v2-1c79719249338a1482ffbf83b9b1d21d_hd.p
长按设置
v2-bedc3fa0f77058c45528c526397dedb1_hd.p

v2-650e5e380c911d2d7a1912df3434fd57_hd.p
image.png
桥接关闭

v2-e89869669c1925ef0eece958eb850d84_hd.p
提示证书未安装

v2-1a1324264a618e8ee4acfa5d2144bc52_hd.p
浏览器打开 http://mitm.it/

v2-9d7bfceda6e382fad963309c44f74c7c_hd.p
点击对应的手机,安装证书,之前说过如何安装证书。可能这个过程要设置锁屏的密码。

v2-567b529bb35819be1fc66e31faf9bbe6_hd.p

v2-4e7c0c31f48e0391572ff051fb493ab1_hd.p
再次打开baidu.com,不在提示证书问题

v2-0128c5f93c2eb2dce4ec0ce4a5821780_hd.p
证书列表:(设置-安全-信任的凭证)一个fiddler的证书,一个mitmproxy的证书

v2-97854ab63e353178d6a50a0526600759_hd.p
技巧:退出q。进入某个url 直接回车。进入详情,键盘所有键查看。
  • mitmproxy如何设置过滤
键盘直接输入 f 键,就会出现set view_fiter=
1.展示返回不是http的状态200的请求

                

                
set view_fiter=!(~c 200)
展示不是200的请求

v2-8a68392cfa292367d1c3a92cc9c591af_hd.p
如何清除上边的个规则

                

                
#直接输入键盘f #set view_fiter= 回车
2.域名找到baidu的请求

                

                
#直接输入键盘f set view_fiter=~d baidu.com

v2-cad2caa04c15da5eab7009f0e4211b69_hd.p
3.请求包含baidu 并且是get请求的

                

                
#直接输入键盘f set view_fiter=~m get & ~u baidu

v2-c7261082a8732b196e07f79140a20c1c_hd.p
  • mitmproxy如何设置断点拦截
之前过滤的时候输入的是f,这里输入i ,对于get请求并且请求内容包括baidu.com的

              

              
#直接输入键盘i set intercept=~d baidu.com & ~m get

v2-c0817d62513d87e11257e20d357ba7a2_hd.p
就是被mitmproxy进行的拦截。

v2-d1a7eca4d13ffcdf90be5b5485a2f08e_hd.p
image.png
选中数据包后敲击:回车;

v2-943dec90a1fe51e01acae48f2a8e91e2_hd.p
停留在request这个界面里面,需要进行修改。输入键盘的e,选择(4)request header,选择host,输入键盘d,就删除host这一行。然后在输入键盘e,选择url,输入要跳转的地址。这样就直接跳转到要跳转的地址上去了。退出q,然后输入a。继续执行查看效果。

v2-b6a9f0b76f37831cb300078b6abee020_hd.p

v2-31241dbd75fcb13c8ff3ef35b5afcc70_hd.p

v2-39777de918e67a50e69f2a0f7ded7613_hd.p
  • 修改返回数据。

            

            
#直接输入键盘i set intercept=~d baidu.com & ~m get
出现标红的地址,就是被mitmproxy进行的拦截
选中数据包后敲击:回车;
停留在request这个界面里面,键盘左右键选择response,输入e,进入类似vi编辑器的界面,输入返回的文字。退出vi编辑器wq,然后退出q,输入a。继续执行查看效果。

v2-4f67c6ace9458787a9059da9f36edad0_hd.p
PS:基本的mitmproxy的使用就讲到这里,拦截什么的还是比较好用的。基本每个抓包工具都有自己的共同点拦截,改包功能。

v2-5e0719d9fc7dd03ce32e624534c0b631_hd.p