样本:MDcxNeWciA==
工具:fiddler、jeb、jadx、vscode
这一次是被JEB的反编译坑惨了,往下看你就知道了。。。。
一、初窥门径
1、老规矩,配置好fiddler和手机进行抓包,发现codeSign、nonce、device、third-app-token参数被加密了
image-20240407222502099.png (398.68 KB, 下载次数: 0)
下载附件
2024-4-8 00:27 上传
2、再抓一次包,发现codeSign、nonce参数是变化的,而device、third-app-token参数是不变的,这里直觉device是Base64加密,验证一下果然是
image-20240407222624430.png (357.81 KB, 下载次数: 0)
下载附件
2024-4-8 00:27 上传
image-20240407222905994.png (57.7 KB, 下载次数: 0)
下载附件
2024-4-8 00:27 上传
二、崭露头角
1、二话不说先把它扔进jeb里反编译,搜索codeSign找到一处,那应该就是这里了,点进去反编译成java看一下加密过程
image-20240407223201172.png (108.98 KB, 下载次数: 0)
下载附件
2024-4-8 00:27 上传
2、开始兴奋了,看看k0.c函数传入了哪些参数,传入三个参数,分别是 "d79658cf304d4dfe8ba1ba52e05eb2cb", s2, v
image-20240407223318731.png (67.06 KB, 下载次数: 0)
下载附件
2024-4-8 00:27 上传
3、其中第一参数是一个固定字符串,第二个参数是传输的参数S2,第三个参数是当前时间戳,我们跟踪一下函数,查看交叉引用看看传入的是什么
image-20240407223601728.png (67.93 KB, 下载次数: 0)
下载附件
2024-4-8 00:27 上传
4、原来S2是post请求的请求体的{"encode":1,"password":"YTEyMzQ1Njc4\n","black_box":"","username":"15823658965"}也就是这个,感觉胜利在望
image-20240407224000011.png (69.93 KB, 下载次数: 0)
下载附件
2024-4-8 00:27 上传
三、渐入佳境
1、进入k0.c做了什么加密操作,就是把顺序排了一下,然后经过了c.c函数
image-20240407232137707.png (50.3 KB, 下载次数: 0)
下载附件
2024-4-8 00:27 上传
2、c.c函数就是将上述排好序的字符串进行md5加密,我们去验证一下
image-20240407232706237.png (45.1 KB, 下载次数: 0)
下载附件
2024-4-8 00:29 上传
image-20240407232732318.png (41.07 KB, 下载次数: 0)
下载附件
2024-4-8 00:29 上传
3、哎,为什么会不一致,这里我费了很长时间思考为什么,最后发现是JEB反编译出了错,是我太相信它了,把它扔进jadx试试
image-20240407233050751.png (35.4 KB, 下载次数: 0)
下载附件
2024-4-8 00:29 上传
四、略有小成
1、可以看到并不是jeb编译的那样,这里的固定字符串其实是随机的UUID,而这正是nonce的值
image-20240407233653154.png (66.52 KB, 下载次数: 0)
下载附件
2024-4-8 00:29 上传
2、而k0.c里的那个llunllun字符串其实是个g()函数,看看g做了什么
image-20240407234017552.png (36.3 KB, 下载次数: 0)
下载附件
2024-4-8 00:29 上传
3、g函数获取了a0和b0的值将它们拼接在一起然后倒序,我们去看看a0和b0是什么
image-20240407234244031.png (43.48 KB, 下载次数: 0)
下载附件
2024-4-8 00:29 上传
4、这里的a0和b0分别是str10和str11参数,我们继续跟踪看传入了什么
image-20240407234519140.png (42.17 KB, 下载次数: 0)
下载附件
2024-4-8 00:29 上传
5、它俩分别是R资源里的forum_key和upload_key,去jeb搜索它俩的值,原来是94ac5cfb69e87bd7和860f50db3569e448
image-20240407234749865.png (17.23 KB, 下载次数: 0)
下载附件
2024-4-8 00:29 上传
image-20240407235056143.png (148.29 KB, 下载次数: 0)
下载附件
2024-4-8 00:33 上传
image-20240407235234366.png (136.54 KB, 下载次数: 0)
下载附件
2024-4-8 00:33 上传
五、出类拔萃
1、再次去验证拼接好的数据{"encode":1,"password":"YTEyMzQ1Njc4\n","black_box":"","username":"15823658965"}b98abe7390414b18a727ab7256c98249844e9653bd05f0687db78e96bfc5ca491712499367890去MD5加密后发现与codeSign一致,最后用自吐验证思路正确
image-20240408001753271.png (54 KB, 下载次数: 0)
下载附件
2024-4-8 00:34 上传
image-20240407235710058.png (84.47 KB, 下载次数: 0)
下载附件
2024-4-8 00:34 上传