Charler/Fiddler/Mitmroxy/Appium安装及使用

1、Charles安装及使用

首先Charles工具的下载地址是https://www.charlesproxy.com/

1.1、Charles证书配置

如果是在window下安装Charles,配置证书如下操作:

首先打开charles,点击【help】-->【SSL Proxying】-->【Install Charles Root Certificate】进入证书的安装界面

【配置HTTPS证书和远程移动设备浏览】

打开charles,在【Help】-->【SSL Proxying】-->【Install Charles Root Certificate on a Mobile Device or Remote Browser】

1.2、Charles代理配置

【配置代理端口】

在charles工具【Proxy】-->【Proxy Settings】,默认代理端口是8888.

【开启SSL监听】

在charles工具【Proxy】-->【SSLProxy Settings

【如果把证书保存到本地】

Charles的Help选项–>SSL proxying–>Save Charles Root Certificate出现弹框

1.3、安装手机配置

首先查看一下ip地址,在charles的【help】-->【Local Addresses

【安装手机配置代理地址和端口】

在【设置】-->【无线和网络】-->【WLAN】,右键常按WLAN会出现如下界面:

 打开手机浏览器,在浏览器中输入chls.pro/ssl后,便会弹出证书的安装页面,我们需要点击安装。

 我们可以在设置--->系统安全 --->信任的凭证中找到刚才安装的证书。

2、Fiddler工具的安装及使用

Fiddler工具的下载地址:https://www.telerik.com/fiddler

2.1、Fiddler基本配置

 【1、配置HTTPS信息】

打开Fiddler工具,找到Tools--Options--Https,如下图

【2、连接配置】

打开Fiddler工具,找到Tools--Options--Connections

 

注意,配置完fiddler一定要重启!!!

2.2、Fiddler工具基本使用

【1、File菜单栏】

 【2、Edit菜单】

 

 

【3、Tools工具】

 

【4、工具栏说明】

 

2.2、安卓手机安装fiddler证书

 首先配置Fiddler工具支持安卓手机访问

 

接下来我们来配置安卓手机,在设置中找到网络,修改代理

打开浏览器输入如下内容

 

3、mitmproxy抓包工具

mitmproxy在github上的地址https://github.com/mitmproxy/mitmproxy/releases

 3.1、mitmproxy安装

【windows安装mitmproxy工具】

windows操作系统需要安装Microsoft Visual C++ V14.0以上;使用pip工具安装

pip install mitmproxy

当我们在命令行中输入 mitproxy --version报如下错误

提示说的mitmdump经测试不太好用(不能查看过滤数据包,只能默默的抓包)。所以暂时使用 mitmweb。

当我们在命令行中输入mitmweb,浏览器会弹出如下界面

mitmweb -p 8888 #具体使用哪个端口,根据实际需求修改

C:\Users\jun>mitmweb --version
Mitmproxy: 4.0.4
Python:    3.7.2
OpenSSL:   OpenSSL 1.1.0i  14 Aug 2018
Platform:  Windows-10-10.0.17134-SP0

C:\Users\jun>mitmdump --version
Mitmproxy: 4.0.4
Python:    3.7.2
OpenSSL:   OpenSSL 1.1.0i  14 Aug 2018
Platform:  Windows-10-10.0.17134-SP0

 【linux安装mitmproxy工具】

https://github.com/mitmproxy/mitmproxy/releases页面下载tar.gz包

[root@wzy10 ywadmin]# tar -zxvf mitmproxy-4.0.1-linux.tar.gz 
mitmproxy
mitmdump
mitmweb
[root@wzy10 ywadmin]# mv mitmproxy mitmdump mitmweb /usr/bin/

[root@wzy10 ywadmin]# mv mitmproxy mitmdump mitmweb /usr/bin/
[root@wzy10 ywadmin]# 
[root@wzy10 ywadmin]# mitmproxy --version
Mitmproxy: 4.0.1 binary
Python:    3.6.3
OpenSSL:   OpenSSL 1.1.0h  27 Mar 2018
Platform:  Linux-3.10.0-862.el7.x86_64-x86_64-with-centos-7.5.1804-Core
[root@wzy10 ywadmin]# mitmweb --version  
Mitmproxy: 4.0.1 binary
Python:    3.6.3
OpenSSL:   OpenSSL 1.1.0h  27 Mar 2018
Platform:  Linux-3.10.0-862.el7.x86_64-x86_64-with-centos-7.5.1804-Core

[root@wzy10 ywadmin]# mitmdump --version
Mitmproxy: 4.0.1 binary
Python:    3.6.3
OpenSSL:   OpenSSL 1.1.0h  27 Mar 2018
Platform:  Linux-3.10.0-862.el7.x86_64-x86_64-with-centos-7.5.1804-Core
报错【ImportError: /lib64/libc.so.6: version `GLIBC_2.18’ not found】解决方案如下:
#wget https://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz
#tar -xvf glibc-2.18.tar.gz
#cd glibc-2.18
#mkdir build
#cd build
#../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
#make && make install

 mitmproxy-ca.pem  PEM格式的证书私钥
mitmdump-ca-cert.pem  PEM格式证书,适用于大多数非windows平台
mitmdump-ca-cert.p12   PKCS12格式证书,适用于windows平台
mitmdump-ca-cert.cert 与mitmdump-ca-cert.pem相同,知识改变了后缀,适用于android平台
mitmdump-dhparam.pem PEM格式证书的私钥文件,用于增强SSL安全性。 

3.2、android手机安装mitmproxy的证书

android手机安装证书,操作步骤如下:

第一步:在centos系统下运行mitmproxy -p 8889命令,表示启动mitmproxy且服务端口为8889

第二、在安卓手机【设置】--【无线网络】--【WLAN】,如下图:

第三步:在安卓手机的浏览器中输入mitm.it,进行如下操作

 

 

3.3、linux下mitmproxy工具的使用 

通过mitproxy命令回车后进入下面界面

(1)通过q命令表示退出mitmproxy;

(2)通过键盘中上下键可以选择某一条请求信息敲【Enter回车键】进入下图界面;

上图中可以通过鼠标选择或者【Tab键】进行切换选择Rquest、Response、Detail

(3)过滤数据包输入f,提示内容set view_filter= ;如果再次输入f就是清除过滤规则

   过滤所有baidu的请求,set view_filter=~d baidu.com
    过滤请求是post且请求url中有百度 set view_filter=~m post & ~u baidu

3.4、python代码与mitmproxy使用

首先我们编写python代码mitmproxy_test.py

from mitmproxy import ctx # 导入日志模块

# mitmdump -p 8889 -s mitmproxy_test.py

def request(flow): # 函数名必须是request,参数必须是flow
    # print(flow.request.headers)
    # ctx.log.info(str(flow.request.headers))
    ctx.log.warn(str(flow.request.headers))
    ctx.log.warn(str(flow.request.cookies))
    ctx.log.error(str(flow.request.url))
    ctx.log.error(str(flow.request.host))
    ctx.log.error(str(flow.request.method))
    ctx.log.error(str(flow.request.path))
    ctx.log.error(str(flow.request.port))
    ctx.log.error(str(flow.request.cheme)) # http或https

def response(flow):
    ctx.log.error(str(flow.response.status_code)) # 返回状态码
    ctx.log.error(str(flow.response.headers))
    ctx.log.error(str(flow.response.cookies))
    ctx.log.error(str(flow.response.text)) # 响应结果,也就是网页源代码

运行代码命令:mitmdump -p 8889 -s mitmproxy_test.py

猜你喜欢

转载自blog.csdn.net/u013089490/article/details/90287947