网站与APP抓包分析1 基础原理与工具使用

网站与APP抓包分析1 基础知识与工具

关键词:TCP、HTTP、HTTPS、HTTPDNS、Chrome、tshark、Charles、fidder、VirtalXposed

1、常用通信协议基础

1.1、TCP/IP协议族简介

TCP/IP是一个协议族的统称,里面包括了TCP(传输控制协议)和IP(网际协议/因特网互联协议)等一组网络协议。
网站与APP抓包分析1 基础原理与工具使用

上图来源于互联网

TCP/IP协议族可分为应用层、传输层、网络层、网络接口层,即为四层模型(协议)。
网站与APP抓包分析1 基础原理与工具使用

TCP/IP协议的发送主机从上自下将数据按照协议封装,而接收数据的主机则按照协议反向读取。
由于这种结构非常接近与“栈”的概念,所以也把TCP/IP协议族称为TCP/IP协议栈。
网站与APP抓包分析1 基础原理与工具使用
上图来源于互联网

数据包按照层级由上到下层层封装依次为:
应用层:为具体传输的数据内容,包含HTTP、FTP等协议
传输层:包含TCP和UDP协议,负责标记数据序列号和端口等信息
网络层:主要为IP协议,负责对数据加上IP地址等信息
数据链路层:为数据包加入一个以太网协议头,并进行编码
物理层:负责网络的传输,这个层次的定义包括网线的制式,网卡的定义等。
网站与APP抓包分析1 基础原理与工具使用
上图来源于互联网

图形与指标切换TCP 协议在 IP 协议提供的主机间通信功能的基础上,完成这两个主机上进程对进程的通信。同时TCP是面向连接的通信协议,通过三次握手建立连接,通讯完成时要拆除连接,因此只能用于端到端的通讯(区分于UDP协议)。
TCP数据包中包括序号和确认机制,所以未按照顺序收到的包可以被排序,而损坏或者丢失的包将会被重传,因此TCP协议具有高度的可靠性。
当IP数据包中有已经封好的TCP数据包,那么IP将把它们向‘上’传送到TCP层。 TCP将包排序并进行错误检查,同时实现虚电路间的连接。TCP将它连接建立的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。

1.2、TCP协议

1.2.1、TCP报文结构

TCP报文结构
网站与APP抓包分析1 基础原理与工具使用
上图来源于互联网

TCP报文头部结构:
网站与APP抓包分析1 基础原理与工具使用
上图来源于互联网

TCP报文头部信息结构说明:

编号 名称 说明
1 源端口/目的端口 标识报文的返回地址和接收方计算机上的应用程序接口
2 序号/确认号 序号是本报文段发送的数据组的第一个字节的序号。在TCP传送的流中,每一个字节一个序号。确认号即ACK,指明下一个期待收到的字节序号,表明该序号之前的所有数据已经正确无误的收到。
3 数据偏移/首部长度 由于首部可能含有可选项内容,因此TCP报头的长度是不确定的,报头不包含任何任选字段则长度为20字节,最大长度为60字节。首部长度也叫数据偏移,是因为首部长度实际上指示了数据区在报文段中的起始偏移值。
4 保留 为将来定义新的用途保留,现在一般置0。
5 控制位 包含:URG ACK PSH RST SYN FIN,共6个标志位,每一个标志位表示一个控制功能。
6 窗口 滑动窗口大小用来告知发送端接受端的缓存大小,以此控制发送端发送数据的速率,从而达到流量控制。滑动窗口大小标记是一个16bit字段(最大为16个1),因而窗口大小最大为65535字节。
7 校验和 校验和(奇偶校验)是对整个的TCP 报文段,包括 TCP 头部和TCP 数据,以 16 位字进行计算所得。由发送端计算和存储,并由接收端进行验证。
8 紧急指针 只有当 URG 标志置 1 时紧急指针才有效。紧急指针是一个正的偏移量,和顺序号字段中的值相加表示紧急数据最后一个字节的序号。 TCP 的紧急方式是发送端向另一端发送紧急数据的一种方式。
9 可选项 可选字段包含最长报文大小,时间戳等选项。
10 数据包 TCP 报文段中的数据部分是可选的。例如在一个连接建立和一个连接终止时,双方交换的报文段仅有TCP 首部;在处理超时的许多情况中,也会发送不带任何数据的报文段。

