网页源代码抓取工具( 本文协议是互联网中应用最多的协议,如何防止被抓包 )

优采云 发布时间: 2021-10-04 04:24

  网页源代码抓取工具(

本文协议是互联网中应用最多的协议,如何防止被抓包

)

  

  本文来自作者吉比贝克,在GitChat上分享了“Fiddler2抓包工具,让你的信息不再被隐藏”,“阅读原文”查看交流记录。

  《文末,​​高能》

  编辑 | 爱好

  http协议是Internet上使用最广泛的协议。几乎所有的 Web 应用程序和移动应用程序都使用 http 协议。

  作为一款基于http协议的免费抓包工具,Fiddler2非常强大。它可以捕获通过http协议传输的数据包,让您的信息无处藏身。

  本文将简单讲解Fiddler2的下载安装,具体应用,以及如何防止抓包。

  一、为什么Fiddler2的名字后面是2,而不是Fiddler?

  

  虽然这是一个看似无聊的问题,但确实让我纠结了一阵子,或许有点强迫症吧。

  当我第一次使用 Fiddler 时,我总是这样写和调用 Fiddler2。但有一天我发现还有另一个 Fiddler4。我瞬间明白是怎么回事了。原来,数字 2 并不是 Fiddler 名字的一部分,而是一个很大的数字。版本号。

  但是在全网找了半天,包括去官网都找不到Fiddler3。最新的是 Fiddler4。全网使用最多的是Fiddler2和Fiddler4。至于为什么没有Fiddler和Fiddler3,我也懒得去找了。

  二、Fiddler的本质是服务器的代理

  

  启动Fiddler后,Fiddler默认会代理当前电脑或服务器的地址和端口为127.0.0.1:8888,所以http请求发送到当前电脑或服务器将首先发送。127.0.0.1:8888这个代理地址后,再转发到真实访问地址。

  Fiddler相当于在客户端和服务器之间安装了一个中继,这个中继负责转发。然后,Fiddler 获取到客户端和服务端的交互数据后,通过数据整理和分析,结果从 Fiddler 客户端显示出来,甚至可以通过 Fiddler 修改请求数据。

  当 Fiddler 关闭时,Fiddler 会自动退出代理。这就是Fiddler实现抓包的基本原理。

  三、Fiddler的下载安装

  可以通过地址下载Fiddler客户端。

  

  只需选择使用原因,输入您的电子邮件地址,选中“我接受 Fiddler 最终用户许可协议”选项,然后单击下载。

  

  下载的安装包:

  

  一路下一步即可完成安装,最新版本为Fiddler4。

  四、使用Fiddler基于http协议抓取网页网站数据

  

  打开Fiddler,整个界面分为三块,块1是当前计算机与外网交互的地址信息,有请求结果,请求协议,访问域名,url地址,返回的字节数。

  第二块是请求信息,包括头信息、请求地址、请求参数等,第三块是服务器响应信息。根据返回结果的形式不同,可以分为返回网页和返回数据两种。

  返回的结果是一个 HTML 页面

  我们以访问热门聊天为例进行分析。

  

  从图中可以看到,host栏代表要访问的域名,这里是,Protocol列表显示协议,这里是http,URL栏显示请求路径,这里是/gitchat/hot, Body列代表返回的结果word段数,Content-Type列表示返回内容的类型,这里是html,最后Process列表示进程名称。

  一般情况下,我们只需要关注Host、URL、Body和Content-Type列。从Body列的字节大小,我们可以快速判断哪些请求返回的数据量较大,然后根据Content-Type类型判断返回的内容。

  在上面有红*敏*感*词*标的那一行,我们可以看到从热门列表页面返回了大量的内容,返回类型为html页面。让我们看看块 3 的结果。

  

  我们切到“SyntaxView”选项卡,可以看到热门聊天的html页面源码,说明请求这个地址后,服务器返回的是html。

  返回结果是数据

  

  访问百度网页时,发现红框标注的请求返回了大量数据,返回类型为“application/javascript”,于是查看返回结果,切入“SyntaxView”选项卡,可以看到一堆可识别的数据,如下:

  

  我们选择以“JSON”格式查看,如下:

  

  一般情况下,我们在目标不是很明确的情况下使用Fiddler抓包,也就是说我们不知道这个网站的哪个地址会被抓到,也不知道它将被捕获​​。在浏览这个网站的过程中,刚刚通过Fiddler的请求分析了哪些数据,哪些数据可能有用。

  这些数据往往是在网站或者APP上正常运行时看不到的数据,而这些隐藏的数据可以通过Fiddler的抓包来抓到。

  Fiddler 也经常被用作爬虫的辅助工具。首先使用Fiddler过滤目标网站或APP,抓取可以获取目标数据的URL和参数,然后通过爬虫程序访问这些URL和参数。爬到目标数据。

  一般APP通过接口返回数据是很常见的。比如这个链接“”是一个APP爬取得到的数据接口,直接访问这个链接,可以看到JSON格式的数据源。

  

  五、 基于https协议使用Fiddler抓取新浪微博

  fiddler除了可以抓取http协议的数据外,还可以抓取https协议的数据,但需要额外配置。方法如下:

  

  依次打开菜单栏中的工具>选项>HTTPS选项卡,勾选“解密HTTPS流量”选项和“忽略服务器证书错误(不安全)”选项,重启Fiddler。这时候如果基于https协议访问网站,就可以抓取到网站的信息。我们以新浪微博为例。

  

  可以看到,大部分抓拍的图片都是图片,其中一张返回2907字节。我们来看看返回的结果。

  

  从备注来看,这应该是服务器的一些证书信息。让我们来看看图片。

  

  张一山?

  

  爱极光?

  

  奇门遁甲?

  当然,这些照片都是新浪微博首页的照片。想看的话直接上首页。你不需要使用 Fiddler 来抓取它。这只是一个例子。你已经掌握了抓取https协议数据的方法,就可以看到网页显示的内容了。数据,当然也可以看到网页无法显示的隐藏数据。这取决于个人。

  剑法已经交给你了。至于你用它来杀猪还是执行骑士正义,你说了算。

  六、 使用Fiddler抓取手机APP的通讯数据

  要抓取手机的通讯数据,需要同时配置Fiddler和手机端。过程稍微复杂一些。下面我会详细解释。

  第一步是配置Fiddler允许远程连接,如图:

  

  依次打开菜单栏中的工具>选项>连接选项卡,勾选“允许远程计算机连接”选项允许远程服务器连接,重启Fiddler。

  第二步,在手机上设置安装Fiddler的电脑为手机的代理地址。

  找到手机连接的wifi网络,点击弹出修改,在高级代理中找到代理设置,将代理设置改为手动,然后会出现设置代理地址和端口的输入框(不同手机的操作过程会略有不同,最终目的是设置手机的代理地址,可以根据不同品牌型号的手机在百度中搜索相关设置方法)。

  

  设置代理地址。

  

  代理地址是你打开Fiddler的电脑的内网IP地址。window系统可以在cmd命令模式下输入ipconfig查看当前电脑的内网IP地址。我电脑的IP地址是192.168.1.34。

  填写代理端口8888,点击保存,如下图:

  

  第三步,访问代理地址,下载安装证书,完成配置。

  

  下载并安装证书:

  

  至此,所有配置完成。现在,所有通过手机与外网通信的数据都可以被 Fiddler 捕获。比如我们通过微信打开gitchat的微信公众号,可以在Fiddler中看到gitchat公众号的标题文章的图片数据,如图。

  这是在 Fiddler 中捕获的数据:

  

  GitChat微信公众号中的图文:

  

  同样,网页上可以抓取到的数据也可以在APP上抓取,在APP上抓取的隐藏数据就更多了,因为大部分APP都是以接口的形式与服务器进行通信的。其中会收录大量数据。如果直接抓取接口地址和参数,就可以直接调用接口获取数据。

  本文主要讲解Fiddler的用法和场景,所以例子中尽量避免敏感内容。Fiddler 是一把双刃剑,可以用来抓取合法数据,也可以用来抓取私人数据。在使用中请务必遵守规则。

  七、使用Fiddler设置断点和修改Response

  Fiddler 不仅可以用来抓取通信数据,还可以用来修改请求内容和服务器响应结果。这个功能一般用的比较少,一般在前期的开发调试中使用,这里简单介绍一下。

  在菜单栏中,点击规则->自动断点->选择断点方法。有两种方式,一种是在请求前进入断点,i是在服务器响应后设置断点,其实就是返回请求内容和服务器在结果两种情况下都设置断点。

  比如我们选择在请求之前输入一个断点。这时候,一旦我们用浏览器访问一个页面,发送请求后,就会停留在Fiddler中。这时候我们就可以修改请求中的数据,然后再进行后续的操作,让服务端接收到的请求被修改。

  同理,服务器响应后修改数据,就是直接修改服务器返回的结果。

  这种技术在实践中很少使用。如果有人对这篇文章感兴趣,你可以把它放在评论中。我会在后续的交流中详细解释这块。

  八、反Fiddler爬取的一些思考

  由于Fiddler非常强大,所以我们在做产品开发的时候,尤其是APP和服务器端通信的时候,应该尽量避免Fiddler的爬行,更加注意界面的严谨性和安全性。可以考虑从以下几点入手:

  在制作APP界面时,与界面通信的数据在传输前应尽可能加密。不要使用纯文本,这将在很大程度上避免数据被捕获;

  接口返回的数据尽量少,也就是APP只返回什么数据。不要因为偷懒把数据全部返回,这样一旦数据被抓到,泄露的会比当前接口业务的数据还多;

  必须严格验证参数,防止有人恶意猜测构造参数,非法访问服务器。

  本次Fiddler数据采集的话题就到这里。有问题的同学可以留言提问,也可以在阅读圈提问。我看到后,会尽量尽快回复你。感谢大家的参与。

  九、备注

  在使用Fiddler抓取网页和传输数据时,经常会遇到无法抓取的问题,尤其是https协议网站,数据在Fiddler上根本不显示。

  经过反复尝试,我发现问题出在浏览器上。某些浏览器可能会阻止代理。通过这些浏览器访问的网页不会在 Fiddler 上显示数据。感觉代理失败了。

  目前测试发现360浏览器100%屏蔽Fiddler,谷歌Chrome屏蔽了一部分。具体的屏蔽规则还没有深入研究。另外IE浏览器完全支持Fiddler,几乎没有屏蔽。上面例子中的数据捕获是通过IE浏览器演示的。

  因此,在实际使用中,建议先使用IE浏览器抓取数据。

  近期热门文章

  “”

  “”

  “”

  “”

  “”

  “”

  “”

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线