免责申明
本文章仅用于信息安全防御技术分享,因用于其他用途而产生不良后果,作者不承担任何法律责任,请严格遵循中华人民共和国相关法律法规,禁止做一切违法犯罪行为。
由于私密性,全程厚码处理!
0x00 前言
嗯嗯嗯?你们怎么知道我斥巨资买了一个400圆子买了一个谷歌 Pixel 2 手机 8+64 白色后壳,采用了金属与玻璃的结合,快速充电和防水防尘,强大的后置摄像头在光线充足的环境下还是低光环境下,Pixel 2 都能捕捉到细节丰富、色彩鲜艳的影像,让你记录生活中的每个精彩瞬间。保证了流畅的操作体验和出色的多任务处理能力。无论是日常使用、游戏还是多媒体播放,Pixel 2 都能轻松胜任。
那么今天我们用它干点事情!
0x01 APP脱壳
先使用MT管理器进行查看APP是否加固
这里我们发现是360加固的,那肯定是要进行脱壳处理的,直接使用hook大法在内存当中抽取代码脱壳处理
使用Frida框架开启脚本之后,打开APP随意点击成功拿到脱壳之后的dex代码
脱壳之后的文件
0x02 算法分析
这里之前在测试的过程当中发现了这个APP完全是按照加密走的,根本无法进行正常的渗透测试,拿APP登录数据包举例这里抓包软件为茶杯
这里可以看到完全都是加密状态,这还只是请求包,我们看看响应包
可以看到响应包当中返回的data数据也完全是加密状态的,所以我们逆向算法是必不可少的。
将脱壳之后的dex文件一股脑载入到jadx-gui工具当中,这里我们直接搜索登录路径,定位到一处代码
那么很明显第一个就是,我们跟进去
最终我们一直跟入函数到g函数(当然不是我自己跟的,找大佬带的我)
最终这个g函数即为加密函数,我们尝试进行hook
最终发现HOOK到的数据和数据包当中的值相同
最终通过大哥给我的脚本,拿到了其中的密钥以及加密方式
使用Python编写加密脚本,尝试是否和数据包当中的值相同
在APP的一处页面当中可以查看同事之间的联系方式等信息,先HOOk这个功能点的正常解密数据
先来看看页面什么样子
然而数据包这样子
HOOK到的明文是这样子的
那么也就是说如果这个明文进行自己逆向出来的算法脚本加密之后,得到的值为数据包当中的值,那么我们就可以进行正常的渗透测试了,尝试进行加密
漂亮!,传入其中数据包看看响应包会不会正常返回,在此之前不知道算法的情况下传入了各种数据都是解密数据出错,这里就不截图出错的数据了
返回一串加密数据那么尝试进行解密
成功解密 !
0x03 越权挖掘
那么现在我们知道了,我们自己现在只可以查看自己权限下的通讯录信息,对应我们自己权限下的通讯录信息明文id为02252202,那么如果我将别的字符串进行加密传入APP当中会怎样
02改为01
加密
发包
成功的返回出来数据,尝试解密
返回的信息已经不同,越权到手+1,一般像这种东西,很多APP拥有自己的独立算法之后就不会在鉴权这块在下功夫,更何况还有加固的APP,所以挖掘出来很多漏洞这里只是拿其中之一举例
0x04 完结
原文始发于微信公众号(进击安全):记一次APP逆向漏洞挖掘过程