TCP报文头部信息解析实例:
网站与APP抓包分析1 基础原理与工具使用

1.2.2、TCP报文控制位

TCP报文控制位信息结构说明:

编号 名称 说明
1 URG 紧急指针标志,为1时表示紧急指针有效,为0则忽略紧急指针。
2 ACK 确认序号标志,为1时表示确认号有效,为0表示报文中不含确认信息,忽略确认号字段。
3 PSH push标志,为1表示是带有push标志的数据,指示接收方在接收到该报文段以后,应尽快将这个报文段交给应用程序,而不是在缓冲区排队。
4 RST 重置连接标志,用于重置由于主机崩溃或其他原因而出现错误的连接。或者用于拒绝非法的报文段和拒绝连接请求。
5 SYN 同步序号,用于建立连接过程。在连接请求中,SYN=1和ACK=0表示该数据段没有使用捎带的确认域,而连接应答捎带一个确认,即SYN=1和ACK=1。
6 FIN Finish标志,用于释放连接,为1时表示发送方已经没有数据发送了,即关闭本方数据流。

TCP报文控制位信息结构说明解析实例:
网站与APP抓包分析1 基础原理与工具使用

注:灰色背景部分为数据流中TCP头部信息,蓝色标记部分(8002)为标记位内容。

1.2.3、TCP连接过程

TCP协议通过三次握手过程建立连接后进行数据传输,完成后通过四次挥手过程断开当前会话连接。

连接建立过程中以SYN值标记请求,以ACK标记响应。
TCP会话建立过程中:
(1)首先由客户端发送建链请求,此时SYN=1(代表请求建立由客户端到服务端的连接),ACK=0(代表无需确认内容);
(2)服务端收到上述信息后,发送信息ACK=1(表示已收到上述请求),SYN=1(表示请求建立由服务端到客户端的连接);
(3)客户端收到服务端响应后,发送ACK=1(表示收到服务端的建链请求),此时连接建立完成。
网站与APP抓包分析1 基础原理与工具使用

1.3、HTTP协议

1.3.1、HTTP协议简介

超文本传输协议是一种客户端和服务端请求和应答的标准,是应用层面向对象的无状态通信协议。
HTTP协议在TCP连接的基础上使用统一资源标识符(URI)来建立连接和传输数据。
网站与APP抓包分析1 基础原理与工具使用

(1)客户端与服务端:
HTTP客户端(Client)是一个应用程序(Web浏览器或其他任何客户端),通过连接到服务器达到向服务器发送一个或多个HTTP的请求的目的。
HTTP服务器(Service)是一个应用程序(通常是一个Web服务,如Apache Web服务器等),通过接收客户端的请求并向客户端发送HTTP响应数据。
(2)请求内容:
HTTP请求是客户端往服务端发送请求动作,告知服务器自己的要求;
HTTP请求由状态行、请求头、请求正文三部分组成;
状态行:包括请求方式(Method)、资源路径(URL)、协议版本(Version);
请求头:包括一些访问的域名、用户代理、Cookie等信息;
请求正文:就是HTTP请求的数据。
(3)响应内容:
HTTP响应是服务端收到了客户端发来的请求后,根据请求中的要求,做出具体的动作,将结果回应给客户端的过程;
HTTP响应由三部分组成:状态行、响应头、响应正文;
状态行:包括协议版本Version、状态码StatusCode、回应短语;
响应头:包括搭建服务器的软件,发送响应的时间,回应数据的格式等信息;
响应正文:就是响应的具体数据。
(4)HTTP协议交互实例解析:
网站与APP抓包分析1 基础原理与工具使用

