您的位置:首页 > 游戏 > 手游 > 深圳网络络推广培训_网络文化经营许可证查询_第一站长网_开发一个app价目表

深圳网络络推广培训_网络文化经营许可证查询_第一站长网_开发一个app价目表

2025/4/19 16:27:46 来源:https://blog.csdn.net/qq_41775119/article/details/147280647  浏览:    关键词:深圳网络络推广培训_网络文化经营许可证查询_第一站长网_开发一个app价目表
深圳网络络推广培训_网络文化经营许可证查询_第一站长网_开发一个app价目表

不定期更新。


目录

  • 常用抓包工具
  • TLS
  • CA签名
  • 使用
    • Wireshark
    • Charles
      • 问题汇总
    • Fiddler
  • 面试题

常用抓包工具

Wireshark(最强大)
Charles / Fiddler(图形界面友好)
学习路线:Charles->fiddler->wireshark

TLS

SSL已淘汰。

  • TLS(SSL)是什么?
    TLS(Transport Layer Security)是用来加密网络通信的协议。
    它的前身是 SSL(Secure Sockets Layer),现在几乎都用 TLS,安全性更高。
    用浏览器访问 HTTPS 网站、手机 App 请求接口时,为了防止中间被监听、篡改,数据必须加密,这时候就用到 TLS。
  • TLS 解决了什么问题?
    数据加密:防止数据在传输过程中被窃听
    数据完整性:防止数据被篡改
    身份验证:确认服务器是“真正的它”,防止中间人伪造
  • TLS 工作流程
    步骤 1:客户端发起请求(Client Hello)
    告诉服务器:“我支持哪些加密算法,咱们来协商一下。”
    步骤 2:服务器回应(Server Hello)
    服务器说:“我们用这个加密算法,顺便给你我的证书(包含公钥)。”
    证书 = 网站身份证,里面包含:域名(example.com)、公钥(用于加密)、签名(由可信的 CA 签名)
    步骤 3:协商密钥
    客户端生成一个随机数(叫“pre-master key”)
    用服务器的公钥加密这个随机数发给服务器
    双方根据这个“随机数”生成对称密钥(共享)
    从这之后,双方用这个对称密钥加密通信,速度快 + 安全
    发的 HTTP 请求(比如登录信息、API 调用),就会经过 TLS 加密成密文,再通过 TCP 发出去。
    抓包工具如 Wireshark 抓到的就是这个加密的内容,必须解密(中间人+自签证书)才看得懂。
  • HTTPS = HTTP + TLS(是在 HTTP 之上加了 TLS 加密)

CA签名

CA 签名 = 权威机构帮网站发了个“数字身份证”,告诉你:这个网站是可信的,不是假的。

  • CA(Certificate Authority)= 证书颁发机构
    它是一个大家都信任的“中立第三方”
    比如我们熟悉的:
    DigiCert
    Let’s Encrypt
    GlobalSign
    它们的任务是:审查网站的身份 + 给出一个“签名”证书
    CA 用它的私钥对证书做的加密摘要
  • 一个 HTTPS 网站证书长这样:
证书内容(Certificate):
- 域名:example.com
- 公钥:123456...
- 有效期:2025-04-01 到 2026-04-01
- 签名:由 DigiCert 用私钥签的数字签名

可以伪造证书吗?
可以伪造内容,但签名伪造不了(需要 CA 私钥)

  • 浏览器如何验证这个签名?
    浏览器自带了一堆“CA 公钥”
    收到服务器证书后,它会:
    用 CA 的公钥验证签名是否匹配
    如果匹配成功:说明这个证书是真的,网站可信
    这就叫:证书链验证
  • 中间人可以拦截 HTTPS 吗?
    可以,但如果没有客户端信任他的“CA 签名”,就会显示证书错误(除非你装了他的证书)

使用

Wireshark

