抓包工具 fiddler

文章目录

  • HTTP代理
  • fiddler
    • 安装
    • 整体界面
    • 工具栏
    • Session窗口
    • Inspectors
    • 命令行
    • Filters选项
    • Find查找
    • autoresponder 允许拦截指定规则的请求(重点)
    • composer
    • 命令行查找
    • 断点
    • 弱网测试
    • 抓 https
  • app抓包
    • 1.连接网络
    • 2.访问网页
    • 3.安装证书
    • 4.手机抓包
    • 代码
    • fiddler 快捷键

HTTP代理

  • 所谓的http代理其实就是代理客户机的http访问,主要代理浏览器访问页面

  • 代理服务器是介于浏览器和web服务器之间的一台服务器,有了它之后浏览器不是直接到web服务器去取回网页而是向代理服务器发出请求,Request信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器

  • 利用socket开发一个简易版HTTP代理服务器

      import socket
      import re
      server = socket.socket()
      server.bind('0.0.0.0',8181)
      server.listen(5)
      client = socket.socket()
      while True:
          conn,addr = server.accept()
          data = conn.recv(1024)
          print(data)
          url = re.findall(rb'Host:(.*?)\r',data[0])
          print(url)
          client.send(data)
          while True:
              res = client.recv(1024)
              if res:
                  conn.send(res)
              else:
                  break
    

fiddler

  • 参考文档:https://www.cnblogs.com/yyhh/p/5140852.html
  • 版本不同会有些差异,大同小异,作为借鉴
  • 大概原理就是在浏览器面前Fiddler伪装成一个HTTPS服务器,而在真正的HTTPS服务器面前Fiddler又装成浏览器,从而实现解密HTTPS数据包的目的。

安装

  • Fiddler官方网站下载安装即可:https://www.telerik.com/download/fiddler
  • 基本可以说目前最为全面和强大的抓包工具就是fiddler了,使用也不算麻烦
  • fiddler也在官网上提供了非常详细的文档和教程,如果使用的时候遇到问题,可以直接查阅官网文档
    抓包工具 fiddler_第1张图片

整体界面

抓包工具 fiddler_第2张图片

工具栏

抓包工具 fiddler_第3张图片
抓包工具 fiddler_第4张图片

Session窗口

抓包工具 fiddler_第5张图片

Inspectors

抓包工具 fiddler_第6张图片

命令行

抓包工具 fiddler_第7张图片

  • 在命令行输入 help 会自动跳转该页面https://docs.telerik.com/fiddler/knowledgebase/quickexec,该页面有详细的命令
  • 设断点处点一下是响应前断点,点两下是响应后断点,点三下取消断点

Filters选项

抓包工具 fiddler_第8张图片

  • 设置请求头
    抓包工具 fiddler_第9张图片
    抓包工具 fiddler_第10张图片

Find查找

抓包工具 fiddler_第11张图片

autoresponder 允许拦截指定规则的请求(重点)

  • autoresponder 可用于拦截某一请求,进行如下操作:

    • 重定向到本地的资源
    • 使用 fiddler 的内置响应
    • 自定义响应
  • 步骤如下图
    抓包工具 fiddler_第12张图片

  • AutoResponder 允许你拦截指定规则的请求,并返回本地资源或 Fiddler 资源,从而代替服务器响应,但非指定的请求会获取不到,并且连原本的 response 也获取不到

  • 第 4 步的 enable rules 勾选后再访问指定的请求就会被劫持

  • 这个玩意有很多匹配规则,如:

    1. 字符串匹配(默认):只要包含指定字符串(不区分大小写),全部认为是匹配
    符串匹配(baidu) 是否匹配
    ttps://www.baidu.com 匹配
    ttps://pan.baidu.com 匹配
    ttps://tupian.baidu.com 匹配
    1. 正则表达式匹配:以“regex:”开头,使用正则表达式来匹配,这个是区分大小写的

    字符串匹配(regex:.+.(jpg | gif | bmp ) $) | 是否匹配
    http://bbs.fishc.com/Path1/query=foo.bmp&bar | 不匹配
    http://bbs.fishc.com/Path1/query=example.gif | 匹配
    http://bbs.fishc.com/Path1/query=example.bmp | 匹配
    http://bbs.fishc.com/Path1/query=example.Gif | 不匹配

  • 更改后
  • 原图
  • 也可以用 js 文件制作类似 diaoyu ,比如将 js 前面加上如下代码:
var flag = confirm('恭喜中奖了,立即领取')
if(flag){
   window.location.href = 'http://www.baidu.com'
}else{
    window.location.href = 'https://www.bilibili.com/video/BV1h4411e7aY?p=1'	//李倩的mv视频
}

composer

抓包工具 fiddler_第13张图片
抓包工具 fiddler_第14张图片

命令行查找

抓包工具 fiddler_第15张图片

断点

抓包工具 fiddler_第16张图片

弱网测试

  • 勾选图中位置开启弱网
    抓包工具 fiddler_第17张图片
  • 当然也可以修改弱网网速,点击图中位置
    抓包工具 fiddler_第18张图片
  • 查找 simulate,找到图中位置,图中位置表示300ms/kb,更改即可
    抓包工具 fiddler_第19张图片

抓 https

  • 如果无法抓 https,勾选下图中的位置,解密 https
    抓包工具 fiddler_第20张图片

app抓包

  • 手机不同设置不同,会有不一样的,大同小异,作为借鉴

1.连接网络

首先确保手机和电脑在同一个网络

  1. 安装fiddler,并且进行配置:
    Tools>>options>>connections>>勾选allow remote computers to connect
  2. 查看本机ip地址:
    在cmd窗口中,输入ipconfig,查看以太网,可以看到IPv4地址:192.168.0.104(这个192.168.0.104是你的本机ip)
  3. 确保手机连接了WiFi,并且和电脑是在同一个局域网,在手机中,打开浏览器,访问http://192.168.0.104:8888(ip是第二步查看到的ip地址,替换成你自己的IP,port:8888是你在fiddler中配置的)
    注意:有些浏览器会显示打不开,更换其他浏览器就可以了

2.访问网页

  1. 访问成功的话,会显示:
    Fiddler Echo Service
    ……
    ……
    This page returned a HTTP/200 response
    To configure as a reverse proxy instead of seeing this page,see Reverse Proxy Setup
    You can download the Fiddler Root certificate
  2. 点击Fiddler Root certificate,下载证书

3.安装证书

  1. 安装证书(不同的手机不同的方式)
    • 部分手机可以直接点击安装
    • 部分手机需要设置>>WiFi(或WLAN)>>高级设置>>安装证书>>选中刚刚下载的证书文件Fiddler Root.cer>>确定
    • 设置(setting)>>更过设置>>系统安全>>从存储设备安装
    • 为证书命名,输入自己喜欢的名字,譬如fiddler,确定,显示证书安装完成
    • 安装完成后,在设置(setting)>>更多设置>>系统安全>>信任的凭证>>系统和用户两个tab页>>用户>>可以查看到DO_NOT_RUST_FiddlerRoot
      注意:不安装证书,抓取http的数据是没问题的,但是抓取不了https的数据

4.手机抓包

  1. 手机设置代理(不同的手机不一样)
    手机设置>>WiFi(或WLAN)>>选中连接的网络>>代理>>手动
    主机名:192.168.0.104 这个是刚刚在cmd中查看到的电脑的ip
    端口:8888
    不使用网络:这个不用管
    修改完成后,确认
  2. 打开fiddler的抓包,然后在手机端运行要抓包的app,会查看到fiddler中已经可以抓到app的数据了
    注意:
    1. 大部分app都可以直接抓包
    2. 少部分app没办法直接获取,需要wireshark,反编译,脱壳等方式去查找加密算法
    3. app抓包一般都是抓取到服务器返回的json数据包

代码

#抓抖音
import requests
url = ''    #在fiddler上复制
headers = {     #在fiddler上复制
    
}
response = requests.get(url,headers=headers)
with open('douyin.mp4','wb') as f:
    f.write(response.content)
#手机抓包HTTPS设置可以这样
#如果fiddler无法直接复制粘贴到pycharm,就先粘到别的地方,再粘到pycharm

抓包工具 fiddler_第21张图片

fiddler 快捷键

  • ctrl+x:清除所有会话(session)
  • shift+del:清除选中之外的所有会话
  • r:重新请求

你可能感兴趣的:(爬虫)