网站与APP抓包分析1 基础原理与工具使用

网站与APP抓包分析1 基础原理与工具使用

1.3.2、HTTP协议常用方法

编号 名称 说明
1 GET 向特定的资源发出请求,用于请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL传参给服务器。GET中如果出现用户账号密码或MAC等可以唯一标记一个用的信息,将被视为安全隐患。
2 POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。当前DPI话单无法解析POST中内容,所以POST传输账号密码等信息可视为加密方式。
3 CONNECT HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。此方法在抓包分析是可能会经常遇到,某些HTTS协议的内容会以这种格式在Wireshark中显示。
4 PUT 向指定资源位置上传其最新内容,传输文件、报文主体中包含文件内容,保存到对应URI位置。
5 HEAD 向服务器请求获取报文首部,响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息,一般用户验证URI是否有效。
6 DELETE 请求服务器删除 Request-URI 所标识的资源。
7 OPTIONS 返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向服务器发送'*'的请求来测试服务器的功能性。
8 TRACE 回显服务器收到的请求,主要用于测试或诊断。

注:在日常的网页和APP分析中,除GET、POST、CONNECT之外的方法通常极为少见。

1.3.3、HTTP协议响应码分类

编号 名称 说明
1 1** 信息,服务器收到请求,需要请求者继续执行操作(很少出现)
2 2** 成功,操作被成功接收并处理
3 3** 重定向,需要进一步的操作以完成请求,服务端通常会携带一个Location给客户端用来指向新的URL,此过程经常被称为调度。
4 4** 客户端错误,请求包含语法错误或无法完成请求
5 5** 服务器错误,服务器在处理请求的过程中发生了错误
6 (0-5) 不在标准范围之内,通常被用于某些特定场景

HTTP响应码实例解析:
网站与APP抓包分析1 基础原理与工具使用

1.4、HTTPS协议

1.4.1、HTTPS协议简介

HTTP协议被用于在Web浏览器和网站服务器之间传递信息。
HTTP以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。(除非在传输装好密码之前在客户端直接解密,然后传输加密内容,但客户端可通过破解安装包的方式获取原始算法,所以这种方式并不安全)。
TLS协议由:TLS 记录协议(TLS Record)和 TLS握手协议(TLS Handshake)组成
HTTPS超文本传输协议,在HTTP协议基础上加入了SSL层。即HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。SSL(Secure Sockets Layer 安全套接层)及其继任者传输层安全(Transport Layer Security TLS)是为网络通信提供安全及数据完整性传输的一种安全协议。TLS与SSL在传输层对网络连接进行加密。
网站与APP抓包分析1 基础原理与工具使用
上图来源于互联网

1.4.2、HTTPS认证流程

客户端请求:client向server发送请,连接到server的443端口。
服务端公钥证书:服务端须有一套数字证书(可自制或申请,区别为自己颁发的证书需客户端验证通过,使用受信任的公司申请的证书则不会弹出提示页面)这套证书可视为一对公钥和私钥。
传送证书:这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间、服务端的公钥,第三方证书认证机构(CA)的签名,服务端的域名信息等。
客户端解析证书:这部分工作是由客户端的TLS来完成的,首先会验证公钥是否有效(比如颁发机构,过期时间等等),如证书异常,则会弹出警告,提示证书存在问题。如证书正常,则生成一个随即值(秘钥)。然后用证书对该随机值进行加密。
传送加密信息:传送的是用证书加密后的秘钥,服务端得到此秘钥后,客户端和服务端的通信将通过这个随机值来进行加密解密。
服务端加密信息:服务端用私钥解密秘密秘钥,得到了客户端传过来的私钥,然后把内容通过该值进行对称加密。
传输加密后的信息:这部分信息是服务端用私钥加密后的信息,可以在客户端被还原。
客户端解密信息:客户端用之前生成的私钥解密服务端传过来的信息。
网站与APP抓包分析1 基础原理与工具使用
上图来源于互联网

