吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 20252|回复: 120
收起左侧

[Android 原创] 抓取电信营业厅APP的视频资源一例

  [复制链接]
伤心的笔 发表于 2018-11-13 19:38
本帖最后由 伤心的笔 于 2018-11-13 19:44 编辑

如图,APP提供了一部电影,首先在图一中点击这个电影的广告,会跳到图二的网页,而视频播放器会直接在图二网页中加载。

Capture+_2018-11-12-07-09-37.png
Capture+_2018-11-12-07-09-45.png
那么如何提取出来呢?
首先想到的就是抓包看一下。于是在Android上安装了Packet Capture软件。
Packet Capture软件在第一次启动时会询问是否要抓取HTTPS流量,这样会把自签名证书导入系统,以便让系统的浏览器信任它。导入。
这样,我们可以抓取HTTP和HTTPS了。

打开电信营业厅APP,进入图一,点击这个电影,准备进入图二。

然而这时候发生了意外,图二的网页没有正常的显示出来,显示为白屏。此时Packet Capture软件显示的是抓取到了一个0字节的HTTPS连接。

这就说明,APP在HTTPS握手阶段,额外检查了证书的有效性,换句话说不通过系统的根证书库判断证书是否有效,而是自己内置了根证书库,或者直接将域名对应的证书签发者写死在了APP中。这样,传统的HTTPS中间人攻击方式的抓包方法失效了。

这样的软件是比较棘手的,因为一旦软件手动检查了证书有效性,我们不可能在不干扰软件代码正常运行的前提下获得HTTPS流量的内容。
那么看起来需要用xposed等办法对APP进行魔改了。但是,在此之前……

上网时,浏览器有时候会将部分HTTPS网页的绿锁改为黄锁,并且提示不安全。像这样:
Snipaste_2018-11-13_19-20-24.png
这是因为该网页上引用了HTTP资源,比如图像、JS等。一旦引用了这些文件,HTTPS安全性形同虚设,因为我们可以通过劫持JS的方式来获得对网页的完全控制权。
尤其是……视频资源,因为它占用大量带宽。

那么思路就有了:先关闭抓包(也就是关闭HTTPS的中间人),打开APP到图二的网页,然后在视频加载之前,启动抓包,这样APP会去加载网页内嵌的资源,而这些资源就可以被抓到。

确实如此,用这种思路,抓到了一个几MB大小的包,这个大小很可疑。

Capture+_2018-11-12-07-11-15.png
看一下:
Capture+_2018-11-12-07-09-29.png
非常接近。从GET请求的Host以及其他参数中恢复出完整的URL,粘贴到浏览器。
网页返回了一个m3u8文件,也就是一个播放列表。胜利在望!
Snipaste_2018-11-12_07-20-16.png
猜测这些ts文件与m38u文件在同一目录下,因此在URL里把m3u8文件名替换为ts的文件名,粘贴到浏览器地址栏。

返回了一个几MB的ts文件。而且可以播放。
Snipaste_2018-11-13_19-29-47.png

ts文件最大的特点是“流媒体”,也就是文件可以被任意地切割和拼接(当然,切的位置如果不好会影响一小段视频的播放,这不在本帖的讨论范围内)。
因此,只需要将m3u8文件指示的所有ts文件的二进制数据直接拼在一起,完整的电影就恢复出来了。也就是copy /b大法。

常见的m3u8下载器无法批量下载这些ts文件,无妨,已经不重要了。到了这个地步,自己写个脚本for循环一下就够了。
Snipaste_2018-11-12_07-20-30.png
由于APP提供的视频只有720P,码率也很一般,没什么下载价值,最后一步我就不编程实现了,脑子里过一遍,权当做完了。


思路就是这些,总结一下:
1. 抓包获取网页资源。Android上可使用Packet Capture软件。
2. HTTPS抓包可通过中间人攻击实现。
3. 软件如果额外检查了HTTPS的证书,则无解,单纯的抓包是不可能实现的。这种情况必须要修改软件本身。
4. HTTPS网页有可能加载了HTTP资源,这是一个很大的突破口。
5. 必要的时候编程实现一些批量操作。

免费评分

参与人数 22吾爱币 +30 热心值 +21 收起 理由
lickety + 1 + 1 鼓励转贴优秀软件安全工具和文档!
qtfreet00 + 9 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
xx2 + 1 + 1 用心讨论,共获提升!
sh4159 + 1 我很赞同!
宰相 + 1 + 1 我很赞同!
godehi + 1 + 1 谢谢@Thanks!
hlink1021 + 1 + 1 热心回复!
chesterche + 2 + 1 谢谢@Thanks!
cszssj + 1 + 1 谢谢@Thanks!
升升升 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
15098568903 + 1 + 1 用心讨论,共获提升!
hy110833 + 1 + 1 谢谢@Thanks!
石小皮 + 1 + 1 谢谢@Thanks!
wanghaichuan866 + 1 我很赞同!
星辰物语呀 + 1 + 1 我很赞同!
KONNO1 + 1 + 1 我很赞同!
h1825052587 + 1 + 1 我很赞同!
MI99770 + 1 + 1 我很赞同!
18077730131 + 1 + 1 热心回复!
Cyrus_xxx + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
牛牛吾爱破解 + 1 + 1 我很赞同!
xinkui + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 伤心的笔 发表于 2018-11-14 14:02
随风丶而逝 发表于 2018-11-14 13:57
@伤心的笔 你是如何从/6/ol/st02这段url中获取到完整的域名的?

GET请求里有写Host: vod3.nty.tv189.cn,
所以URL就是http://vod3.nty.tv189.cn/6/ol/st02...后面的略
 楼主| 伤心的笔 发表于 2018-11-15 17:56
wanggggg1 发表于 2018-11-14 22:19
请问有时效性的直播源可以提取吗?http://www.0515yc.cn/tvlook/folder76/,据说可以通过PHP实现啊?

或许可以,看情况
但是和PHP有什么关系?
gjm406 发表于 2018-11-13 19:56
33379 发表于 2018-11-13 20:30 来自手机
感谢分享
lhk0207 发表于 2018-11-13 20:55
本人小白,看了略懂一二了!感谢分享!
Pyth1n 发表于 2018-11-13 21:14
666学习了
wjsxkk 发表于 2018-11-13 21:16
感谢分享!
HEBONAN 发表于 2018-11-13 21:23
感谢分享。。。
yanghaiyan168 发表于 2018-11-13 21:28
牛呀,谢谢分享!
pcx127 发表于 2018-11-13 21:30
受教学习了。。
我是超人 发表于 2018-11-13 21:40
感谢楼主分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 21:56

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表