偏底层,网络工程师/后端更常用

  1. 抓 TCP 三次握手 & 四次挥手:
    能否通过 Wireshark 抓出 TCP 建立/关闭连接的过程?
    是否理解 TCP 流程中的 seq、ack?
  2. 过滤器使用熟练度:
    Display Filter 和 Capture Filter 的区别?
    举例:如何过滤出某个 IP 的 HTTP 请求?(如:ip.addr == 192.168.1.1 && http
  3. 排查请求慢的场景:
    是否会通过 Time、RTT、重传等指标,分析请求延迟原因?
  • 工作常用技巧
    过滤 HTTP 请求:http.request 或 tcp.port == 80
    抓包重放流量:右键“Follow TCP Stream”可重现一次完整会话
    TLS 握手分析:用于排查 HTTPS 问题,如证书失败、SNI 错误
    定位丢包/重传:tcp.analysis.retransmission

Charles

偏前端/APP 常用

  • 配置代理
    Proxy->Proxy Settings->Proxies->Port填写默认值:8888
    在这里插入图片描述
  • 访问控制
    Proxy->Access Control Settings->添加特定的IP且勾选【Prompt to allow unauthorized connections】
    勾选【Prompt to allow unauthorized connections】但未配置IP,客户端A发送请求的时候,如果配置代理正确,则charles会弹窗询问是否发送给服务器如下图所示在这里插入图片描述
    需要点击按钮【Allow】,则该客户端的ip地址会被添加,下次再访问就不会询问了
    勾选【Prompt to allow unauthorized connections】且配置IP,会将客户端的请求转发给服务器;未勾选【Prompt to allow unauthorized connections】,无论是否配置IP都不发送请求到服务器
    在这里插入图片描述
  • 客户端配置代理设置
    打开浏览器【使用代理服务器】
    地址填写:127.0.0.1(因为charles是安装在本机,故可以写回环地址);如果charles在其他机子上此处就写其他机子的ip地址,端口:8888->保存之后重启charles
    • mac电脑需要进入设置-网络-到连接的WIFI点击【详细信息】->选择【代理】菜单下的【网页代理】和【安全网页代理】->打开开关,服务器填写代理服务器的IP地址&端口填写8888->保存之后重启charles
      如果Charles客户端同MacOS客户端是同一台电脑,则可以使用快捷设置。步骤:菜单栏Proxy->macOsProxy
    • IOS 设置->无线局域网->找到连接的网络并进入->HTTP代理选择手动后填写服务器和端口->保存
    • Android步骤:设置->WLAN->找到连接的网络并进入->选择手动代理配置服务器主机名和端口->保存
  • 如何配置 HTTPS 抓包?
    默认下请求会显示< unknown >并且content查看是乱码。
    • 安装 Charles 根证书并信任(包括移动端)
      电脑端整体下载证书的流程:charles的菜单栏help-> SSL Proxying-> Install Charles Root Certificate->剩余步骤看各个客户端的具体步骤
      1. windows证书下载
        步骤:会弹窗证书框->点击【安装证书】->存储位置选择【本地计算机】->证书存储选择【将所有的证书都放入下列存储】->选择【受信任的根证书颁发机构】-> 点击确定后会看到导入成功的提示
      2. MacOS证书下载
        步骤:会显示【钥匙串访问】页面->选择对应的charles证书并双击->展开信任,选择始终信任

手机端整体下载证书的流程:开启charles->手机开启代理->在手机端浏览器输入chls.pro/ssl(快捷方法:将电脑端的证书传到手机上)
IOS证书下载
步骤:进入设置,可以看到已下载描述文件->安装该文件->返回到通用->选择【关于本机】->滑到底部的证书信任设置对charles进行证书信任

  • 设置 SSL Proxying
    步骤:Charles菜单栏->Proxy->SSL Proxying Setting->SSL Proxying下勾选【Enable SSL Proxying】添加include的location,host写*,端口写443(https的默认端口号)
    在这里插入图片描述
  • 过滤
    对网络请求进行过滤,只监控向指定目录服务器上发送的请求。
    方法1 左下角有个filter输入框
    在这里插入图片描述
    方法2 在 Charles 的菜单栏选择 “Proxy”->”Recording Settings”,然后选择 Include 栏,选择添加一个项目,然后填入需要监控的协议,主机地址,端口号。这样就可以只截取目标网站的封包了。
  • 弱网测试 Throttle 模拟慢网速
    点击【Proxy】–>【Throttle Setting】
    勾选上【Enable Throttle】,也可以勾选【only for selected host 】 设置一个指定注解访问进行网络限制,不影响其他软件;
    在【Throttle preset】选择常见预设的网络情况,也可以在【Bandwidth】自己设置网络的上传和下载速率
  • 打断点 篡改数据
    选择请求会话右键勾选【Breakpoints】,这是发现对应的断点按钮会变色
    设置断点,点击菜单栏【proxy】勾选【Breakoint Setting …】这是会弹出断点设置弹窗;
    在弹出的断点设置弹窗,双击想打断点的接口,进行断点编辑;
    编辑断点,如果修改Request数据,则Request勾选,如果修改Response数据,就将Response勾选,当然你也可以都勾选;
    重新进行请求,Charles 会自动进行拦截并跳转到请求数据修改页面;
    在这里插入图片描述
  • Map Local:本地 JSON/mock 接口替换线上返回
  • Repeat & Edit:重复请求并修改参数测试接口行为
    在我们的测试工作中,可能你会发先一个bug,开发会让你在操作一遍,他要查看日志经i选哪个定位分析,这时候,在客户端上进行操作一遍就会麻烦,这是直接用Charles 发送一遍重复的请求就可以了,并且,重新发送请求也可以帮助我们进行功能测试;

选择需要重新发送请求的会话上,直接点击工具栏【重新按钮】

Compose编辑接口:在我们的测试工作中,可能需要发送不同的参数进行请求。选择需要修改的请求,右键选择【Compose】这时多出一个新的请求;

  • Proxy 移动端:配置手机和 Charles 在同一网络,设置代理抓 APP 包 前后已经讲过了 这里不再赘述
  • 服务器压力测试
    Charles 还有一个比较有意思的功能,它能勾简单的给服务器进行压力测试;在进行压力测试的请求会话上右击,选择【Repeat Advanced】,在弹出框中,输入并发线程数以及压力次数点击进行测试

问题汇总

  1. 手机连接代理后输入chls.pro/ssl无法下载证书
    解决:重启charles再次输入chls.pro/ssl
  2. 手机安装和信任证书后,无法上网抓接口
    解决:手机关掉代理并重新配置代理,如还不能解决则重启charles
  3. 电脑端已有证书,突然不能抓包
    解决:
    步骤1: 点击help-> SSL Proxying-> Install Charles Root Certificate查看证书有效期是否已过
    步骤2: 如有效期已过,则点击Reset Charles Root Certificate重置证书
    步骤3: 重新安装证书
    在这里插入图片描述
  4. app抓包
    【Help】–>【local IP Address】获取下ip地址,也可以直接通过电脑自带的CMD命令来获取电脑IP【ipconfig】
    点击安装【Install Charles Root Certificate On a Mobile Device or Remote Browser】在移动设备上或远程浏览器安装证书即可;(这里和上面安装一样)
    在这里插入图片描述

Fiddler

偏 Windows 系统上常用,功能和 Charles 类似

  1. 如何通过 Fiddler 抓 HTTPS?
    安装 Fiddler 证书,勾选 Decrypt HTTPS Traffic
  2. 如何过滤指定 URL?
    使用 Fiddler Script 设置自动断点或自动响应规则
  3. 支持自定义断点调试吗?
    使用 AutoResponder 和 Breakpoints 模拟接口行为
  • 工作常用技巧
    AutoResponder 模拟接口返回
    Composer 造请求测试接口
    手机代理抓包
    Filter 过滤特定域名或路径的请求

面试题

  1. HTTPS 是什么?为什么抓不到?
    HTTPS = HTTP + TLS(SSL)
    也就是说,请求的数据(包括请求头、请求体)都会经过加密,再通过 TCP 发出。
    所以如果你用 Wireshark 抓包,只能看到加密后的二进制数据,看不懂。
  2. 如果让你抓 HTTPS 的包,你怎么抓?
  • 要抓 HTTPS 明文内容,必须满足两个条件:
    抓包工具能够“拦截”并“解密”HTTPS 数据
    客户端必须“信任”这个抓包工具的证书(CA 证书)
  • 抓 HTTPS 包的关键:抓到加密前的数据(解密)
    方法:
    使用 Charles / Fiddler 安装自签证书,客户端信任这个中间人证书,就能抓到明文。
    在服务器或客户端打日志(hook HTTPS 请求)
    使用 mitmproxy 模拟中间人
  • 具体操作
    步骤 1:安装抓包工具的根证书(Root Certificate)
    工具会生成一个“自签名证书”作为 CA(Certificate Authority)(自签名证书:不是由官方机构签发的,而是 Charles/Fiddler 自己生成的)
    你把这个证书装到系统/手机里并“信任”
    客户端(浏览器或 APP)就会信任这个“假服务器”
    步骤 2:抓包工具启用 TLS 解密(如 Charles 的 SSL Proxying)
    启用解密功能后,它就会自动给每个请求生成一个假的服务器证书
    然后可以解密请求和响应,显示明文内容
    步骤 3:客户端请求被抓包工具劫持并解密
    你就能在 Charles 或 Fiddler 里看到:
    URL
    请求头(Headers)
    请求体(Body)比如 JSON 数据
    响应头 + 响应体(服务器返回的内容)

SSL Proxying:Charles 中用于拦截并解密 HTTPS 流量的功能
TLS 握手(Handshake):客户端与服务器协商加密算法、密钥的过程

  1. 抓到 HTTPS 包了,怎么获得里面所有信息?(明文)
    抓包工具安装 CA 证书(如 Charles 安装根证书)
    客户端信任该证书
    工具才能拦截并解密 TLS 流量,看到请求头、体、响应等
  2. 正常 HTTPS 通信流程(简化版):
    客户端和服务器通过 TLS 握手,协商密钥
    客户端发送请求(加密)
    服务器返回响应(加密)
  3. 中间人攻击(Man-in-the-Middle, MITM) 模拟
    抓包工具(如 Charles/Fiddler)做的事情是:
    它假装自己是“服务器”,跟客户端握手
    它再和真正服务器握手,建立自己的安全通道
    中间这个代理,拿到了加密前的数据,就能看到明文了
  4. HTTPS 抓包失败可能的原因有哪些?
    没安装证书
    没启用 SSL Proxy
    客户端做了证书校验(如 App Pinning)
    iOS/macOS 不信任自签 CA(需手动设为“始终信任”)
  5. 抓不了小程序的 HTTPS 怎么办?
    小程序/APP 有“证书锁定”(证书钉扎)
    只能通过“hook”方法抓包,比如使用 Xposed + SSLUnpinning

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com