HTTPS认证流程实例解析:
网站与APP抓包分析1 基础原理与工具使用

1.4.3、HTTPS常用分析工具

网站与APP抓包分析1 基础原理与工具使用

1.5、DNS域名解析协议

1.5.1、DNS域名解析协议简介

域名解析是把域名指向网站空间IP,即通过注册的域名可以访问到网站,互联网中的地址是数字的IP地址,域名的作用主要是为了便于记忆。
域名解析服务由DNS服务器完成,是把域名解析到一个IP地址的过程,然后在此IP地址的主机上将一个子目录与域名绑定。
网站与APP抓包分析1 基础原理与工具使用
上图来源于互联网

DNS域名解析协议实例解析:
网站与APP抓包分析1 基础原理与工具使用

网站与APP抓包分析1 基础原理与工具使用

1.5.2、HttpDNS简介

HttpDNS域名解析方式即是将域名解析的协议由 DNS协议换成了 Http协议,用于绕过LocalDNS,直接获取到用户 IP,以保证将用户引导的访问最快或者服务端指定的 IDC节点上, 排除域名解析异常的困扰。
实现原理通常为:客户端通过HTTP协议中的GET请求直接访问服务端的 HttpDNS服务接口,服务端会根据用户上传的本地信息(例如客户端IP地址等信息)进行匹配或者直接返回业务在域名配置管理系统上配置的访问延迟最优的 IP地址列表(基于容灾考虑,还是保留次选使用运营商 LocalDNS解析方式)。
(1)解决的问题:
Local DNS 劫持:由于 HttpDns 是通过 IP 直接请求 HTTP 获取服务器地址,不存在向LocalDNS询问domain解析过程,所以避免了劫持问题。
平均访问延迟下降:由于是IP直接访问省掉了一次domain解析过程,通过智能算法排序后找到最快节点进行访问。
用户连接失败率下降:通过算法降低以往失败率过高的服务器排序,通过时间近期访问过的数据提高服务器排序,通过历史访问成功记录提高服务器排序。
(2)过程特征:
用户上传本地信息以及获取业务IP信息通常使用GET方式。
服务端返回的业务IP信息通常包含在HTTP响应或者其XML文档中。
IP信息文件通常为相关业务服务器名称或者域名与IP地址的键值对。
用于获取该信息的GET请求中通常会包含某些关键字如newgetdns或httpdns等。
(2)HttpDns实例解析(以今日头条APP为例):
请求:
http://dm.bytedance.com/get_domains/v4/?abi=arm64-v8a&ac=wifi&channel=xiaomi&aid=13&app_name=news_article&version_code=697&version_name=6.9.7&device_platform=android&ab_feature=94563%2C102749&abflag=1&ssmix=a&device_type=Redmi+6+Pro&device_brand=xiaomi&language=zh&os_api=27&os_version=8.1.0&manifest_version_code=697&resolution=1080*2150&dpi=440&update_version_code=69716&_rticket=1541659893362&plugin=0&rom_version=miui_v10_8.11.1
响应:
网站与APP抓包分析1 基础原理与工具使用

1.6、 数据交互常用编码方式简介

通常可根据其显示样式初步判断编码方式,可使用网上的各类在线工具进行尝试反编译,例如“站长之家”、“在线工具”等
例如在线工具网站:https://tool.lu/encdec/

1.6.1、urlencode

URL编码(URL encoding),也称作百分号编码(Percent-encoding), 是特定上下文的统一资源定位符 (URL)的编码机制。
将需要转码的字符转为16进制,然后从右到左,取4位(不足4位直接处理),每2位做一位,前面加上%,编码成%XY格式。
适用于统一资源标识符,也用于通过HTTP的请求操作(request)提交HTML表单数据。

1.6.2、Base64encode

Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。
编码后内容通常为:小写字母a-z、大写字母A-Z、数字0-9、符号”+”、”/”作为基本基础集的编码方式。

