Socket与网站保密应用 (隐藏链接的视频下载)

本文介绍了如何利用Wireshark抓包工具分析Flash Socket的应用,以隐藏链接的视频下载为例,揭示了视频ID与播放器之间的联系。尽管使用了Socket进行数据传输,但并未增加额外的保密性,只是规避了常规监控。通过Wireshark,作者揭示了视频的实际服务器和数据传输协议,以及如何利用抓取的数据进行视频下载。同时,文章还探讨了网络通信模型、数据帧结构和TCP/IP协议的相关知识。
摘要由CSDN通过智能技术生成

Flash Socket应用


页面使用 Socket 底层传输数据的方便比传统的 HTTP 协议更隐秘,浏览器基本不对基于 TCP 通信的 Socket 进行监测,因此也无法通过浏览器提供的开发者工具来探测网站的受保护数据。例如,音悦台网站上的高铃 - 爱してる-高清【MV】,其视频内容通过 Socket 进行传输,浏览者根本发现不了其视频数据,也无法找到浏览器有缓存到数据。 

打开视频网页: http://v.yinyuetai.com/video/37962 


但,使用其他工具还是可以找到服务器所在的,Windows 下就有 netstat 命令可以检测到,注意 843 端口,这是 Flash Socket 用来安获取 crossDomain.xml 的首选端口:

C:\>netstat -a -o -b -p TCP

活动连接

  协议  本地地址                外部地址                状态           PID
  TCP    192.168.1.200:59539    125.89.72.215:http     ESTABLISHED     1128
 [chrome.exe]
  TCP    192.168.1.200:59548    219.232.246.244:http   ESTABLISHED     1128
 [chrome.exe]
  TCP    192.168.1.200:61073    125.89.74.163:http     TIME_WAIT       0
  TCP    192.168.1.200:60700    14.17.110.3:843        TIME_WAIT       0
  TCP    192.168.1.200:60701    14.17.110.3:82         TIME_WAIT       0
  TCP    192.168.1.200:60706    tg-in-f100:https       SYN_SENT        1128
 [chrome.exe]
  TCP    192.168.1.200:60707    tg-in-f100:https       SYN_SENT        1128
 [chrome.exe]
  TCP    192.168.1.200:60748    183.136.237.25:843     TIME_WAIT       0
  TCP    192.168.1.200:60749    183.136.237.25:82      TIME_WAIT       0
  TCP    192.168.1.200:60758    183.136.237.25:82      TIME_WAIT       0
  TCP    192.168.1.200:60760    121:8180               FIN_WAIT_1      1128
 [chrome.exe]
  TCP    192.168.1.200:60761    183.136.237.25:82      TIME_WAIT       0
  TCP    192.168.1.200:60764    121:8180               ESTABLISHED     1128
 [chrome.exe]



按843端口的地址请求一份 crossDomain.xml 来,结果是这样的,好大方的两颗星:
<?xml version="1.0"?>
<cross-domain-policy>
    <allow-access-from domain="*" to-ports="*" />
</cross-domain-policy>




浏览开始请求页面,服务输出 HTML 数据,通过解析 HTML 数据后,得到加载指令,进而执行一系列请求,而这里应该注意的是以下三个 SWF 文件,还有 videoID=93425,它们是视频数据的直接关联部分。

http://acjs.aliyun.com/flash/JSocket.swf

http://irs01.net/MTFlashStore.swf

http://s.yytcdn.com/swf/common/mvplayer.swf



如果人品够好直接找到这人JSON文件,就可以直接下载视频了,其实只要.flv之前这部分系统就会自动跳转到视频的CDN服务器:

http://hc.yinyuetai.com/uploads/videos/common/32A00127BA9B8DBB4FA3B950FEC648DF.flv?sc=c4ba59bdfb7b1eb5&br=688&vid=37962&aid=3585&area=JP&vst=0&ptp=mv&rd=yinyuetai.com&json=1


