Loading

学海 OSS 存储相关分析

有个群友说他在研究学海平板,应该就是初高中里智慧课堂那种了,之前也有耳闻,但是因为没实际接触过所以没有研究。从群友发的截图来看,东西很简单,所以纯当练手了

已知学海平台的东西存在一个阿里云 OSS 里,这点在 com.xh.xhcore.common.oss.OssConfig 里就能看到

image.png

关键在那几个预定义的变量里,可以直接看到有 Key 什么的,但是这个 Key 是加密的,还好同时也能看到解密的部分

image.png

从最后的 sign 方法调用可以看出,str2 和 3 大概就是账号和密码了,阿里云把这叫做 AccessKeyId 和 AccessKeySecret,而 str2 和 3 都分别调用了几个 RSA 解密方法得到,继续跟踪到 RSAUtil

image.png

通过 import 的包可以看出来这个 RSA 属于比较正经的那种 RSA,不是叫 RSA 的名不干 RSA 事的幌子。那么直接把这个类扒出来当作工具类就好了 (这个类 import 了一些 Android 的包,一般情况下 IDEA 里调不了,所以为了偷懒我就直接用 Android Project 了)

image.png

回到 OssConfig 类里,看看解密部分,可以看到 privateDecrypt 有两个参数,一个是上面的变量,还有两个通过 getAccessKeyEncrypted()getSecretKeyEncrypted() 方法获取,继续跟踪这两个方法

image.png

找到了这两个方法的定义,但这个类里面并没有明文,而是直接返回了 this 里的两个变量,继续找 AliyunOssConfig 方法的引用

image.png

com.xuehai.launcher.common.base.XHAppConfig 找到了引用,两个参数就是对应 accessKeyEncryptedsecretKeyEncrypted 的了

image.png

最后就成功获取到了这四个参数了

accessKeyEncrypted = JPzDSOCCN47N2-VVgSdP10hb2lj3M5VozdqciZ...

secretKeyEncrypted = 0RDGsN-5AaQU3psAzK2_AdKyXsg7M4k93FNPgWS...

akPrivateKey = MIIBVQIBADANBgkqhkiG9w0BAQEFAASCAT8wggE73Anwh...

skPrivateKey = MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdEAAo...

在 Android Project 里把代码照搬过来,然后打一个 Log 就行了

image.png

最后当然要补一张截图

image.png

posted @ 2022-12-26 09:43  20206675  阅读(201)  评论(0编辑  收藏  举报