1.6.3、MD5

MD5消息摘要算法(MD5 Message-Digest Algorithm)为一种被广泛使用的密码散列函数,可以产生出一个128位的散列值(hash value),用于确保信息传输完整一致。
MD5特性:压缩性:无论数据长度是多少,计算出来的MD5值长度相同;容易计算性:由原数据容易计算出MD5值;抗修改性:即便修改一个字节,计算出来的MD5值也会巨大差异;抗碰撞性:知道数据和MD5值,很小概率找到相同MD5值相同的原数。

2.内容分发网络与资源调度

2.1、内容分发网络与资源调度

(1)内容分发网络:
内容分发过程通常为通过实现用户对网站的就近访问及网络流量的智能分析,将本节点资源库中的指定内容,根据业务运营商定义的内容分发策略向下层节点或用户进推送。
内容分发网络一般采用分布式的架构,根据实际情况,可以构成中心-边缘层次结构或分布式结构。通常运营商搭建的内容分发网络为集中式部署,即整个体系集中部署在一个或几个有限的节点。
国内常见内容分发平台包括:阿里云、腾讯云、华为云、百度云等平台。部分互联网企业也拥有自建云平台用于业务分发,例如今日头条(字节跳动CDN)与美团(美团云)等。
(2)资源调度方式:
内容分发平台中的资源存储节点通常分布于各大运营商的各省节点,以期为用户提供就近服务。
当用户发起资源方式请求时,内容分发网络中控制节点(重定向服务节点)将会根据用户所在位置以及网络情况和资源分布情况,综合判断后向客户端提供资源所在位置。
资源分发(调度)方式通常通过HTTP协议的302相应过程,或根据既定算法构造URL来实现。

2.2、用户资源访问流程

根据访问内容不同,用户资源访问通过不同的路径去往不同的内容源。其访问的资源位置的控制也称为调度。
根据ICP的分发策略、资源本身属性等原因,资源分布于不同节点,其质量将直接影响用用户感知。
用户访问位于本地的资源的感知质量通常要更好,同时可节约网络出口带宽。
资源本地化的实现,可以通过ICP建立数据节点、三方CDN厂商、主动缓存等方式。
网站与APP抓包分析1 基础原理与工具使用
上图来源于互联网

2.3、资源调度与分布示例

2.3.1、通过HTTP协议3**过程进行资源调度

以某网站内图片请求为例:
其中首次访问图片URL为HTTP请求,由于需要使用安全协议,服务端通过301重定向重定义了URL,并要求客户端重新访问。
资源分发方式与上述过程基本 一致,仅目的不同。

2.3.2、通过DNS域名解析(不同域名)进行资源调度
以“今日头条APP”为例:
其中域名“*tt.bytecdn.cn”为“字节跳动CDN”的域名,其中资源基本上为页面图片图标,其解析地址部分在四川移动,有部分解析到了重庆移动。
其中域名“.pstatp.com”与“ .swcdn-tos.pstatp.com”为今日头条的资源下载域名,其中大部分域名解析首地址归属为四川移动,有部分解析至其他省份(测试使用宽带网络归属为四川移动)。
网站与APP抓包分析1 基础原理与工具使用

2.4、资源调度与分布示例

2.4.1、通过HTTPDNS进行资源调度

以今日头条APP为例:
通过HTTP GET加载配置文件的方式进行HttpDNS解析与请求URL构造。其中包括固定域名与IP地址的DNS映射信息(示例中红色部分),以及HTTPS DNS,部分API接口的URL构造方式
网站与APP抓包分析1 基础原理与工具使用

2.4.2、通过客户端构造请求资源调度

以今日头条APP为例:
在配置文件中设定资源所在URL
••••action":3,"desc":"","extra":{}},{"action":7,"desc":"","extra":{}},{"action":9,"desc":"","extra":{}}],"aggr_type":1,"allow_download":false,"article_sub_type":0,"article_type":0,"article_url":"http://toutiao.com/group/6666719190537208334/","article_version":0,"ban_comment":0,"behot_time":1552227319,
网站与APP抓包分析1 基础原理与工具使用

