链接:https://pan.baidu.com/s/1gruMSVQ1qcx1WCmYINs2UA
提取码:yn0g
下载fiddler
APP抓包原理:
⒈客户端向服务器发起HTTPS请求
⒉抓包工具拦截客户端的请求,伪装成客户端向服务器进行请求
⒊服务器向客户端(实际上是抓包工具)返回服务器的CA证书
⒋抓包工具拦截服务器的响应,获取服务器证书公钥,然后自己制作一张证书。
将服务器证书替换后发送给客户端(这一步,抓包工具拿到了服务器证书的公钥)
⒌客户端接收到服务器(实际上是抓包工具)的证书后,生成一个对称秘钥。
用抓包工具的公钥加密,发送给"服务器"(抓包工具)
⒍抓包工具拦截客户端的响应,用自己的私钥解密对称秘钥。
然后用服务器证书公钥加密,发送给服务器(这一步,抓包工具拿到了对称秘钥)
⒎服务器用自己的私钥解密对称秘钥,向客户端(抓包工具)发送响应
⒏抓包工具拦截服务器的响应,替换成自己的证书后发送给客户端
爬虫的本质就是"骗"过服务器,各种反反爬手段就是增强信任的过程。
常用抓包工具:
⒈ fiddler
⒉ mitmproxy
⒊ charles
http://www.imooc.com/article/287323?block_id=tuijian_wz
"""
如果要爬取app的数据
首先要安装手机模拟器
如:
雷电模拟器
⒈ 50%的app,通过抓包软件就可以分析出抓取参数并抓取到信息。
⒉ 30%的app,可能需要适当的反编译,分析出加密算法并抓取到信息。
⒊ 10%的app,可能加固,需要脱壳,然后反编译,分析出加密算法并抓取到信息
⒋ 10%的app,通过各式各样的签名,证书,设备绑定等方法,隐藏加密算法。
"""
㈠.记录本机的IP
打开cmd窗口,输入ipconfig获取你的IPV4地址
㈡.设置模拟器
打开模拟器,进入"桌面"菜单栏,选择"系统应用"。
点击"设置",选择"WLAN"
长按鼠标左键,选择"修改网络"
"代理"选择"手动",输入自己的IP和Fiddler的端口号8888
进行保存
㈢.使用模拟器默认浏览器打开http://IP:端口号
点"FiddlerRoot certificate"安装证书
安装完毕之后,打开模拟器上的浏览器,输入www.baidu.com
在Fiddler中抓取到数据,代表环境配置已经完毕
"提示":
在抓包过程中,fiddler不能关闭,否则手机网络不可用
㈣.设置过滤
⒈手机上设置代理后,这时候fiddler上抓到的是PC和App所有的请求。
如果PC上打开网址,会出现很多数据,这时候就需要开启过滤功能。
⒉打开fiddler > Tools > Fiddler Options > HTTPS > ...from remote clients only
勾选这个选项就行
"""
...from all processes:抓所有的请求
...from browsers only:只抓浏览器的请求
...from non-browsers only:只抓非浏览器的请求
...from remote clients only:只抓远程客户端请求
"""
㈤.Fiddler抓包简介
Fiddler想要抓到数据包,要确保"File"下的"Capture Traffic"是开启的。
开启后在左下角会有Capture显示,当然也可以直接点击左下角的图标来开启/关闭抓包功能。
Fiddler开始工作了,抓到的数据包就会显示在列表里面,下面总结了这些都是什么:
⒈左边
名称 含义
\# 抓取HTTP Request的顺序,从1开始,依次递增
Result HTTP状态码
Protocol 请求使用的协议,如HTTP/HTTPS/FTP等
Host 请求地址的主机名
URL 请求资源的位置
Body 该请求的大小
Caching 请求的缓存过期时间或者缓存控制值
Content-Type 请求响应的类型
Process 发送此请求的过程:进程ID
Comments 允许用户为此次会话添加备注
Custom 允许用户设置自定义值
以下是图标含义:
⒉右边:
随意点击一个请求,就可以看到Statistics关于HTTP请求的性能以及数据分析(不可能安装好Fiddler后,一条请求都没有)
⒊Inspectors查看数据内容
Inspectors是用于查看会话的内容,上半部分是请求的内容,下半部分是响应的内容。
⒋AutoResponder允许拦截指定规则的请求
· AutoResponder允许你拦截指定规则的请求,并返回本地资源或Fiddler资源,从而代替服务器响应。
看下图5步
我将“baidu”这个关键字与我电脑“f:\Users\YukiO\Pictures\boy.jpeg”这张图片绑定了,
点击Save保存后勾选Enable rules,再访问baidu,就会被劫持。
这个玩意有很多匹配规则,如:
⑴.字符串匹配(默认):只要包含指定字符串(不区分大小写),全部认为是匹配
⑵.正则表达式匹配:以“regex:”开头,使用正则表达式来匹配,这个是区分大小写的
㈤.Composer自定义请求发送服务器
Composer允许自定义请求发送到服务器,可以手动创建一个新的请求,也可以在会话表中,拖拽一个现有的请求。
Parsed模式下你只需要提供简单的URLS地址即可(如下图,也可以在RequestsBody定制一些属性,如模拟浏览器User-Agent)
㈥.Filters请求过滤规则
Fiters是过滤请求用的,左边的窗口不断的更新,当你想看你系统的请求的时候
你刷新一下浏览器,一大片不知道哪来的请求,看着碍眼,它还一直刷新你的屏幕。
这个时候通常用过滤规则来过滤掉那些不想看到的请求。
勾选左上角的User Filters开启过滤器,这里有两个最常用的过滤条件:Zone和Host
⒈Zone指定只显示内网(Internet)或互联网(Internet)的内容
2、Host 指定显示某个域名下的会话:
如果框框为黄色(如图),表示修改未生效,点击红圈里的文字即可
㈦.Timeline请求响应时间
在左侧会话窗口点击一个或多个(同时按下Ctrl键),
Timeline便会显示指定内容从服务端传到客户端的时间
Fiddler设置解密HTTPS的网络数据
Fiddler可以通过伪造CA证书来欺骗浏览器和服务器。
大概原理就是在浏览器面前Fiddler伪装成一个HTTPS服务器,
而在真正的HTTPS服务器面前Fiddler又伪装成浏览器,
从而实现解密HTTPS数据包的目的
而解密HTTPS需要手动开启,依次点击:
⒈Tools -> Fiddler Options -> HTTPS
⒉勾选Decrypt HTTPS Traffic
⒊点击OK
Fiddler抓取Iphone/Android数据包
想要Fiddler抓取移动端设备的数据包,其实很简单
先来说说移动设备怎么去访问网络,看了下面这张图,就明白了
可以看得出,移动端的数据包,都是要走"wifi"出去,所以我们可以把自己的电脑开启热点。
将手机连上电脑,Fiddler开启代理后,让这些数据通过Fiddler,Fiddler就可以抓到这些包,然后发给路由器(如图):
⒈打开wifi热点,让手机连上(这里用的360wifi,其实随意一个都行)
⒉打开Fiddler,点击菜单栏中的[Tools] -> [Fiddler Options]
⒊点击[Connections],设置代理端口为8888,
勾选Allow remote computers to connect,点击OK
⒋这时在Fiddler可以看到自己本机无线网卡的IP了
(要是没有的话,重启Fiddler,或者可以在cmd中ipconfig命令找到自己的IPV4IP)
⒌在手机端链接PC的wifi,并且设置代理IP与端口
(代理IP就是上图的IP,端口就是Fiddler的代理端口8888)
⒍访问网页输入代理IP和端口,下载Fiddler的证书,点击下图"FiddlerRoot certificate"
"""
注意:
如果打开浏览器碰到类似下面的报错,请打开Fiddler的证书解密模式(Fiddler设置解密HTTPS的网络数据)
No root ceryificate was found . Have you enabled HTTPS traffic decryption in Fiddler yet?
"""
⒎安装完了证书,可以用手机访问应用,就可以看到截取到的数据包了。
(下图选中是布卡漫画的数据包,下面还有QQ邮箱的)
"Fiddler内置命令与断点"
Fiddler还有一个藏的很深的命令框,就是眼前,还蛮好用的,整理下记录在这里
Fiddler断点功能就是将请求截获下来,但是不发送,这个时候你可以干很多事情。
比如说:
把包改了,再发送给服务器
更多示例演示,请点击
https://www.cnblogs.com/yyhh/p/5140852.html