通常说的抓包一般分为两种
-
使用 Wireshark 之类的软件抓取传输层的
TCP/UDP
通信包。 -
使用 Fiddler 之类的软件抓取应用层的
HTTP/HTTPS
通信包。
这里介绍第二种:
抓包软件监听一个端口,比如 8888
,配置系统代理为这个端口后,所有网络通信都会被转发到 8888
端口,进而被抓包软件捕获,然后就可以对数据包进行分析。
打个比方,小明想给小红寄信,但是他不直接寄出去,他先寄给小王,然后再由小王转交给小红。这里的小王就是抓包工具。这样一来,小王作为中间人就可以偷看所有往来信件的内容了。
抓包的用处有很多
- 在应用的开发调试中,查看软件实际运行时
HTTP/HTTPS
通信的请求数据和返回数据,从而分析问题 - 分析别人应用的数据接口
- 篡改请求或响应,攻击网站
适用于以下场景:
- 你写了个程序,里面发送了网络请求,但是后端报错了,或者压根没收到。这时候你可以用抓包的方式看看你的程序究竟发送了什么请求,是不是符合要求,这样可以快速定位问题。
- 你想写个脚本,所以你得用抓包的方式看看正常的请求是什么样的,从而模仿它发送请求
- 你想用通过篡改响应值的方式进入你不该进入的页面
- 前端的页面只出现一次,但你想重放这次请求
PC 常用的抓包工具有 Fiddler、Burp Suite、Charles、wireShark、tcpdump 等,下面介绍 Fiddler 和 Burp Suite
Tools - Options - HTTPS,按图中勾选,并点击 Actions - Trust Root Certificate,安装证书(用于抓取 HTTPS 请求)
说明注释、重新请求、删除会话、继续执行、流模式 / 缓冲模式、解码、保留会话、监控指定进程、寻找、保存会话、切图、计时、打开浏览器、清除 IE 缓存、编码 / 解码工具、弹出控制监控面板、MSDN、帮助
两种模式
- 缓冲模式(Buffering Mode)Fiddler 直到 HTTP 响应完成时才将数据返回给应用程序。可以控制响应,修改响应数据。但是时序图有时候会出现异常
- 流模式(Streaming Mode)Fiddler 会即时将 HTTP 响应的数据返回给应用程序。更接近真实浏览器的性能。时序图更准确, 但是不能控制响应。
Fiddler 开始工作后,捕获的所有网络通信都会显示在会话面板
小技巧:按 Ctrl + X
清空,按 F12
暂停/开始抓包
选中 右上方的 Inspectors 选项卡
分为两部分:上半部分是请求,下半部分是响应
- Headers:报头
- TextView:查看文本数据
- Syntax:根据语法格式查看
- ImageView:查看图片
- WebForms:Web表单
- HexView:查看十六进制数据
- Cookies:查看设置的Cookies
- Json:查看json格式数据
- 是否使用Filters
- Filters的规则是可以保存和加载的,也就是我们可以把规则保存下来以后再用
- 根据Host域名来进行筛选
- 根据客户端的进程来进行筛选
- 根据请求的Headers来进行筛选
- 断点:Fiddler的断点功能能够让请求在发送后,或者是在返回时暂停,这时候就能够对请求和响应进行相应的修改
- 根据响应的状态码筛选
- 根据响应的类型和大小来进行筛选
- 根据响应的Headers来进行筛选
断点的主要作用:篡改和伪造数据。
断点可以打到两个地方:
可用于拦截某一请求,并重定向到本地的资源,或者使用Fiddler的内置响应。可用于调试服务器端代码而无需修改服务器端的代码和配置,因为拦截和重定向后,实际上访问的是本地的文件或者得到的是Fiddler的内置响应。
Burp Suite是世界上使用最广泛的Web应用程序安全测试软件(WEB应用程序的集成攻击测试平台)。
Burp Suite为这些工具设计了许多接口,以加快攻击应用程序的过程。所有工具都共享一个请求,并能处理对应的HTTP 消息、持久性、认证、代理、日志、警报。
打开 Proxy 选项卡,点击 Open Browser,会弹出一个浏览器窗口,打开 http://127.0.0.1:8080/cert
,下载证书并双击安装。
抓包、重放、爆破
- Target(目标)
- 显示目标目录结构的的一个功能
- Proxy(代理)
- 拦截 HTTP/S 的代理服务器,作为一个在浏览器和目标应用程序之间的中间人,允许你拦截,查看,修改在两个方向上的原始数据流。
- Spider(蜘蛛)
- 应用感应的网络爬虫,它能完整的枚举应用程序的内容和功能。
- Scanner(扫描器)
- 高级工具,执行后,它能自动地发现web 应用程序的安全漏洞。
- Intruder(入侵)
- 一个定制的高度可配置的工具,对web应用程序进行自动化攻击,如:枚举标识符,收集有用的数据,以及使用fuzzing 技术探测常规漏洞。
- Repeater(中继器)
- 一个靠手动操作来触发单独的HTTP 请求,并分析应用程序响应的工具。
- Sequencer(会话)
- 用来分析那些不可预知的应用程序会话令牌和重要数据项的随机性的工具。
- Decoder(解码器)
- 进行手动执行或对应用程序数据者智能解码编码的工具。
- Comparer(对比)
- 通常是通过一些相关的请求和响应得到两项数据的一个可视化的"差异"。
- Extender(扩展)
- 可以让你加载Burp Suite的扩展,使用你自己的或第三方代码来扩展Burp Suit的功能。
安卓抓包推荐用小黄鸟(HttpCanary)
但是,安卓在 Android N 即 Android 7.0 之后不再信任用户安装的证书,因此就算安装了证书,也不能抓 HTTPS,解决办法有两个
目前好像只有小米和一加能申请解锁手机,解锁方法自行搜索。
注意:解锁手机会导致失去保修!
再注意:解锁过程会重置手机,请做好备份工作!
再再注意:以下的步骤可能会损坏你的手机,请确保你有足够的经验来应对!
我并不推荐将证书直接安装系统证书,因为这样如果想卸载比较麻烦。比较好的方式是安装 Magisk
框架,然后安装 证书转化
模块,将所有用户证书转化为系统证书,这样想要卸载十分轻松,只需要卸载模块。下面简单讲讲步骤
- 在 TWRP 找到你机型的 recovery
- 在 Releases · topjohnwu/Magisk (github.com) 获取最新的 Magisk apk,下载后将
apk
扩展名改为zip
,并传到手机 - 打开手机的开发者模式,开启 adb 调试
- PC 上下载 adb 工具包,连接手机
- 执行
adb reboot fastboot
,将手机重启到 Fastboot - 找到你下载的 recovery 镜像,执行
fastboot flash recovery <recovery_filename>.img
,刷入 TWRP Recovery - 执行
fastboot reboot recovery
进入 recovery - 执行双清(data,cache),注意:这一步会重置手机!
- 刷入magisk 的 zip 包,重启手机,此时你已获取 root 权限
- 将小黄鸟的证书安装到用户
- 在 Magisk Manager 刷入
证书转化
模块(链接:https://pan.baidu.com/s/1qeAxa1ErR7Swyym3LnwRzg 提取码:8h2z),将用户证书转化为系统证书
安装 VMOS 等虚拟机,这些虚拟机自带 root 权限,可以将小黄鸟的证书安装到系统,具体方法自行搜索。
不过我试了,没成功🤔
Fiddler教程 - 腾讯云开发者社区-腾讯云 (tencent.com)
Fiddler抓包实战,这些小窍门你都会了吗? - 腾讯云开发者社区-腾讯云 (tencent.com)
测试工具( Burp Suite)介绍了解篇 - Syw_文 - 博客园 (cnblogs.com)
「Burp Suite中文使用教程(桌面版)」 - 网安 (wangan.com)
blog/网络抓包原理及常用抓包工具.md at master · xuwening/blog (github.com)
5.BurpSuite之Proxy详解 哔哩哔哩_bilibili
网络抓包原理及Fiddler的使用 - 掘金 (juejin.cn)
证书转化模块:酷安@沦陷的校花,不过他号似乎被封了👀