3、常规工具安装与使用

3.1、常用抓包与分析工具

编号 名称 说明
1 浏览器内置开发者工具 调用快捷键F12或Ctrl+Shift+I。浏览器内置开发者工具,网络数据交互分析通常使用其中的NetWork模块。
2 Wireshark 网络封包分析软件,为通用网络通信抓包工具。Wireshark技术能够处理单片报文,支持协议数量多,处理速度快、适用大部分应用的场景。
3 Fidder Fiddler代理抓包工具能够监控检测点之间的通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件);支持通过代理方式解析HTTPS协议内容。
4 charles 相当于一个在服务器和客户端之间的“过滤器”,是与Fidder相同类型的代理抓包工具。与Fidder区别在于其界面很友好、可跨平台(适用windowsLinuxMac)、可以自定义上下行网速、ExternalProxy、反向代理配置简单、可解析AMF协议数据等。
5 VirtualXposed 基于VirtualApp和epic在非ROOT环境下运行Xposed模块的实现。Xposed框架是一套开源的、在Android高权限模式下运行的框架服务,可以在不修改APK文件的情况下影响程序运行(修改系统)的框架服务,相当于在手机上安装一个虚拟空间。
6 抓包精灵 运行于Andiord平台的只能抓包工具。其支持HTTPS协议的解析(采用代理的方式),应用配置简单,但功能较弱分析能力有限。

3.2、浏览器内置工具

浏览器内置开发者工具,网络数据交互分析通常使用其中的NetWork模块。
浏览器F12、Fn+F12或Ctrl+Shift+I快捷键打开开发者工具。网络请求记录(Network)选项将记录当前网页的请求与响应记录。显示内容包含有请求、响应、质量、网络等信息。
网站与APP抓包分析1 基础原理与工具使用

网站与APP抓包分析1 基础原理与工具使用

3.3、Wireshark内置tshark命令行工具

(1)tshark工具:
Wireshark安装目录下内置命令行工具tshark.exe,通过cmd工具进入对应路径后,以[tshark –参数 待解析文件名 –参数]的命令格式调用tshark工具,对文件包进行解析,已达到结果或过程输出或统计的目的。
网站与APP抓包分析1 基础原理与工具使用

(2)常用tshark命令:
DNS解析结果:
tshark -r ..\XXXX.pcapng -e frame.number -e dns.qry.name -e dns.a -E separator=" " -T fields -2 -R "dns.a" -q
获取IP列表:
tshark -r ..\XXXX.pcapng -z endpoints,ip -n -q
HTTP请求记录:
tshark -r ..\XXXX.pcapng -2 -R "http.request" -T fields -e http.host -e ip.dst -e http.request.uri -e http.request.method -e tcp.dstport -q
错误HTTP记录:
tshark -r ..\XXXX.pcapng -2 -R "http.response and not (http.response.code == 200 or http.response.code == 206 or http.response.code == 301 or http.response.code == 302 or http.response.code == 304 or http.response.code == 101)" -z conv,tcp
HTTP视频请求:
tshark -r ..\XXXX.pcapng -2 -R "http.request" -q -T fields -e http.host -e ip.dst -e http.request.uri -e http.request.method | findstr "\.flv \.f4v \.hlv \.fhv \.letv \.ts \.avi \.mov \.rm \.rmvb \.ram \.wmv \.mkv \.mp3 \.mp4 \.wma \.mid \.asf \.wav \.asx \.m2ts"

3.4、Charles工具配置

3.4.1、Charles工具PC端配置

