解决方案

抓包学习01

seo靠我 2023-09-23 21:44:55

抓包就是将网络传输发送与接受的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。抓包也经常被用来进行数据截取等。

背景:

数据在网络上是以很小的称为帧(Frame)的单位传输的,帧由几部分组成,SEO靠我不同的部分执行不同的功能。帧通过特定的称为网络驱动程序的软件进行成型,然后通过网卡发送到网线上,通过网线到达它们的目的机器,在目的机器的一端执行相反的过程。接收端机器的以太网卡捕获到这些帧,并告诉操作SEO靠我系统帧已到达,然后对其进行存储。就是在这个传输和接收的过程中,嗅探器会带来安全方面的问题。

每一个在局域网(LAN)上的工作站都有其硬件地址,这些地址唯一地表示了网络上的机器(这一点与Internet地SEO靠我址系统比较相似)。当用户发送一个数据包时,如果为广播包,则可达到局域网中的所有机器,如果为单播包,则只能到达处于同一碰撞域中的机器。

在一般情况下,网络上所有的机器都可以“听”到通过的流量,但对不属于自SEO靠我己的数据包则不予响应(换句话说,工作站A不会捕获属于工作站B的数据,而是简单地忽略这些数据)。如果某个工作站的网络接口处于混杂模式,那么它就可以捕获网络上所有的数据包和帧。

抓包的作用:

通过对网络上传输SEO靠我的数据进行抓取,可以对其进行分析,对于软件的Debug很大的帮助。当然也可以通过抓取用户发送的涉及用户名和密码的数据包来获取用户的密码。

(1)网络通讯的真实内容

(2)网络故障分析

(3)程序网络接口分析SEO靠我

(4)木马通讯数据内容

抓包工具:

抓包工具是拦截查看网络数据包内容的软件。通过对抓获的数据包进行分析,可以得到有用的信息。流行的抓包工具有很多,比较出名的有wireshark、sniffer、httpwSEO靠我atch、iptool等。这些抓包工具功能各异,但基本原理相同。我们的计算机通过向网络上传和从网络下载一些数据包来实现数据在网络中的传播。通常这些数据包会由发出或者接受的软件自行处理,普通用户并不过问SEO靠我,这些数据包一般也不会一直保存在用户的计算机上。抓包工具可以帮助我们将这些数据包保存下来,如果这些数据包是以明文形式进行传送或者我们能够知道其加密方法,那么我们就可以分析出这些数据包的内容以及它们的用SEO靠我途。 [1]

抓包工具更多的用于网络安全,比如查找感染病毒的计算机。有时也用于获取网页的源代码,以及了解攻击者所用方法、追查攻击者的ip地址等。

