如何优雅的扒站——抓包篇
Posted zuoshoupai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何优雅的扒站——抓包篇相关的知识,希望对你有一定的参考价值。
前两节说了利用浏览器或者借助仿站工具来扒站,这些方法适用于一般的web站点,对于某些不能在PC端打开的站点就比较困难了。如果只是在后台检验客户端来限制用户浏览,比如你用PC访问的时候自动转到PC页面或者直接禁止访问,这种模式尚能利用某些浏览器模拟移动端。但是还有一些借助第三方授权才能访问的站点就难以逾越了,比如你觉得某个公众号推送的文章特别棒,然后把url拷贝出来在PC端浏览器上打开妄图把源码扒下来,结果赫然出现一行大字——“请在微信客户端打开”。
除了上面说的情况,还有个问题,就是https加密传输协议。这个协议的目的是为了防止那些钓鱼网站,尤其是那些涉及到支付的站点。具体的原理我就不细说了,大概意思就是你通过这个链接发送的数据,别人截获了也破解不了;同样这个站点给你传送的数据被别人截获了也解析不了。因为它要涉及到证书加密和解密。我们在浏览器上能看到解析好的数据是因为浏览器已经验证了站点并用公钥解析好了,而靠抓包工具获取站点传送的数据是未解析的,只能是一堆乱码。
下面要讲的就是如何解决上面的问题,总的来说就是抓取移动端的站点源码,当然不是乱码的那种了。
主要借助的工具是fiddler,一款使用简单而且轻量的抓包工具。它的功能特别强大,在前端调试方面功不可没。我们用它来扒站只是用了它的神奇之处的一小点。原理也比较好理解,fiddler作为一个代理工具,移动端的数据发送和收取都要经过fiddler,所以它在服务端和客户端之间来回变换角色,以客户端的身份与站点服务器交互,再以服务端的角色与移动端来交互。在这一套过程中,移动端展示的源码都已被fiddler抓到了,更神奇的是,它的客户端身份还能成功骗过服务器和移动端,实现源码解析。
理论就讲到这儿了,下面要上步骤了。
一,去fiddler官网下载程序;另外还有两个插件是移动端抓包必备的,分别是FiddlerCertMaker和fiddlersyntaxsetup,先安装fiddler主程序,再依次运行安装另外两个就ok了。如下图打开后便是这个样子,左框显示是传输的站点。右框是详细数据。咱们主要用到的是Inspectors菜单下的Webview和SyntaxView,分别是源码和预览效果。
二、配置监听https。
选择tools->options,打开https功能项,勾选Capture HTTPS CONNECTs,Decrypt HTTPS
traffic,Ignore server certificate errors(unsafe),Check for certificate
revocation(就是全部勾选),接着会有是否信任证书,是否安全,是否安装的提示,一路yes就噢了。接下来我打开一个https的站点。
很明显我们看到了正在数据传输的站点和数据,不过显示乱码,也就是说现在看到的是加密过的数据。万幸的是右框中间有个点击此处进行解析的提示按钮,于是按下去,奇迹出现了。已经是我们熟悉的html标签了。
三,设置移动端代理。
你要先保证手机和PC是在同一个局域网里,不然后面就白扯了。
还是老样子选择tools->options,打开Connections功能项,勾选Allow remote computers to connect,端口默认是8888,尽量不要动。然后重启fiddler.PC端设置部分就ok了。
接着打开手机设置的地方,不同的手机可能不一样。我拿小米手机举例,连接上wifi后,进入设置wifi的操作界面,找到设置代理的地方,切换成手动模式,填入ip地址和端口号,ip地址就是你安装fiddler的电脑IP,端口号是8888,最后保存。为了测试效果,可以用手机访问一个指定站点,如果在fiddler左框中有展示就说明代理成功了。
还有关键的一步,安装证书。在手机浏览器里访问刚才填写的代理地址,http://IP:8888,仔细看页面最后一行,有提示下载证书。点击下载并安装。
到这一步就算完成了。试一下浏览公众号里的文章,是否能够抓到其中的源码呢。关于数据的抓取和防抓取,就像web站点的黑与防黑是个永远不会停止的战争。祝福大家不要掉队。
备注:如果https解析出现问题,通常是PC端证书的问题。按win+R组合键,在运行对话框里输入certmgr.msc,依次双击个人->证书,把已安装的证书全部删除,重启fiddler后再试。
以上是关于如何优雅的扒站——抓包篇的主要内容,如果未能解决你的问题,请参考以下文章