到这里,其实不用再去深挖 mvplayer.swf 里的东西了,基本确定它会将视频ID 37962 和 32A00127BA9B8DBB4FA3B950FEC648DF 这块编码联系起来,至于算法肯定不是 MD5 SHA 等等常见指纹摘要算法,需要通过分析 mvplayer.swf 理清。主要是因为,虽然网站使用了要 Socket 来做视频的数据传输,但仍然是基于 HTTP 协议的传输,逻辑上并没增加保密性代码,因此只是绕过了浏览的监视而以。


Wireshark 抓包与分析


再用 Wireshark 抓包看视频在什么服务器上,这里运行一个没有过滤器抓包任务,这种情况下会相对混乱,因为抓的包多,尽量还要运行其它不相关的程序或打开不相关的网站。注意页面加载视频的时候,Wireshark 会抓到相关的包,而且这些包通常会比较大。需要分拆发送,所以会有显眼的 [TCP segment of a reassembled PDU] 字样。挑一个出来,选择右键菜单的 Follow TCP Stream,出来一个对话框,人品好的话一下就中了:


GET /6/r/b/m/f/rbmftmwaxhcnxjnuqdqfipkuesverx/hc.yinyuetai.com/32A00127BA9B8DBB4FA3B950FEC648DF.flv?sc=c4ba59bdfb7b1eb5&br=688&vid=37962&aid=3585&area=JP&vst=0&ptp=mv&rd=yinyuetai.com HTTP/1.1
Accept: */*
Host: 222.243.215.138
Referer: yytcdn.com
Range: bytes=25067520-27569147
Connection: Keep-Alive


HTTP/1.1 206 Partial Content
Server: T1-CACHE/
Date: Mon, 10 Aug 2015 09:11:30 GMT
Content-Type: video/mp4
Content-Length: 2501628
Last-Modified: Tue, 15 Oct 2013 17:09:35 GMT
Connection: keep-alive
ETag: "525d76cf-1a4abfc"
Expires: Tue, 09 Aug 2016 09:11:30 GMT
Cache-Control: max-age=31536000
Content-Range: bytes 25067520-27569147/27569148



GET /10/x/h/c/h/xhchgxmdjndpeymboepyeqiallvljn/hc.yinyuetai.com/F466013AB6C9120E52E98349C292DE47.flv?sc=8e15b0cae1d004a0&br=777&vid=398619&aid=994&area=JP&vst=0&ptp=mv&rd=yinyuetai.com HTTP/1.1
Accept: */*
Host: 125.89.74.163
Referer: yytcdn.com
Range: bytes=0-1
Connection: Keep-Alive


HTTP/1.1 206 Partial Content
Server: T1-CACHE/
Date: Mon, 10 Aug 2015 09:40:03 GMT
Content-Type: video/mp4
Content-Length: 2
Last-Modified: Fri, 15 May 2015 22:08:32 GMT
Connection: keep-alive
ETag: "55566e60-27e19a3"
Expires: Tue, 09 Aug 2016 09:40:03 GMT
Cache-Control: max-age=31536000
Content-Range: bytes 0-1/41818531


上面两组内容是 HTTP 1.1 协议的头部内容,很显眼的有一个 FLV 文件路径摆在眼前,但是 FLV 服务器不同,显然这是网站为了加速访问做的 CDN - yytcdn.com。有趣的是在 FLV 文件结束处发现有标记: freeIsoMedia File Produced with GPAC 0.4.5 (build 33) ,GPAC 这是个开源的家伙。



结合前面的 crossDomain.xml,试试本地的 JScoket.swf,将前面的请求头一字不差复制,修改其中 Range 的最大值为 1000,发送请求到主机 125.89.74.163 ,可以看到1000字节就这样取下来了,所以 crossDomain.xml 管理不好,Flash Socket 就蛮好用的:

GET /10/x/h/c/h/xhchgxmdjndpeymboepyeqiallvljn/hc.yinyuetai.com/F466013AB6C9120E52
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值