一、为什么要抓包(原博https://blog.csdn.SEO靠我net/l61052319940708/article/details/80624900)

1. 定位网络接口问题

2. 分析其他App数据接口

3. 学习网络协议,使用抓包工具分析网络数据更直观 

大部分场合SEO靠我都可以通过程序调试来定位问题,但有些场景使用抓包来定位接口问题更准确、更方便,如以下场景:

* 你发送数据给后台,但后台没有收到,可以对接口进行抓包分析,看是后台处理有问题,还是App没有将数据发出去,SEO靠我或是App发送数据格式有误

* 你和后台接口联调测通,但业务数据对不上,你认为是后台问题,后台认为是你发的问题,可以抓包确认问题所在

* 线上App出现bug需要定位,但你没在公司,没有代码可调试,可直接SEO靠我抓包分析

* App页面渲染缓慢,抓包看下接口响应时长,是不是后台出现性能问题

* 需要测试弱网环境下App的体验?抓包工具可设置流量限制,可设置接口堵塞

* 想改变某接口的响应报文?想多次重发某一请求,但SEO靠我App业务流程有限制?可以试试抓包工具提供的功能

二、抓包的原理

要实现对App的网络数据抓包,需要监控App与服务器交互之间的网络节点,监控其中任意一个网络节点(网卡),获取所有经过网卡中的数据,对这些SEO靠我数据按照网络协议进行解析,这就是抓包的基本原理。

但是中间网络节点,不受我们控制,所以基本无法实现抓包的,只能在客户端服务端进行抓包。

通常我们监控本地网卡数据,如下图:

手机、本地网络属于客户端侧的抓包SEO靠我接入设备、服务器属于后台侧的抓包,两者没有什么不同

`本地网络`指的是WIFI的路由,如果直接抓路由器的包还是比较麻烦的,因此我们会在`手机`和`本地路由`之间加一层`代理服务`,这样只要抓代理服务的SEO靠我网络数据即可:

虽然在`手机`侧也可实现抓包,但和`本地路由`一样,抓包比较麻烦,如果不是没有办法,尽量还是不在手机侧抓包。但是有一种情况必须在手机端抓包,那就是在4G网络情况下

三、网络协议

抓包实际上SEO靠我是分析网络协议的一种过程,尽管繁琐的细节劳动都让抓包工具做了,但我们还是需要了解下基础的网络协议,好帮助我们更好的分析问题。

首先需要了解下经典的OSI七层网络模型,以及每层的作用,其次对TCP、HTTSEO靠我P协议简单了解。

> 虚线框中的部分是需要着重了解的。

#### HTTPS与HTTP有什么不同?

HTTPS是基于HTTP协议的一种改进,在`TCP之上`的会话层增加安全处理。对于应用层来说,HTTPS和SEO靠我HTTP没有什么不同,也就是说,HTTPS是保证网络传输的安全性,对业务数据无侵入。

简化理解大概是这个样子:

SSL和TLS是保证安全传输的协议,包括证书认证、加解密和数字签名。

项目中HTTPS的链路:SEO靠我

因此,客户端与后台,编写网络接口时,不需要关心SSL或TLS,按照HTTP协议处理即可。

既然HTTPS在网络传输是经过加密的,那么抓包抓到的数据就是密文,不经过解密是无法看到报文的。针对这个问题,如上SEO靠我图WIFI环境下设置代理的方式可以解决,具体思路是:

所以整个网络链路依然是HTTPS在传输,但代理服务自己可以获取到明文数据。

四、常用抓包工具

比较常用的抓包工具大概有4个,主要用作互补,配合使用基本所SEO靠我有平台、所有抓包需求都能满足:

* fidder  windows平台最受欢迎抓包工具,免费、易用

* charles  Mac平台下最佳抓包工具,易于使用,收费软件,可一直试用

* wireShark  SEO靠我老牌抓包工具,跨平台,功能齐全、强大

* tcpdump  命令行程序,适用于手机系统和后台系统

`需要说明的是,tcpdump可将数据保存成文件,直接用wireShark打开分析,针对后台或手机抓包使用SEO靠我起来十分方便。`

几个工具间的使用关系:

1. 如果是windows平台,使用fidder

2. 如果是Mac平台,使用charles

3. 如果是linux平台(手机或后台),使用tcpdump

4. 如果抓SEO靠我非HTTP(S)协议的包,如TCP包,则使用wireShark

五、真机抓包

为什么要真机抓包?必定是没有办法设置代理服务了,如4G网络情况下直接和移动基站链接,没法设置代理服务。凡是非4G网络状态下,都SEO靠我不建议真机抓包。

#### 5.1 iOS真机抓包

iOS 5后,apple引入了RVI remote virtual interface的特性,它只需要将iOS设备使用USB数据线连接到mac上,然后使SEO靠我用rvictl工具以iOS设备的UDID为参数在Mac中建立一个虚拟网络接口rvi,就可以在mac设备上使用tcpdump,wireshark等工具对创建的接口进行抓包分析。

具体步骤:

1. 获得iOSSEO靠我设备的UDID

2. 使用USB数据线将iOS设备和MAC连接

3. 创建RVI接口 `rvictl -s <UDID>`

4. 使用wireShark抓取`rvi0`虚拟接口

5. 移除RVI接口 `rviSEO靠我ctl -x <UDID>`

> 真机抓包,意味着无法获取HTTPS的明文数据,因此真机抓包的意义不大,只能用户分析网络接口连通性,正确性,无法分析业务报文是否正确。

#### 5.2 android真机SEO靠我抓包

android是linux系统,和后台一样可以使用tcpdump命令来抓包,但是需要root权限,因为一般手机系统不带有抓包命令`tcpdump`,需要自行安装。

安装tcpdump:

1. 下载anSEO靠我droid版本的[tcpdump](https://www.androidtcpdump.com)

2. adb shell

3. su #切换root用户

4. chmod 777 /data/localSEO靠我  #修改目标路径权限,这里是/data/local

5. adb push tcpdump /data/local #将tcpdump拷贝到目标路径

> 若tcpdump命令不能执行,需要赋予该文件chSEO靠我mod +x tcpdump

使用tcpdump:

1. adb shell

2. su

3. /data/local/tcpdump -p -vv -s 0 -i any -w /data/local/caSEO靠我pture.pcapng

这是就已经进入抓包状态,手机所有的网络请求都会被捕获,并保存到capture文件中。

导出capture文件:

1. adb pull /data/local/capture.pcSEO靠我apng .  #导出到当前目录

2. 使用wireShark打开capture文件,进行浏览分析

> 若进行push及pull操作不成功,可能是因为不让直接操作/data/local等系统目录,可以先pSEO靠我ull到sd卡,在将文件从sd卡拷贝到/data/local,反之依然。

 
“SEO靠我”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与 我们联系删除或处理,客服邮箱:html5sh@163.com,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同 其观点或证实其内容的真实性。

网站备案号:浙ICP备17034767号-2