frida破解某视频app的vip No.3
2020-06-29 00:30:55 Author: bbs.pediy.com(查看原文) 阅读量:592 收藏

darbra

雪    币: 280

活跃值: 活跃值 (109)

能力值:

( LV2,RANK:10 )

在线值:

[原创]frida破解某视频app的vip No.3

4天前 1004

[原创]frida破解某视频app的vip No.3

不久之前打击了两个糟粕:
糟粕一:frida破解某视频app的vip
糟粕二:frida破解某视频app的vip No.2
今天打击另一个糟粕。

此app的绝大部分界面还是依然不适合展示。
看了三个视频,就提示“暂无观看次数,立即充值”。

第一个截图是每天初始化的时候

第二个截图是已用完的时候

第三个截图是用完后的用户界面

a.mitmproxy抓包体验

我们发现所有请求的body和返回的body都是加了密的。
请求如下图所示:

response如下图所示:

b.数据的解密

以丰富的经验,全局搜索了AES,并定位到了某方法,hook之。
在搜索栏中进行了关键词“学习”的搜索,丰满的body数据刹那间映入眼帘,我们可以看到有“学习”字样的几条结果:

hook代码如下所示:

Java.perform(function() {
    var crutial_util = Java.use('com.****.lib.encrypt.b');
    crutial_util.a.overload('java.lang.String', 'java.lang.String').implementation = function (x, y) {
        var ret = this.a(x, y);
        console.log('a_ret', ret);
        return ret;
    };
});

c.寻求突破口

每每请求一个视频的时候,会抓到一个api/MvDetail/detail的请求,我们先解密response的body。
请求如下图所示:

解密后的数据如下图所示:

在json里有几个字段发人深省,isVip、daily_view、isfree以及coins。
我们进行了这些值的篡改,老板,再来一箱营养快线!

d.最终代码

Java.perform(function() {
    var crutial_util = Java.use('com.****.lib.encrypt.b');
    crutial_util.a.overload('java.lang.String', 'java.lang.String').implementation = function (x, y) {
        var ret = this.a(x, y);
        var final = ret.replace('"daily_view":0', '"daily_view":2').replace('"isVip":false', '"isVip":true').replace(/"isfree":0/g, '"isfree":1').replace(/"coins":\d/g, '"coins":0');
        return final;
    };
});

好了,也是几行代码。

这个app涉及到了数据body的加解密,总体上来说也是不难的。

这次的操作基本不会对其他用户造成困扰,只会对自己的精神状态产生影响。

放了一些app的某些重要参数的逆向思路,https://github.com/darbra/sign,供交流学习,如能给您带来帮助,不胜欣喜。

【预售】物联网安全漏洞实战!离物联网安全研究员只有一个课程的距离!报名满30人开班!


文章来源: https://bbs.pediy.com/thread-260296.htm
如有侵权请联系:admin#unsafe.sh