上次说了fiddler的抓包和参数介绍,通过fiddler抓包工具可以完成app和web端的数据,这次介绍另一款抓包公司mitmproxy,可以和python语言结合通过爬虫抓取数据。
源码:​​​https://github.com/limingios/netFuture/blob/master/mitmproxy/​

「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)_linux

mitmproxy

  • 官方

​https://www.mitmproxy.org/​

「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)_linux_02

  • 介绍

mitmproxy is a free and open source interactive HTTPS proxy.

「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)_python_03

mitmproxy 就是用于MITM的proxy
中间人攻击(Man-in-the-MiddleAttack,简称“MITM攻击”)是一种“间接”的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为“中间人”。

「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)_python_04

  1. 正常的代理一样转发请求,保证服务端和客户端的通信
  2. 拦截请求,修改请求,拦截返回,修改返回
  3. 可以载入自定义的mitmproxy
  4. fiddler只能拦截请求,修改请求,篡改数据,但是不能载入自定义的mitmproxy
  5. 随着安全的要求,现在越来越多的网站使用https请求,特别是ios客户端要求必须服务端使用https,所以必须让客户端和服务端都信任中间人
  6. 请用:mitmproxy 做测试使用,请勿使用灰产哦!

安装

  • 环境安装

感觉windows 太麻烦了,还是建议使用linux

  1. 基于pyhon
  2. windows操作系统需要安装Microsoft Visual C++ V14.0以上
  3. linux操作系统直接安装pyhon就可以了。

windows 安装

这里不做介绍了,真心没有linux好!

linux 安装

通过vagrant的方式安装虚拟机

系统类型

IP地址

用户

CPU

Memory

Hostname

Centos7

192.168.77.100

root

2

4G

mitmproxy

  • 三台机器mac开通远程登录root用户下
#设置 PasswordAuthentication yes
vi /etc/ssh/sshd_config
sudo systemctl restart sshd

「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)_linux_05

  • 修改dns
# 修改配置文件
vi /etc/resolv.conf
# 修改成:
nameserver 8.8.8.8
search localdomain
  • 修改网络
service network restart
  • 安装wget和pip3
yum -y install wget
wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz#md5=3a73c4188f8dbad6a1e6f6d44d117eeb
tar -zxvf pip-8.0.2.tar.gz
cd pip-8.0.2
python3.6 setup.py build
python3.6 setup.py install

「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)_服务端_06

安装mitmproxy

  • 安装mitmproxy
#安装python3.6的devel
yum install python36-devel
yum install gcc libffi-devel openssl-devel -y
# 升级pip3
pip3 install --upgrade pip
# 安装 mitmproxy
pip3 install mitmproxy

「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)_linux_07

「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)_python_08

  • 查看mitmproxy的版本
mitmproxy --version
mitmdump --version
mitmweb --version

「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)_服务端_09

mitmproxy的使用

  • mitmproxy

安装好了mitmproxy 直接查看,直接输入mitmproxy,默认端口是8080,

mitmproxy

「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)_linux_10

打开google浏览器的插件switchyOmega

「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)_服务端_11

访问baidu提示,需要安装证书哦看来

「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)_python_12

如何安装mitmproxy的证书,​​浏览器输入mitm.it​​,根据自己的操作系统选择要安装的地址:mac,windows,android,other

「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)_linux_13

演示windows下安装证书

「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)_python_14

双击证书

「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)_linux_15

「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)_服务端_16

不用输入密码

「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)_服务端_17

讲所有的证书都放入下列存储

「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)_python_18

「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)_linux_19

「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)_python_20

「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)_服务端_21

「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)_linux_22

「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)_服务端_23

「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)_linux_24

浏览器关闭重新打开

  • 已经可以打开了

「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)_python_25

查看mitm的界面

  • 列表界面
  • 「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)_python_26

  • 键盘选择

点击键盘回车,进入

「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)_python_27

进入后,里面分为request,repsonse,detail

「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)_linux_28

退出esc,然后输入q 返回列表

进入列表后,输入f键

「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)_linux_29

查看mitmproxy的三大组件

  • mitmproxy

上边介绍了 不在详细说了。

  • mitmdump
#记录的请求都放入指定的文件夹下
mitmdump -w 文件路径

「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)_python_30

「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)_linux_31

  • mitmweb

这个windows查看比较方便。访问http://127.0.0.1:8081

mitmweb

「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)_python_32

「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)_python_33

「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)_服务端_34

PS:更多mitmproxy后续强大的功能,在后续的实践中,咱们一起详解吧。实现出真知。

「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)_python_35