Charles安装流程与常用软件安装流程一致,过程中无需特殊配置,按默认步骤执行即可。
Proxy> SSL Proxing Settings:设置SSL代理选择的域名等(默认为“*”,保持不变即可)。
网站与APP抓包分析1 基础原理与工具使用
Proxy> Proxy Settings:设置HTTP代理服务端口(默认的HTTP Proxy 端口号是 8888,可以不做修改)。
网站与APP抓包分析1 基础原理与工具使用
Help>SSL Proxying>Install charles Root Certificate:安装证书。
网站与APP抓包分析1 基础原理与工具使用

3.4.2、Charles工具手机端配置

保持手机与PC端处于同一网络,通过浏览器访问Charles配置信息中显示的地址,如下图所示,下载证书并正确安装,完成后访问网络,charles监控界面会显示数据交互信息。
网站与APP抓包分析1 基础原理与工具使用

3.4.3、Charles显示界面内容

网站与APP抓包分析1 基础原理与工具使用

3.5、Fidder工具配置

Fidder安装流程与常用软件安装流程一致,过程中无需特殊配置,按默认步骤执行即可

3.5.1、Fidder工具PC端配置

(1)进行抓取HTTPS设置:
进入HTTPS配置选项:Tools > Options>HTTPS
选中Capture HTTPS CONNECTs (捕捉HTTPS连接)
选中Decrypt HTTPS traffic(解密HTTPS通信)
要用Fiddler获取本机所有进程的HTTPS请求,...from all processes (从所有进程)
选中下方Ignore server certificate errors(忽略服务器证书错误)
Actions>Trust Root Certificate(受信任的根证书)
网站与APP抓包分析1 基础原理与工具使用

(2)连接设置:
进入Connections设置:Tools>Options>Connections
Fidder listens on port:8888(监听端口设置为8888)
选中Allow remote computers to connect(允许远程连接)
选中Reuse client connections(重置客户端连接)
选中Reuse server connections(重置服务端连接)
选中Act as system proxy on startup(作为系统启动代理)
网站与APP抓包分析1 基础原理与工具使用

3.5.2、Fidder工具手机端配置

PC端配置完成后,打开手机浏览器,保证手机与PC处于同一局域网内
在手机浏览器访问PC端局域网IP地址加Fidder中设置的端口号,(例如地址栏输入192.168.1.1:8888),进入证书下载页面
选择下载证书,证书下载完成后,点击证书文件进行安装(若手机又安全限制,则需要输入锁屏密码,或修改网络安全限制)
证书名称可随意输入,安装成功后,手机连接入PC端开放的热点,Fidder上可现实抓包信息
网站与APP抓包分析1 基础原理与工具使用

3.5.3、Fiddler显示界面内容

网站与APP抓包分析1 基础原理与工具使用

3.6、VirtualXposed配置

Xposed框架是一套开源的、在Android高权限模式下运行的框架服务,可以在不修改APK文件的情况下影响程序运行(修改系统)的框架服务,相当于在手机上安装一个虚拟空间。VirtualXposed是基于VirtualApp和epic在非ROOT环境下运行Xposed模块的实现。

3.6.1、VirtualXposed安装与配置

安装VirtualXposed.apk
安装JustTrusMe.apk到VirtualXposed
VirtualXposed设置添加插件
添加JustTrusMe模块
重启VirtualXposed工具完成配置
网站与APP抓包分析1 基础原理与工具使用

3.6.2、VirtualXposed应用示例

网站与APP抓包分析1 基础原理与工具使用

备注:

网站与APP分析优化过程与实例待续••••••
本文部分(已标记)图片来源于互联网如有知识产权保护请联系作者
本文示例内容(数据交互等)均来源于多年之前的版本,仅供参考请勿用于其他用途
Charles下载地址:https://www.charlesproxy.com/latest-release/download.do
Fidder下载地址:https://www.telerik.com/download/fiddler
VirtualXposed.apk下载地址:https://github.com/android-hacker/VirtualXposed/releases/tag/0.18.0
JustTrusMe.apk下载地址:https://github.com/Fuzion24/JustTrustMe/releases/tag/v.2

上一篇:error: src refspec master does not match any. 错误


下一篇:mysql进阶(一)1-13讲