抓包教程详解

“这篇就聊聊如何抓包“

引言

最近在复习网络相关的内容,顺便就整理一下之前的抓包技巧,供大家参考。

1、浏览器抓包

开发者工具

我们先看一个最简单的抓包工具——浏览器。大多数浏览器都会提供开发者入口。以chrome浏览器为例。

在右上角有一个菜单入口,点击,找到对应的开发者工具(或者快捷键Ctrl+shift+i)
在这里插入图片描述
接着就会出现如下页面,该页面分为两个区域,这里用红框标注。其中上面的为网页元素,日志控制台,网络,资源,性能和内存等维度的tab;下面的就是对应维度的内容。

对于网络来说,里面有如下列:

  • name: 请求的资源路径。
  • status:请求结果返回的状态码
  • type:请求的资源类型。
  • initiator: 请求发起来源。
  • size:资源大小。
  • time:请求到相应所花费的时间。
  • waterfall:请求过程各个节点花费的时间情况。
    在这里插入图片描述
    以Baidu的链接为例。先点击左边的会话链接,然后右边会出现此次连接的请求头和响应头、返回内容预览、返回的内容、对应的时间。

在这里插入图片描述
如果想获取某次请求的参数怎么办?接着看。

获取请求参数和结果

这里用百度搜索“网络”,右边就会出现对应的请求连接。在“Headers” 一栏,有Query String Parameter的分组,这个就是本次GET请求的参数,对应的response是json数据,大家可以尝试看看。

在这里插入图片描述
那post请求呢?类似的道理。

这里借用知乎的登录界面,可以获取到登录时候提交的表单数据,这里知乎有对数据进行加密,并且不是普通的key-value方式提交。所以,在网页端,即使用了post请求,也是不安全的,该获取到还是能获取,除非对数据进行加密。

在这里插入图片描述
查看返回结果就比较简单了,直接切到response 下即可

在这里插入图片描述

分析网页结构

题外话,如果想获取(学习)其他网站的前端结构,当然,也可以通过解析网页的方式拿到对应的数据(这个涉及到html的解析,这里不做讲解),比如知乎的登录页面是如何实现的?

先切换到Elements页面下,对应的内容是网页的源代码,接着点击鼠标icon(2),把鼠标移动到想看的元素上,左键即可在右侧(4)的位置查看对应的源码。
在这里插入图片描述

2、Fiddler抓包

如果只分析网页数据,用浏览器提供的工具就足够了,但是如果想扩展到其他平台,比如Android端,那就需要Fiddler出场了,官网下载链接,这里用的是fiddler 4来举例。

与浏览器工具有些类似,左边是请求的会话列表,右边Inspectors页面中,分别是请求内容(2)和响应内容(3)。
在这里插入图片描述

获取请求参数和结果

那要怎么看请求参数和返回结果呢?如图,请求参数可以直接点击webforms、返回结果可以点击webView或json或raw。

查看get、post请求参数的方式是一样的,这里就不再用post请求举例。

在这里插入图片描述

关于Fiddler请求的数据乱码的问题 ,可以参考 Fiddler抓包中文乱码问题

抓APP的数据包

那怎么用Fiddler抓App的数据包呢?

先说下大概思路:电脑开一个代理,手机连接电脑代理后,手机上的流量都会经过电脑,那这个时候就可以在电脑端抓取app的数据。

Fiddler抓app也是这个原理。

首先需要在Fiddler上配置端口,便于手机连接。

点击 tools——> Options… 就进入该页面,选择Connections 栏目,按照下面的配置(端口可以修改,建议用默认的)

其他选项保持默认的,比如Https栏目下的选项默认勾选,然后重启Fiddler。

在命令行输入 ipconfig 获取本机的局域网ip地址,比如笔者的ip是 192.168.31.35

然后手机与电脑要在同一局域网,以小米手机为例,进入WiFi设置页面,点击已连接WiFi右侧的更多,会出现WiFi详情页面,里面有代理设置,按照下图设置即可。

手机无法访问网站

如果配置代理后,手机无法正常访问网站,或者Fiddler无法正常截取数据。可以按照如下配置

1、在Fiddler下,点击Tools > Fiddler Options > connections 勾选上 Allow remote clients to connect 选项,确保Fiddler listens to port是8888

2、打开注册表,在HKEY_CURRENT_USER\SOFTWARE\Microsoft\Fiddler2 (也可以在注册表中直接搜索Fiddler)下创建一个DWORD,值设置为80(十进制)

3、在Fiddler下,点击Rules > Customize Rules,在 OnBeforeRequest 函数内加添如下代码

static function OnBeforeRequest(oSession: Session) {
    // 添加的代码
	if (oSession.host.toLowerCase() == "webserver:8888") {
	     oSession.host = "webserver:80";
	}
    // .....
}

4、重启Fiddler即可。如下为手机浏览器打开头条的网站记录。

3、WireShark

要想学习TCP的连接流程,WireShark是一个不错的选择。WireShark下载链接

首页会列出网络连接列表,点击正在使用的即可进入会话列表。

下图是会话列表,其中1 处表示开始抓包;2处表示停止抓包;过滤器可以过滤想看的内容,比如过滤TCP,就会只列出TCP协议的会话;3处表示已抓取的会话列表;4处是对应会话的全部内容;5处是数据包原始的内容。其中第4处中:

  • Frame:表示物理层数据帧的内容。
  • Ethernet:表示数据链路层的内容。
  • Internet Protocol :表示网络层的内容。
  • Transmission control protocol:表示传输层的内容。

流量图

WireShark提供了很多种流量统计的方式,其中流量图很直观的看出流量的传输过程。选择 统计——》流量图即可出现下图的内容。

其中第一个ip是本机,右侧的为目标IP地址,可以通过流量图查看TCP的三次握手。

如果需要查看指定握手的详细内容,直接点击对应的连接,即可在主面板上看到对应的数据

RTT

在 统计——》TCP流图形——》往返时间 处可以查看每个数据包的往返时间,其中点代表数据包的往返时间,横坐标是点的序号,纵坐标是时间(ms),点击下图的点,就可以在主页面上查看对应的会话信息。还有TCP的吞吐量、窗口尺寸等,这里就不一一列举。

更多见 Wireshark零基础入门到实战

  • 86
    点赞
  • 690
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
tcpdump是一个常用的网络工具,它可以对网络流量进行实时的取和分析。下面我将详细解释一些常用的tcpdump命令。 1. tcpdump -i <interface>: 这个命令用于指定要取流量的网络接口。例如,tcpdump -i eth0将监听eth0接口上的所有流量。 2. tcpdump host <IP_address>: 这个命令用于指定要取流量的目标主机。例如,tcpdump host 192.168.1.100将只取与主机192.168.1.100之间的流量。 3. tcpdump port <port_number>: 这个命令用于指定要取流量的目标端口。例如,tcpdump port 80将只取目标端口为80的流量。 4. tcpdump dst <IP_address>: 这个命令用于指定要取流量的目标地址。例如,tcpdump dst 192.168.1.100将只取目标地址为192.168.1.100的流量。 5. tcpdump src <IP_address>: 这个命令用于指定要取流量的源地址。例如,tcpdump src 192.168.1.100将只取源地址为192.168.1.100的流量。 6. tcpdump -n: 这个命令用于显示IP地址而不进行反向DNS查找。这样可以加快速度。 7. tcpdump -nn: 这个命令用于显示IP地址和端口号而不进行反向DNS查找。这样可以加快速度。 8. tcpdump -e: 这个命令用于显示以太网头部信息。 9. tcpdump -X: 这个命令用于显示数据的内容。 10. tcpdump -XX: 这个命令用于显示数据的十六进制内容。 总之,tcpdump是一个功能强大的工具,通过合理使用各种参数和过滤表达式,可以方便地取和分析网络流量。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Linux tcpdump命令详解](https://blog.csdn.net/weixin_34008784/article/details/86271614)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [tcpdump命令详解](https://blog.csdn.net/wj31932/article/details/106570542)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值